gmp-4.2.4 failures with Solaris 10 AMD64 and Studio Express 03/09

Dennis Clarke dclarke at blastwave.org
Sat Apr 4 17:03:52 CEST 2009


Everything was going well until I ran make check.

Thus :

PASS: t-set_f
check_in: result wrong
  i=1 zeros=0 neg=0
  got_ret  5
  want_ret 5
  got      =0x8100000000000000
  want     =0x81
/bin/bash: line 4:  9616 Abort                   (core dumped) ${dir}$tst
FAIL: t-io_raw
wrong at data[25]
    count=3 order=1  size=8 endian=1 nail=0  align=0
    got =0x44003300220011008800770066005500CC00BB00AA00990
    want=0x100120023003400450056006700780089009A00AB00BC00C
/bin/bash: line 4:  9636 Abort                   (core dumped) ${dir}$tst
FAIL: t-import
wrong result data
    at data[26]  align=0
    src "0x100120023003400450056006700780089009A00AB00BC00C"
    src=0x100120023003400450056006700780089009A00AB00BC00C
    order=1  size=8 endian=1 nail=0
    want count 3
    got count  3
    want 0x10, 0x01, 0x20, 0x02, 0x30, 0x03, 0x40, 0x04, 0x50, 0x05, 0x60,
0x06, 0x70, 0x07, 0x80, 0x08, 0x90, 0x09, 0xA0, 0x0A, 0xB0, 0x0B,
0xC0, 0x0C,
    got  0x04, 0x40, 0x03, 0x30, 0x02, 0x20, 0x01, 0x10, 0x08, 0x80, 0x07,
0x70, 0x06, 0x60, 0x05, 0x50, 0x0C, 0xC0, 0x0B, 0xB0, 0x0A, 0xA0,
0x09, 0x90,
/bin/bash: line 4:  9656 Abort                   (core dumped) ${dir}$tst
FAIL: t-export
PASS: t-pprime_p
==================================
3 of 56 tests failed

this info may or may not help :

$ elfdump .libs/libgmp.so.3.4.4 | grep PATH
       [5]  RUNPATH           0x196d
/opt/local/lib/\$ISALIST:/opt/local/lib:/opt/SSX0903/prod/lib/stlport4/amd64
       [6]  RPATH             0x196d
/opt/local/lib/\$ISALIST:/opt/local/lib:/opt/SSX0903/prod/lib/stlport4/amd64
$
$ elfdump .libs/libgmpxx.so.4.0.4 | grep PATH
       [6]  RUNPATH           0x253a9
/opt/local/lib/\$ISALIST:/opt/local/lib:/opt/SSX0903/prod/lib/stlport4/amd64:/export/medusa/dclarke/build/libgmp/i386/CXX/gmp-4.2.4-build-amd64/.libs:/opt/csw/lib:/opt/csw/lib/SALIST:/opt/SSX0903/lib/rw7/amd64:/opt/SSX0903/lib/stlport4/amd64:/opt/SSX0903/lib/amd64:/usr/ccs/lib/amd64:/lib/64:/usr/lib/64
       [7]  RPATH             0x253a9
/opt/local/lib/\$ISALIST:/opt/local/lib:/opt/SSX0903/prod/lib/stlport4/amd64:/export/medusa/dclarke/build/libgmp/i386/CXX/gmp-4.2.4-build-amd64/.libs:/opt/csw/lib:/opt/csw/lib/SALIST:/opt/SSX0903/lib/rw7/amd64:/opt/SSX0903/lib/stlport4/amd64:/opt/SSX0903/lib/amd64:/usr/ccs/lib/amd64:/lib/64:/usr/lib/64
$

$ file .libs/libgmp.so.3.4.4
.libs/libgmp.so.3.4.4: ELF 64-bit LSB dynamic lib AMD64 Version 1 [SSE2
MMX FPU], dynamically linked, not stripped

$ file .libs/libgmpxx.so.4.0.4
.libs/libgmpxx.so.4.0.4: ELF 64-bit LSB dynamic lib AMD64 Version 1 [SSE2
SSE CMOV FPU], dynamically linked, not stripped

So I set coreadm -p core.%f.%n_%z_%m.%u:%g.%t.%p -P all  and ran test 
again and was rewarded with :

$ find . -type f | grep core
./tests/mpz/core.t-io_raw.isis_global_i86pc.16411:101.1238793054.18936
./tests/mpz/core.t-export.isis_global_i86pc.16411:101.1238793055.18976
./tests/mpz/core.t-import.isis_global_i86pc.16411:101.1238793054.18956

Each of these revealed a failure in __lwp_kill thus :

$ dbx ../gmp-4.2.4-build-amd64/tests/mpz/.libs/t-export
./tests/mpz/core.t-export.isis_global_i86pc.16411:101.1238793055.18976 For
information about new features see `help changes'
To remove this message, put `dbxenv suppress_startup_message 7.7' in your
.dbxrc
Reading t-export
core file header read successfully
Reading ld.so.1
Reading libgmp.so.3.4.4
Reading libthread.so.1
Reading libc.so.1
t at 1 (l at 1) program terminated by signal ABRT (Abort)
0x00007fffffe6c94a: __lwp_kill+0x000a:  jae      __lwp_kill+0x18        [
0x7fffffe6c958, .+0xe ]
(dbx) where

