ucsb-seclab / sailfish

Data and code for the IEEE S&P'22 paper SAILFISH: Vetting Smart Contract State-Inconsistency Bugs in Seconds
47 stars 11 forks source link

AssertionError: daemonic processes are not allowed to have children #6

Closed DarrenChangJR closed 1 year ago

DarrenChangJR commented 1 year ago

When running Sailfish on a contract, it encountered:

[INFO] | 2023-03-21 04:05:31 PM | analyzer.Otoken | Dependency exists
[INFO] | 2023-03-21 04:05:31 PM | analyzer.Otoken | Invoking symbolic executor!
Traceback (most recent call last):
  File "contractlint.py", line 144, in analyze_contracts
    find_feasible_paths(graph_dir, detection.dao_symex_paths, detection.dao_per_function_paths, detection.tod_symex_paths, detection.tod_per_function_paths, range_type, solver_type)
  File "/root/sailfish/code/static_analysis/analysis/main_helper.py", line 332, in find_feasible_paths
    functions_to_symexec = multiprocessing.Manager().dict()
  File "/usr/lib/python3.6/multiprocessing/context.py", line 56, in Manager
    m.start()
  File "/usr/lib/python3.6/multiprocessing/managers.py", line 513, in start
    self._process.start()
  File "/usr/lib/python3.6/multiprocessing/process.py", line 103, in start
    'daemonic processes are not allowed to have children'
AssertionError: daemonic processes are not allowed to have children

I wonder if the authors have faced this issue before, and how did you solve it?