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
Trying to develop an instrumentation for SimpleQueue (for threading/multiprocessing) #3105
Comments
I got some progress fixing the first error, some part of the Pool are not using the
|
Hello @kedare, sorry for the late reply. Did you make any more progress on this issue? |
Hello. No problem, I could not go further unfortunately, I did not find a way to make it work with the special case I found on the previous message, sometime the multiprocessing code goes directly into reading the UNIX FIFO associated with the queue and so bypassing completely the code I override. I could not find any info on why this has been done, there isn't much documentation about the internals of multiprocesssing and the code quality is unfortunately very low on this part. I did not find any clean way to override this behavior to add instrumentation other than having to fork the whole code. |
Thanks for you reply, @kedare, sad to read that you could not make any more progress. I'll be closing this issue for the time being, please reopen if you make new progress ✌️ |
Hello everyone.
As we have a lot of multi-threading and multiprocessing, I am trying to find a way to cover all/most of those cases, I took a look at the existing instrumentations (like the Redis one), and I am basically trying to wrap the get/set methods from the SimpleQueue class that is used everywhere for data exchange between the threads and processes (in the python multiprocessing module), but so far no luck,
It looks some code is not using the overrided versions of my methods.
I am not very familiar with this kind of monkeypatching, maybe what I am trying to do is not doable (restrictions on stlib or so ?)
This is what I have been trying to do (with temporary print statements)
And a simple test
The kind of error I am getting (a get before a put, and the put is apparently not instrumented, apparently it's running before my patching but how?)
Thank you
The text was updated successfully, but these errors were encountered: