crytic / optik

Optik is a set of symbolic execution tools that assist smart-contract fuzzers
https://github.com/crytic/optik
Other
89 stars 12 forks source link

Memory consumption grows rapidly with each iteration #100

Open SheldonHolmgren opened 1 year ago

SheldonHolmgren commented 1 year ago

Describe the bug hybrid-echidna crashes my machine since with each new iteration (i.e., echidna campaign) the memory usage grows rapidly. I could increase the amount of RAM or swap available since I'm running on a VM in the cloud but it's hard to predict what the total usage will be.

This severly limits usability of optik to me since I can only run with very low --max-iters and that in turn limits --seq-len of echidna campaigns.

I hope there might be some low-hanging fruit where some of the memory contents can be discarded or dumped on the disk.

Additional context: Ubuntu 22.04.1 LTS on a Google Cloud instance

# python3 --version
Python 3.10.6
# echidna-test --version
Echidna 2.0.5
# slither --version
0.9.1

hybrid-echidna logs: echidna.logs.issue.txt

Google Cloud memory usage chart: Memory Bytes Used (Top 5 VMs) (Note: the final plateau is probably not really a plateau because the swap was being used instead of RAM)