Skip to content

Conversation

ehennenfent
Copy link
Contributor

@ehennenfent ehennenfent commented Jul 23, 2021

Three days ago, the symbolic WASM tests started failing on master. There were no changes to manticore in between the failing tests and the passing ones. Presumably some kind of upstream update caused the failures, but Yices, Z3, and CVC don't seem to have published any releases that day. Interestingly, the failure always occurs in the fib_L271, which is a stress-test designed to test WASM functions with very high call depth. It also seems to take the form of SMTLib errors we've seen before, where an invalid SMT2 string is rendered into text and sent to the solver. For example, in today's failure, the exception is: 2021-07-23 12:12:49,417: [7396] m.c.worker:ERROR: Exception in state 0: SolverException('Error in smtlib: (error "at line 782, column 29: undefined identifier: BitV")',). I'm using this PR to try and diagnose the issue because I can't replicate the failure locally.

This PR started out trying to fix the aforementioned test failures, which have now spontaneously resolved. In the course of working on it though, I noticed that Python 3.6 will be EOL at the end of 2021, which means we're probably okay to bump our minimum tested version of Python up to 3.7.

Eric Hennenfent added 7 commits July 23, 2021 12:40
Ugh we should really do something about that
3.6 is EOL soon, so we can justify jumping up to a more recent version, but 3.8 might still be too new for some people.
@ehennenfent ehennenfent changed the title Fix WASM Symbolic tests Switch to Python 3.7 Aug 3, 2021
@ehennenfent ehennenfent marked this pull request as ready for review August 4, 2021 17:05
Copy link
Contributor

@ekilmer ekilmer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should also bump the setup.py line here as well

python_requires=">=3.6",

It's very easy to use new Python3.7+ features, and we shouldn't claim to support a lower version than we actually test.

@ehennenfent
Copy link
Contributor Author

I think we should also bump the setup.py line here as well

python_requires=">=3.6",

It's very easy to use new Python3.7+ features, and we shouldn't claim to support a lower version than we actually test.

Fair enough. I bumped all the references to Python3.6 I could find to 3.7.

@ehennenfent ehennenfent merged commit 36b3024 into master Aug 4, 2021
@ehennenfent ehennenfent deleted the dev-fix-wasm-tests branch August 4, 2021 22:36
ekilmer added a commit that referenced this pull request Sep 1, 2021
* master:
  Install Python3.7 in Docker image (#2482)
  Prioritize LD_LIBRARY_PATH over system default path (#2476)
  track parent in state descriptors (#2479)
  Switch to Python 3.7 (#2472)
  Fix loading custom interpreters for ELF binaries (#2473)
  Create CITATION.cff
  Track last_pc in StateDescriptors (#2471)
  Expose Result Register for Native CPU (#2470)
ekilmer added a commit that referenced this pull request Oct 30, 2021
* master:
  Add methods for getting list of (un)implemented system calls (#2491)
  Unpin Truffle Version, Use Latest crytic-compile (#2490)
  Add last_executed_pc property to abstract CPU (#2475)
  Bump Node from 13.x to 16.x (#2484)
  Copy/Snapshot a RegisterFile (#2489)
  Add more logging messages around solver errors (#2485)
  Add manticore reference property to States (#2486)
  Option to kill Manticore if any state fails on unrecoverable error (#2487)
  Optionally publish events for memory reads (#2488)
  Install Python3.7 in Docker image (#2482)
  Prioritize LD_LIBRARY_PATH over system default path (#2476)
  track parent in state descriptors (#2479)
  Switch to Python 3.7 (#2472)
  Fix loading custom interpreters for ELF binaries (#2473)
  Create CITATION.cff
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants