advancedtelematic / quickcheck-state-machine

Test monadic programs using state machine based models
Other
203 stars 25 forks source link

simplify: impossible, because of the structure of linearise. #311

Closed o1lo01ol1o closed 5 years ago

o1lo01ol1o commented 5 years ago

I have a test of a postgres schema that looks a lot like the simple CRUD server in the examples. However, when I run parallel commands, the suit fails with simplify: impossible, because of the structure of linearise.. Where should I look to determine the cause of this issue?

stevana commented 5 years ago

Which version of the library are you using?

o1lo01ol1o commented 5 years ago

6.0

stevana commented 5 years ago

I fixed a related bug in: https://github.com/advancedtelematic/quickcheck-state-machine/commit/b87a74b384325647f19d6cfb713280b02baaa7d9#diff-12b81713cdb3d2bc53339c2e995fd733 , but that fix should be part of 0.6.0, so I guess there must be a similar bug still lurking there.

Can you share your test?

o1lo01ol1o commented 5 years ago

Can you share your test?

I could potentially rename a section if you could tell me which would be most helpful; unfortunately, I can't share the code as is.

stevana commented 5 years ago

Can you try using the feat/simplify-show-ce branch? It should give you a better error message, which hopefully will be enough to figure out what the problem is.

o1lo01ol1o commented 5 years ago

I've been running against that branch; I can't seem to throw the error again.

However, the tests seem to proceed much more slowly. For example, previously I would generate about 1000 database inserts in a few minutes; currently I'm averaging about 1 insert a minute. (Inserts have the same frequency rating as all other queries.)

stevana commented 5 years ago

I cannot think of any change to the library, between v0.6.0 and feat/simplify-show-ce, that would have made things that much slower.

I'm closing this, as the original problem seems to have been fixed. Feel free to open an issue about the performance degradation, but please provide a small example which illustrates the problem otherwise it will be difficult to debug.