Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Possible race condition in callbacks when server and client processes start at same time #63

Open
s-e-martin opened this issue Sep 9, 2019 · 0 comments

Comments

@s-e-martin
Copy link
Collaborator

This is apparent in the DSTC++ tests where occasional hangs were being noticed.

The issue appears to occur when a server and client process are started up at virtually the same time. It appears as though the server code gets executed (using examples/callback, we see the double_value(223344) called with a callback message). However, the client callback never gets invoked. As best as I can tell, the DSTC library should be unloaded before the test execution occurs

Reproduction steps:

Clone and build RMC / DSTC into the same folder:

git clone [email protected]:PDXostc/dstc.git
cd dstc
make
cd ..
git clone [email protected]:PDXostc/reliable_multicast.git
cd reliable_multicast
make
cd ..

Build callback example

cd dstc/examples/callback
make

Execute the script in this tarball: test_script.tar.gz, which ensures that the previous callback_client/server have exited, and that there are no open handles to libdstc.so. This script also sets LD_LIBRARY_PATH to ensure that the libdstc.so object that is being loaded is the one you just built.

The test will hang as early as a handful to as many as a 100+ iterations.

./test_script.sh
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant