I think Lucas has probably mentioned this problem that we keep running into with quantomatic.

I'm using Poly/ML 5.4 (ie: the lastest version of the 5.4 branch from subversion).

Occasionally (or, in my case, frequently) we get the following error:
poly: scanaddrs.cpp:107: PolyWord ScanAddress::ScanStackAddress(PolyWord, StackObject*, bool): Assertion `val.IsDataPtr()' failed.

There appears to be no rhyme or reason to it. Re-running poly with the same code another time will not necessarily produce this assertion, or may produce it in a different place.

It happens regardless of compiler optimisations (I've tried -O3, -O2 and -O0).

I managed to get a backtrace:

#0  0x0000003ff54330c5 in raise () from /lib64/libc.so.6
#1  0x0000003ff5434a76 in abort () from /lib64/libc.so.6
#2  0x0000003ff542b905 in __assert_fail () from /lib64/libc.so.6
#3 0x00007ffff7dc357e in ScanAddress::ScanStackAddress (this=0x7fffffffde10, val=..., base=0x7fffed6b56c0, isCode=false)
    at scanaddrs.cpp:107
#4 0x00007ffff7dc3811 in ScanAddress::ScanAddressesInObject (this=0x7fffffffde10, obj=0x7fffed6b56c0, lengthWord=4827858800541175088)
    at scanaddrs.cpp:146
#5 0x00007ffff7d9b4e2 in ProcessMarkPointers::ScanAddressesInObject (this=0x7fffffffde10, base=0x7fffed6b56c0, L=4827858800541175088)
    at gc.cpp:509
#6 0x00007ffff7dc42c8 in ScanAddress::ScanAddressesInObject (this=0x7fffffffde10, base=0x7fffed6b56c0) at scanaddrs.h:86 #7 0x00007ffff7dc3d48 in ScanAddress::ScanAddressesInRegion (this=0x7fffffffde10, region=0x7fffed6a3af0, end=0x7fffed6c3000)
    at scanaddrs.cpp:252
#8  0x00007ffff7d9ad12 in OpMutables (process=0x7fffffffde10) at gc.cpp:348
#9 0x00007ffff7d9d2cc in doGC (doFullGC=false, wordsRequiredToAllocate=3) at gc.cpp:1341 #10 0x00007ffff7d9f473 in QuickGCRequest::Perform (this=0x7fffeaa10cc0) at gc.cpp:1955 #11 0x00007ffff7da732c in Processes::BeginRootThread (this=0x7ffff7ffa8e0, rootFunction=0x605278) at processes.cpp:1253 #12 0x00007ffff7d9a472 in polymain (argc=3, argv=0x7fffffffe218, exports=0xf72a00) at mpoly.cpp:205 #13 0x0000000000400659 in main (argc=3, argv=0x7fffffffe218) at polystub.c:43

I don't know how useful that is, though.

Alex
_______________________________________________
polyml mailing list
[email protected]
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml

Reply via email to