-
Notifications
You must be signed in to change notification settings - Fork 351
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
log2timeline: multiple issues with multi processing and IPC #169
Comments
Foreman triggers on collector being completed, but this should be storage writer. |
Improve solution:
|
Process appears to still get stuck:
|
It appears multiprocessing.Queue is not FIFO, and its get() method will block if the queue is empty. Some changes to handle this behavior: https://codereview.appspot.com/225680044/ |
Seems to still be an issue for some cases, https://codereview.appspot.com/224610044/ sent in as well, seems to at least fix the issue regarding the test images I had that I could reproduce this on. |
Observed behavior:
Workers remain sleeping for a long time. Some side behavior of the queue changes? The queue seems to be considered empty before it actually is. More queue changes in: https://codereview.appspot.com/229410043/. I opt to do these first, before CL 224610044, since this could be the root cause for the behavior you're trying to fix in the CL. |
Abort paths needs to be checked. |
Still an issue if a worker is misbehaving the process does not terminate. Determine state that all workers are sleeping and no progress is made, then start abort timer. |
CL to abort when all workers are idle https://codereview.appspot.com/230620043/. Still to do is to improve the handling of individual workers not responding. |
Still an issue with the main process not terminating. The cause is likely the python queue locking: http://stackoverflow.com/questions/21349850/multiprocessing-queue-deadlocks-after-reader-process-death Possible solution to clean up the IPC: https://codereview.appspot.com/238090043/ |
Improve "worker idle abort" logic, currently possible that the workers are processing for 5 mins without extracting event objects e.g. when only very specific parsers are enabled. Make sure not to abort prematurely. Adding a path specs delta should solve this issue: https://codereview.appspot.com/238090043/ |
Parser error queue disabled for now per: 7853aaf |
Testing indicates still an issue on Windows XP, however I do not see the same behavior on Windows 7. Although: https://ci.appveyor.com/project/joachimmetz/plaso/build/72 |
The abort path is still not always handled cleanly also see: #153 |
Check handling of no collector input. |
Closing this one in favor of #153 |
log2timeline: occasionally gets stuck with "Waiting for storage writer".
Current challenge is to find a reproducible test case.
The text was updated successfully, but these errors were encountered: