GNOME Bugzilla – Bug 570572
2 make check errors on
Last modified: 2013-02-03 14:52:07 UTC
Solaris 2.8 glib 2.18.4 sun studio 11 cc /testglib/Warnings & Errors: FAIL FAIL: checksum-test Here are the traces, I'll see about getting no -0, -g traces as well: Warnings & Errors: program terminated by signal ABRT (Abort) 0xffffffffffffffff: <bad address 0xffffffffffffffff> Current function is log_warning_error_tests (optimized) 560 g_test_trap_assert_stderr ("*g_print*assertion*failed*"); (dbx) where [1] 0x7fbdb26c(0xffbfeb30, 0x25, 0x30fe, 0x6, 0x0, 0x6), at 0x7fbdb26c [2] 0x7fbd7988(0x30fe, 0x6, 0x7fbee500, 0x14758, 0x7fb53ca4, 0x7f6b5950), at 0x7fbd7988 [3] 0x7fbdb1cc(0x30fe, 0x6, 0x0, 0xffffffff, 0x7f7403cc, 0x7f6b5950), at 0x7fbdb1cc [4] abort(0x7f73c000, 0x1, 0xc598, 0x7f98ed28, 0x220ac, 0x7f8f2f90), at 0x7f6b5a34 [5] g_assertion_message(0x7f999cc8, 0x33c38, 0x7f999ce0, 0xfffed1e0, 0x12c00, 0x2df98), at 0x7f8f2f98 [6] g_test_trap_assertions(0xa5510, 0x19c7c, 0x230, 0x19156, 0xfffed4ec, 0x12800), at 0x7f8f4540 =>[7] log_warning_error_tests() (optimized), at 0x14bc0 (line ~560) in "testglib.c" [8] test_case_run(0x31198, 0xac00, 0x2df18, 0x7f98ed28, 0x7f99b434, 0x0), at 0x7f8f2464 [9] g_test_run_suite_internal(0x0, 0x7f999c5c, 0x30630, 0x9c768, 0x8b120, 0x8b120), at 0x7f8f2788 [10] g_test_run_suite_internal(0x0, 0x7f999cc0, 0x30510, 0x9c768, 0x0, 0x30e88), at 0x7f8f29b4 [11] g_test_run_suite(0x30510, 0x0, 0x0, 0x7f98ed28, 0x7f999cc4, 0x7f99b418), at 0x7f8f2b98 [12] main(argc = ???, argv = ???) (optimized), at 0x19000 (line ~1534) in "testglib.c" checksum-test: program terminated by signal SEGV (no mapping at the fault address) 0xff3005c8: _memcpy+0x01c0: ldub [%o1 + %g5], %o4 Current function is test_checksum (optimized) 601 MIN (chunk_length, length - (p - FIXED_STR))); (dbx) where [1] _memcpy(0x2a03c, 0xfffedfc4, 0x0, 0x0, 0xecabc, 0xff18ed28), at 0xff3005c8 =>[2] test_checksum(checksum_type = ???, type = ???, sum = ???, length = ???) (optimized), at 0x10e8c (line ~601) in "checksum-test.c" [3] main(argc = ???, argv = ???) (optimized), at 0x10f6c (line ~632) in "checksum-test.c"
More details on Warnings & Errors failure (no optimization, symbols included) /testglib/GMemChunk (deprecated): OK /testglib/Warnings & Errors: ** ERROR:testglib.c:560:log_warning_error_tests: stderr of child process (4544) failed to match: *g_print*assertion*failed* FAIL GTester: last random seed: R02Sbcbf344b71c848a0cd0997698e4fc0a8 gmake[6]: *** [test] Error 143 program terminated by signal ABRT (Abort) 0xffffffffffffffff: <bad address 0xffffffffffffffff> Current function is g_assertion_message 1301 abort(); (dbx) where [1] 0x7fbdb26c(0xffbfe578, 0x25, 0x1184, 0x6, 0x0, 0x6), at 0x7fbdb26c [2] 0x7fbd7988(0x1184, 0x6, 0x7fbee500, 0x14758, 0x7fb53ca4, 0x7f635950), at 0x7fbd7988 [3] 0x7fbdb1cc(0x1184, 0x6, 0x0, 0xffffffff, 0x7f6c03cc, 0x7f635950), at 0x7fbdb1cc [4] abort(0x7f6bc000, 0x36e38, 0x0, 0x0, 0x0, 0xffbfe768), at 0x7f635a34 =>[5] g_assertion_message(domain = (nil), file = 0x1ce3c "testglib.c", line = 560, func = 0x1c1da "log_warning_error_tests", message = 0xa8710 "stderr of child process (4544) failed to match: *g_print*assertion*failed*"), line 1301 in "gtestutils.c" [6] g_test_trap_assertions(domain = (nil), file = 0x1ce3c "testglib.c", line = 560, func = 0x1c1da "log_warning_error_tests", assertion_flags = 4ULL, pattern = 0x1ce48 "*g_print*assertion*failed*"), line 1755 in "gtestutils.c" [7] log_warning_error_tests(), line 560 in "testglib.c" [8] test_case_run(tc = 0x34398), line 1130 in "gtestutils.c" [9] g_test_run_suite_internal(suite = 0x33830, path = 0x7f98ff84 ""), line 1179 in "gtestutils.c" [10] g_test_run_suite_internal(suite = 0x33710, path = 0x7f98ffe8 ""), line 1189 in "gtestutils.c" [11] g_test_run_suite(suite = 0x33710), line 1230 in "gtestutils.c" [12] g_test_run(), line 862 in "gtestutils.c" [13] main(argc = 1, argv = 0xffbfec64), line 1534 in "testglib.c"
More details on checksum-test failure (no -O, -g): program terminated by signal SEGV (no mapping at the fault address) 0x7fb005c8: _memcpy+0x01c0: ldub [%o1 + %g5], %o4 Current function is md5_sum_update 317 memcpy (p, data, length); (dbx) where [1] _memcpy(0x2a03c, 0xfffedfc4, 0x0, 0x0, 0xac, 0x0), at 0x7fb005c8 =>[2] md5_sum_update(md5 = 0x2a008, data = 0x18000 "<bad address 0x18000>", length = 1U), line 317 in "gchecksum.c" [3] g_checksum_update(checksum = 0x2a000, data = 0x18000 "<bad address 0x18000>", length = 1), line 1236 in "gchecksum.c" [4] test_checksum(checksum_type = G_CHECKSUM_MD5, type = 0x112e4 "MD5", sum = 0x113f8 "eeeb9a8eb45dd351d9ec0eb4acce66ce", length = 2), line 601 in "checksum-test.c" [5] main(argc = 1, argv = 0xffbfecfc), line 632 in "checksum-test.c"
In checksum-test.c is the #define for FIXED_STR necessary? The following allowed checksum-test to succeed: --- checksum-test.c.o 2009-02-04 19:53:27.782844898 -0600 +++ checksum-test.c 2009-02-04 21:22:05.475677071 -0600 @@ -18,7 +18,7 @@ * string is intentionally more than twice that length. */ -#define FIXED_STR "The quick brown fox jumps over the lazy dog. Jackdaws love my big sphinx of quartz. Pack my box with five dozen liquor jugs. How razorback-jumping frogs can level six piqued gymnasts!" +const char FIXED_STR[] = {"The quick brown fox jumps over the lazy dog. Jackdaws love my big sphinx of quartz. Pack my box with five dozen liquor jugs. How razorback-jumping frogs can level six piqued gymnasts!"}; #define FIXED_LEN (strlen (FIXED_STR)) const char *MD5_sums[] = {
I was able to reproduce both errors in 2.20.0 The work-around for checksum-test still works, but /testglib/Warnings & Errors is still broken.
Created attachment 155829 [details] [review] converting comments above to patch Thanks for tracking down the checksum-test problem. It has helped me with a couple of my machines using 2.23.5 code. Without the fix: Error on UnixWare 7.1.4 Invalid MD5 checksum for `Th' (length 2) counting by 1: 634bc60a7ce6cb9c11088a0a34e44549 (expecting: eeeb9a8eb45dd351d9ec0eb4acce66ce) FAIL: checksum-test Error on Solaris 10 w/ Sun Studio 12 /bin/bash: line 1: 9210 Segmentation Fault (core dumped) srcdir=/opt/src/l ibs/glib-2.23.5/tests LIBCHARSET_ALIAS_DIR=../glib/libcharset MALLOC_CHECK_=2 MA LLOC_PERTURB_=$((${RANDOM:-256} % 256)) ${dir}$tst FAIL: checksum-test With the fix it passes on UnixWare and Solaris 10 and still passes on Solaris 8 w/ gcc Maybe one of the developers will commit the fix.