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