current thread: t at 1
=>[1] __lwp_kill(0x1, 0x6, 0xffffffff89de2720, 0x7fffffe6d27e, 0x0, 0x0),
at 0x7fffffe6c94a
  [2] _thr_kill(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0x7fffffe65223
  [3] raise(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0x7fffffe11c39
  [4] abort(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0x7fffffdf11c0
  [5] check_data(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0x403ccb
  [6] main(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0x403d6b
(dbx) quit

$ dbx ../gmp-4.2.4-build-amd64/tests/mpz/.libs/t-import
./tests/mpz/core.t-import.isis_global_i86pc.16411:101.1238793054.18956 For
information about new features see `help changes'
To remove this message, put `dbxenv suppress_startup_message 7.7' in your
.dbxrc
Reading t-import
core file header read successfully
Reading ld.so.1
Reading libgmp.so.3.4.4
Reading libthread.so.1
Reading libc.so.1
t at 1 (l at 1) program terminated by signal ABRT (Abort)
0x00007fffffe6c94a: __lwp_kill+0x000a:  jae      __lwp_kill+0x18        [
0x7fffffe6c958, .+0xe ]
(dbx) where

current thread: t at 1
=>[1] __lwp_kill(0x1, 0x6, 0xffffffff89de34a0, 0x7fffffe6d27e, 0x0, 0x0),
at 0x7fffffe6c94a
  [2] _thr_kill(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0x7fffffe65223
  [3] raise(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0x7fffffe11c39
  [4] abort(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0x7fffffdf11c0
  [5] check_data(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0x4037d2
  [6] main(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0x40387b
(dbx) quit

$ dbx ../gmp-4.2.4-build-amd64/tests/mpz/.libs/t-io_raw
./tests/mpz/core.t-io_raw.isis_global_i86pc.16411:101.1238793054.18936 For
information about new features see `help changes'
To remove this message, put `dbxenv suppress_startup_message 7.7' in your
.dbxrc
Reading t-io_raw
core file header read successfully
Reading ld.so.1
Reading libgmp.so.3.4.4
Reading libthread.so.1
Reading libc.so.1
t at 1 (l at 1) program terminated by signal ABRT (Abort)
0x00007fffffe6c94a: __lwp_kill+0x000a:  jae      __lwp_kill+0x18        [
0x7fffffe6c958, .+0xe ]
(dbx) where

current thread: t at 1
=>[1] __lwp_kill(0x1, 0x6, 0xffffffff89d24000, 0x7fffffe6d27e, 0x0, 0x0),
at 0x7fffffe6c94a
  [2] _thr_kill(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0x7fffffe65223
  [3] raise(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0x7fffffe11c39
  [4] abort(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0x7fffffdf11c0
  [5] check_in(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0x403b73
  [6] main(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0x40462b
(dbx) lwps
o>l at 1 signal SIGABRT in __lwp_kill()
(dbx) lwp l at 1
t at 1 (l at 1) stopped in __lwp_kill at 0x7fffffe6c94a
0x00007fffffe6c94a: __lwp_kill+0x000a:  jae      __lwp_kill+0x18        [
0x7fffffe6c958, .+0xe ]
(dbx) regs
current thread: t at 1
current frame:  [1]
r15      0x0000000000000000
r14      0x0000000000000000
r13      0x0000000000000000
r12      0x0000000000000000
r11      0x0000000000000246
r10      0x00007fffffe6d27e
r9       0x0000000000000000
r8       0x0000000000000000
rdi      0x0000000000000001
rsi      0x0000000000000006
rbp      0xfffffd7fffdff650
rbx      0x0000000000000006
rdx      0xffffffff89d24000
rcx      0x00007fffffe6d27e
rax      0x0000000000000000
trapno   0x000000000000000e
err      0x0000000000000014
rip      0x00007fffffe6c94a:__lwp_kill+0xa    jae      __lwp_kill+0x18  [
0x7fffffe6c958, .+0xe ]
cs       0x000000000000004b
eflags   0x0000000000000292
rsp      0xfffffd7fffdff648
ss       0x0000000000000043
fs       0x00000000000001bb
gs       0x0000000000000000
es       0x0000000000000000
ds       0x0000000000000000
fsbase   0x00007fffffd70200
gsbase   0xffffffff80000000
(dbx)

I can try to run the a test manually with dbx :

$ dbx ../gmp-4.2.4-build-amd64/tests/mpz/.libs/t-io_raw
For information about new features see `help changes'
To remove this message, put `dbxenv suppress_startup_message 7.7' in your
.dbxrc
Reading t-io_raw
Reading ld.so.1
Reading libgmp.so.3.4.4
Reading libthread.so.1
Reading libc.so.1
(dbx) run

Running: t-io_raw
(process id 19113)
check_in: result wrong
  i=1 zeros=0 neg=0
  got_ret  5
  want_ret 5
  got      =0x8100000000000000
  want     =0x81
t at 1 (l at 1) signal ABRT (Abort) in __lwp_kill at 0xfffffd7fff27c94a
0xfffffd7fff27c94a: __lwp_kill+0x000a:  jae      __lwp_kill+0x18        [
0xfffffd7fff27c958, .+0xe ]
(dbx) where
current thread: t at 1
=>[1] __lwp_kill(0x1, 0x6, 0xffffffff89dd6120, 0x3, 0x0, 0x0), at
0xfffffd7fff27c94a
  [2] _thr_kill(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff275223  [3]
raise(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff221c39
  [4] abort(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfffffd7fff2011c0
  [5] check_in(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0x403b73
  [6] main(0x0, 0x0, 0x0, 0x0, 0x0, 0x0), at 0x40462b
(dbx)

I think my problems are entirely related to threading.

any thoughts ?

Dennis Clarke
http://www.blastwave.org/



More information about the gmp-bugs mailing list