MPS issue job003859

TitleAssertion failures in amcssth
Statusopen
Prioritynice
Assigned userDavid Lovemore
OrganizationRavenbrook
DescriptionRunning amcssth
Assertion failed: ww[WW] == w[WW], file .\fmtdy.c, line 117
--------------------------------------------------------------------------------

w3i3mv\hot\amcssth: randomize(): choosing initial state (v3): 645524855.
AnalysisThis has occurred after turning on assertions in the dylan format code (change 186798 [1]).

It seems possible there is some compiler optimization that is breaking code when multiple threads.

The similarity with job003506 suggests that there may just be a bug in the Dylan format code.


GDR 2014-07-04: I also got these assertion failures in the same test case:

Assertion failed: (w[WW] & 3) == 0, file .\fmtdy.c, line 115
--------------------------------------------------------------------------------
w3i3mv\hot\amcssth: randomize(): choosing initial state (v3): 2132331301.

Assertion failed: (*(mps_word_t *)old & 3) == 0, file .\fmtdy.c, line 723
--------------------------------------------------------------------------------
w3i3mv\hot\amcssth: randomize(): choosing initial state (v3): 1596358952.

(The proportion of failures is quite small: I had to run the test case about 200 times to get these two failures.)

DL 2014-07-07: I found errors about 1 in 100 times. I also have seen an occasional hang where it seems to be deadlocking. The symptoms seem to indicate some underscanning.

The deadlock goes back to as far as changelist 185430, before that amcssth doesn't seem to build on windows.

The other symptoms are new because assertions in tests have only been turned on in hot builds since change 186798.

GDR 2014-11-07: Here's a failure on lii6gc:

amcssth failed: log follows
--------------------------------------------------------------------------------
lii6gc/hot/amcssth: randomize(): choosing initial state (v3): 181950835.
amcssth: fmtdy.c:115: dylan_wrapper_check: Assertion `(w[0] & 3) == 0' failed.

GDR 2018-07-05: See [2] for another failure on lii6gc, this time found by Travis:

amcssth failed: log follows
--------------------------------------------------------------------------------
lii6gc/cool/amcssth: randomize(): choosing initial state (v3): 924920097.
amcssth: fmtdy.c:104: dylan_wrapper_check: Assertion `w != ((void *)0)' failed.
How foundautomated_test
Evidence[1] <https://info.ravenbrook.com/infosys/cgi/perfbrowse.cgi?%40describe+186798>
[2] https://travis-ci.org/Ravenbrook/mps/jobs/400478773
Created byDavid Lovemore
Created on2014-07-04 17:34:01
Last modified byGareth Rees
Last modified on2018-07-05 16:49:01
History2014-07-04 DL Created
2014-07-07 DL Added to analysis
2014-07-07 DL More analysis