Re: [Gc] [bdwgc] 7.4.0: disclaim_test always fa ils (#42)

Ivan Maidanski <ivmai-JGs/[email protected]> Sun, 18 May 2014 18:50:41 +0400
Newsgroups gmane.comp.programming.garbage-collection.boehmgc
Message-ID <[email protected]>
 Hi Petter,

marksolaris supplied details about threaded disclaim_test failure on Solaris Sparc 64 ( https://github.com/ivmai/bdwgc/issues/42 ).
Could you please have a look at? Thank you

Mon, 12 May 2014 00:05:14 -0700 from marksolaris <[email protected]>:
>(I commented out the test_cpp test to move forward, it's still broken)
>host:/var/tmp/bdw-gc-7.4.0 root# gmake check
gmake[1]: Entering directory `/var/tmp/bdw-gc-7.4.0'
/usr/local/bin/gmake  libstaticrootslib_test.la libstaticrootslib2_test.la cordtest gctest leaktest middletest smashtest hugetest realloc_test staticrootstest  threadleaktest threadkey_test subthreadcreate_test initsecondarythread_test  disclaim_test disclaim_bench
gmake[2]: Entering directory `/var/tmp/bdw-gc-7.4.0'
gmake[2]: `libstaticrootslib_test.la' is up to date.
gmake[2]: `libstaticrootslib2_test.la' is up to date.
gmake[2]: `cordtest' is up to date.
gmake[2]: `gctest' is up to date.
gmake[2]: `leaktest' is up to date.
gmake[2]: `middletest' is up to date.
gmake[2]: `smashtest' is up to date.
gmake[2]: `hugetest' is up to date.
gmake[2]: `realloc_test' is up to date.
gmake[2]: `staticrootstest' is up to date.
gmake[2]: `threadleaktest' is up to date.
gmake[2]: `threadkey_test' is up to date.
gmake[2]: `subthreadcreate_test' is up to date.
gmake[2]: `initsecondarythread_test' is up to date.
gmake[2]: `disclaim_test' is up to date.
gmake[2]: `disclaim_bench' is up to date.
gmake[2]: Leaving directory `/var/tmp/bdw-gc-7.4.0'
/usr/local/bin/gmake  check-TESTS
gmake[2]: Entering directory `/var/tmp/bdw-gc-7.4.0'
gmake[3]: Entering directory `/var/tmp/bdw-gc-7.4.0'
PASS: cordtest
PASS: gctest
PASS: leaktest
PASS: middletest
PASS: smashtest
PASS: hugetest
PASS: realloc_test
PASS: staticrootstest
PASS: threadleaktest
PASS: threadkey_test
PASS: subthreadcreate_test
PASS: initsecondarythread_test
FAIL: disclaim_test
PASS: disclaim_bench
gmake[4]: Entering directory `/var/tmp/bdw-gc-7.4.0'
gmake[5]: Entering directory `/var/tmp/bdw-gc-7.4.0'
gmake[5]: Nothing to be done for `all-am'.
gmake[5]: Leaving directory `/var/tmp/bdw-gc-7.4.0'
gmake[4]: Leaving directory `/var/tmp/bdw-gc-7.4.0'
============================================================================
Testsuite summary for gc 7.4.0
============================================================================
# TOTAL: 14
# PASS:  13
# SKIP:  0
# XFAIL: 0
# FAIL:  1
# XPASS: 0
# ERROR: 0
============================================================================
See ./test-suite.log
Please report to [email protected]
============================================================================
gmake[3]: *** [test-suite.log] Error 1
gmake[3]: Leaving directory `/var/tmp/bdw-gc-7.4.0'
gmake[2]: *** [check-TESTS] Error 2
>host:/var/tmp/bdw-gc-7.4.0 root# cat disclaim_test.log
Assertion failure, line 102: p->checksum == checksum
Threaded disclaim test.

DEBUG: Destruct 100401000 = (1003fa640, 0)
DEBUG: checksum 86802:
DEBUG: p->checksum 86802:

DEBUG: Destruct 100401020 = (0, 0)
DEBUG: checksum 782:
DEBUG: p->checksum 782:

DEBUG: Destruct 100401080 = (0, 0)
DEBUG: checksum 782:
DEBUG: p->checksum 782:

DEBUG: Destruct 1004010a0 = (100400f60, 1003f59a0)
DEBUG: checksum 4206810:
DEBUG: p->checksum 10948:
>Problem section (and debugging mods)
>host:/var/tmp/bdw-gc-7.4.0 root# vi  tests/disclaim_test.c
     82 void GC_CALLBACK pair_dct(void *obj, void *cd)
     83 {
     84     pair_t p = obj;
     85     int checksum;
     86 
     87     /* Check that obj and its car and cdr are not trashed. */
     88 /* #   ifdef DEBUG_DISCLAIM_DESTRUCT */
     89 /* #   endif */
     90     my_assert(GC_base(obj));
     91     my_assert(p->is_valid);
     92     my_assert(!p->car || p->car->is_valid);
     93     my_assert(!p->cdr || p->cdr->is_valid);
     94     checksum = 782;
     95     if (p->car) checksum += p->car->checksum;
     96     if (p->cdr) checksum += p->cdr->checksum;
     97     /* if (p->checksum != checksum) { */
     98         fprintf(stdout, "DEBUG: Destruct %p = (%p, %p)\n", (void *)p, (void *)p->car, (void *)p->cdr);
     99         fprintf(stdout, "DEBUG: checksum %d:\n", checksum);
    100         fprintf(stdout, "DEBUG: p->checksum %d:\n\n", p->checksum);
    101     /* } */
    102     my_assert(p->checksum == checksum);
    103 
    104     /* Invalidate it. */
    105     p->is_valid = 0;
    106     p->checksum = 0;
    107     p->car = cd;
    108     p->cdr = NULL;
    109 }
>—
>Reply to this email directly or view it on GitHub

_______________________________________________
bdwgc mailing list
[email protected]
https://lists.opendylan.org/mailman/listinfo/bdwgc