crytic / crytic/echidna

[Bug-Candidate]: Echidna is non-deterministic when workers > 1

Open
#1,091 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Haskell
Stars
3.2k
Forks
432
Avg merge
1d 20h
Merged PRs (30d)
5

Description

### Describe the issue:

Echidna provide different results even if the seed is fixed, when the amount of workers is more than one. I'm using json output to hash the result of the campaign and compare them. This issue is NOT caused by the possible non-deterministic serialization of json (I verified that the output values are actually different).

### Code example to reproduce the issue:

Execute the following bash program from the echidna directory which will run `tests/solidity/basic/flags.sol:

```
while $(true); do echidna tests/solidity/basic/flags.sol --test-limit 10000 --shrink-limit 333 --format json --seed 123 --workers 8 | tail -n 1 | md5sum ; done```
```

### Version:

echidna compiled from `master` (2711374501fd9d46b3eb97fe169a20c3ee1d3e0a).

### Relevant log output:

```shell
$ while $(true); do echidna tests/solidity/basic/flags.sol --test-limit 10000 --shrink-limit 333 --format json --seed 123 --workers 8 | tail -n 1 | md5sum ; done
bdc6c808805e5d6eb6d5cf4c23469525 -
bdc6c808805e5d6eb6d5cf4c23469525 -
ead6b2624de00e59b41aba2caec7c82b -
bdc6c808805e5d6eb6d5cf4c23469525 -
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.