Skip to content

Available workers decrease over time? #2427

@gustavo-grieco

Description

@gustavo-grieco

It seems that once a state goes from busy to killed, the worker handling that state will not take another one. This cases are not so rare to happen, for instance:

elif issymbolic(should_check_jumpdest):
self._publish("will_solve", self.constraints, should_check_jumpdest, "get_all_values")
should_check_jumpdest_solutions = SelectedSolver.instance().get_all_values(
self.constraints, should_check_jumpdest
)
self._publish(
"did_solve",
self.constraints,
should_check_jumpdest,
"get_all_values",
should_check_jumpdest_solutions,
)
if len(should_check_jumpdest_solutions) != 1:
raise EthereumError("Conditional not concretized at JMPDEST check")

This impacts the use of manticore on larger targets that require to run for a while, since it is likely that some workers will stop degrading the overall performance of our tool. Also, in the extreme case, where manticore is configured with one worker, it will hang forever (until the user press ctrl+c or the process gets killed)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions