usyd-blockchain / vandal

Static program analysis framework for Ethereum smart contract bytecode.
BSD 3-Clause "New" or "Revised" License
161 stars 39 forks source link

bulk_analyser/analyse.py: unclean exit with Souffle left running #49

Closed 0xl3x1 closed 6 years ago

0xl3x1 commented 6 years ago

Exception handling in the bulk_analyser doesn't clean up or wait for Souffle subprocesses.

0xl3x1 commented 6 years ago

Actually, upon looking into the code further I'm unsure why this happens. It might not be due to exception handling after all. Hmm.

0xl3x1 commented 6 years ago

OK, I think this is happening when the analyse_contract sub-process times out and .terminate() is called. The Python docs say:

Note that descendant processes of the process will not be terminated – they will simply become orphaned.

So, I think the Souffle descendant processes become orphaned.