You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@thrift.apache.org by Rush Manbert <ru...@manbert.com> on 2009/09/25 19:46:31 UTC
C++ Server Test Failure
We run a Hudson continuous integration server that does a build, then
runs a set of tests.
One of the tests is a Thrift client. It spawns multiple Thrift server
processes, then uses them to perform various operations.
This works almost all of the time.
Once in a while, though, we get an error:
server_test Error: apache::thrift::TApplicationException: Invalid
method name: 'listWorkers'
which is generated by the generated server code. It seems that the
function name can't be found in the "processMap_" member variable.
This always happens on the very first RPC call from the client. We
have never seen it later. And, of course, the 'listWorkers' method
does exist. The test mostly just works.
While I was working on the Windows port of the C++ library, I noticed
that the non-blocking stress test (test/cpp/src/nb-main.cpp) does a
sleep(1) between starting the servers (there are 2) and starting to do
client processing. But the regular stress test (test/cpp/src/main.cpp)
doesn't have the sleep() call. Is there some race condition that the
sleep() avoids? And if so, is it only a problem when launching
multiple server processes/threads?
Has anyone else seen this, or does anyone know anything about it?
Thanks,
Rush