-
Notifications
You must be signed in to change notification settings - Fork 76
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
ReadAccessViolation Exception #517
Comments
Hi @mfranzen0906, it is not a known problem. I know the C++ binding just doesn't get the care that the core C code gets, mostly because I am not a C++ user myself, and so I naturally gravitate to thinking that crash is due to something in the C++ binding itself ... Not that it helps you much. Is there anything interesting in the circumstances under which this crash happens, for example, that it is always correlated with deleting a reader? That would make some sense, and at least gives a starting point.
If I am thinking of the right thing, it is so you can read the status word from inside a listener with deadlocking and so unrelated operations that need to set a bit in there don't have to wait for the callback to complete. It goes through quite some effort to serialize all listener callbacks (and setting listeners) on an entity, so there is not much else to be gained. I might remember something else, though ... if so, I'll add another comment |
Hi @eboasson, In the debugger I can see that the memory is indeed corrupt an cannot be read. If you go one step backwards to In
This except from
Like i mentioned above, we have multiple threads that send data in the beginning. Could the problem be that the |
I am currently debugging a program of us, which uses dds in the background. We get an exception, which indicates that the in the
EntityDelegate optain_callback_lock(
) functionthis->callback_mutex
does not exist anymore. Is this a known problem that can occur?Version: 0.10.5
When we use a lock_guard in our program before calling the dds functions, it works fine.
I looked into the ddsc.dll
da_or_do_cb_invoke function
an wondered why you unlock a mutex and later lock it again. I changed this into a lock and then an unlock, which seemed to work better without crashes. Yet the comments in the code suggest, that this was done on purpose.Here is the debug trace:
Exception: ReadAccessViolation
The text was updated successfully, but these errors were encountered: