-
Notifications
You must be signed in to change notification settings - Fork 459
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
Handle signals #337
Comments
If you could provide (a) sample(s) for testing that would be best. I've seen rare instances where vivisect spins forever, but it could also be that the FLOSS core goes off the rails somehow. As a workaround, maybe specifying a timeout with |
We've been using a timeout with our call to ...
with Popen(*popenargs, **kwargs) as process:
try:
stdout, stderr = process.communicate(input, timeout=timeout)
except TimeoutExpired as exc:
process.kill()
if _mswindows:
...
else:
# POSIX _communicate already populated the output so
# far into the TimeoutExpired exception.
process.wait()
raise
... I'll have a try at re-implementing this feature in our application with As for the samples causing the problems, my organization is okay with sharing them as long as you use them only for testing and do not share them. If that is acceptable, please let me know how I can send them to you. FWIW, we're also seeing the same behavior with |
Great, thank you. I'll only use the samples to test this issue. |
I've taken a look at the samples @b0urb0n provided via email. vivisect encounters some errors when loading as shown below and then continuously throws
|
Sorry for the delay. Unfortunately, the organization is not willing to release the samples publicly at this time. Perhaps similar samples could be found by leveraging ssdeep/TLSH? |
Great, thank you! I'll take a look and open a vivisect issue upstream. |
For me vivisect and FLOSS both quickly process 9e7ff34f05442d26457fd8066f52d9dad9b2a7b2ef57e02b944959ce046330fd. |
Every once in a while, FLOSS takes forever to process a sample and becomes unresponsive to all signals including
SIGINT
(from Ctrl-C) andSIGKILL
(fromkill -9 <pid>
).SIGKILL
has a tendency to turn the FLOSS process into a zombie until it eventually exits (sometimes days later).Here's an example of a run-away FLOSS process:
Note the process run-time of 14.5 minutes, pegged CPU, and over 100GB of RAM in use.
Here's another that ran for over an hour:
Here are some zombies from days ago:
(These are executed as root because docker instances)
For what it's worth, these are kicked off with the
subprocess
Python library withsubprocess.check_output
.I'm going to track down exactly which samples cause this behavior and try and get permission to release them for testing if you're interested.
In the meantime, has any effort been put into better supporting IPC in order to cleanly exit? My guess is that most of this effort would be in Vivisect but I'm not sure right now.
The text was updated successfully, but these errors were encountered: