moves-rwth / storm

A Modern Probabilistic Model Checker
https://www.stormchecker.org
GNU General Public License v3.0
126 stars 73 forks source link

Tests Failing on Apple Silicon #523

Open Ramneet-Singh opened 2 months ago

Ramneet-Singh commented 2 months ago

Hi,

Thanks for developing Storm! I'm compiling the master branch on an Apple Silicon (M1) Mac as I was having issues compiling the stable version. When running make check after building, the following two tests are failing for me:

[ RUN      ] DdPrismModelBuilderTest_Sylvan.Mdp
/Users/ramneet/maverick-home/OneDriveIITD/iitd/sems/sem10/mdp-decomp/storm/src/test/storm/builder/DdPrismModelBuilderTest.cpp:210: Failure
Expected equality of these values:
  37ul
    Which is: 37
  mdp->getNumberOfStates()
    Which is: 35
/Users/ramneet/maverick-home/OneDriveIITD/iitd/sems/sem10/mdp-decomp/storm/src/test/storm/builder/DdPrismModelBuilderTest.cpp:211: Failure
Expected equality of these values:
  59ul
    Which is: 59
  mdp->getNumberOfTransitions()
    Which is: 55
/Users/ramneet/maverick-home/OneDriveIITD/iitd/sems/sem10/mdp-decomp/storm/src/test/storm/builder/DdPrismModelBuilderTest.cpp:212: Failure
Expected equality of these values:
  59ul
    Which is: 59
  mdp->getNumberOfChoices()
    Which is: 55
[  FAILED  ] DdPrismModelBuilderTest_Sylvan.Mdp (990 ms)
...
17/36 Test #17: run-test-modelchecker-prctl-dtmc .......Bus error***Exception: 243.89 sec

I haven't installed Spot, in case it matters. My goal is to benchmark MDP symbolic model building. I figured I didn't need to install Spot for that. Are these two test failures expected?

Thanks for your help! Best, Ramneet

tquatmann commented 2 months ago

Hi,

unfortunately, there are some issues when using Storm with Sylvan (MTBDD library for symbolic model building/checking) on Apple Silicon. This will also likely affect symbolic model building benchmarks. We believe this is a concurrency issue either on the Storm or the Sylvan side that is somehow specific to ARM architectures. For the time being, I can suggest some possible workarounds: