After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 570572 - 2 make check errors on
2 make check errors on
Status: RESOLVED FIXED
Product: glib
Classification: Platform
Component: build
2.20.x
Other Solaris
: Normal normal
: ---
Assigned To: gtkdev
gtkdev
Depends on:
Blocks:
 
 
Reported: 2009-02-04 22:52 UTC by Chad Harp
Modified: 2013-02-03 14:52 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
converting comments above to patch (802 bytes, patch)
2010-03-11 06:22 UTC, Tim Rice
none Details | Review

Description Chad Harp 2009-02-04 22:52:59 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"
Comment 1 Chad Harp 2009-02-05 01:22:48 UTC
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"
Comment 2 Chad Harp 2009-02-05 01:47:10 UTC
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"
Comment 3 Chad Harp 2009-02-05 03:30:27 UTC
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[] = {
Comment 4 Chad Harp 2009-03-31 18:53:38 UTC
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.
Comment 5 Tim Rice 2010-03-11 06:22:22 UTC
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.