[Pkg-tcltk-devel] Bug#488684: Bug#488684: tcl8.5: testsuite failures in db and db4.6 packages due to tclsh8.5 (GNU/kFreeBSD)

Petr Salinger Petr.Salinger at seznam.cz
Tue Jul 1 20:43:02 UTC 2008


> Threaded tclsh8.5 segfaults on exit after loading any shared library
> using [load] command. In your case it was libdb_tcl-4.6.so (Tcl
> interface to BDB).
>
> Unfortunately, it seems that the stack is corrupted during the crash,
> so GDB isn't informative. It gives something like the following (and
> never shows the symbols):
> Both GNU/Linux and FreeBSD work fine. So, it seems to be a problem
> with working with threads using glibc and kfreebsd. It seems to me that
> Tcl developers don't use so unusual environment, but I'll ask them
> anyway.

Thanks for the hint.

I added "--enable-symbols" to debian/rules, build package and

   cd unix
   ln -sf libtcl8.5.so libtcl8.5.so.0
   LD_LIBRARY_PATH=${PWD} ./tclsh ../tests/load.test
   gdb tclsh tclsh.core

The output of gdb is attached (from kfreebsd-amd64).

Unfortunately, I do not speak tcl, so I cannot reduce testcase
or see what is wrong.

GNU/kFreeBSD uses same kernel as FreeBSD and
glibc as linux, but it still uses linuxthreads (not NPTL).
But linuxthreads is still used on hppa, please could you (as DD)
test whether it does have same problem ?

Testsuite in db is on hppa disabled, so a problem with "load" would not
lead to FTBFS of db/db4.6 on hppa.

Thanks for your care about GNU/kFreeBSD.

Petr
-------------- next part --------------
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-kfreebsd-gnu"...
Reading symbols from /build/manual/d/tcl8.5-8.5.2/unix/libtcl8.5.so.0...done.
Loaded symbols for /build/manual/d/tcl8.5-8.5.2/unix/libtcl8.5.so.0
Reading symbols from /lib/libdl.so.2...Reading symbols from /usr/lib/debug/lib/libdl-2.7.so...done.
done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /lib/libpthread.so.0...Reading symbols from /usr/lib/debug/lib/libpthread-0.10.so...done.
done.
Loaded symbols for /lib/libpthread.so.0
Reading symbols from /lib/libm.so.1...Reading symbols from /usr/lib/debug/lib/libm-2.7.so...done.
done.
Loaded symbols for /lib/libm.so.1
Reading symbols from /lib/libc.so.0.1...Reading symbols from /usr/lib/debug/lib/libc-2.7.so...done.
done.
Loaded symbols for /lib/libc.so.0.1
Reading symbols from /lib/ld-kfreebsd-x86-64.so.1...Reading symbols from /usr/lib/debug/lib/ld-2.7.so...done.
done.
Loaded symbols for /lib/ld-kfreebsd-x86-64.so.1
Reading symbols from /lib/libnss_compat.so.2...Reading symbols from /usr/lib/debug/lib/libnss_compat-2.7.so...done.
done.
Loaded symbols for /lib/libnss_compat.so.2
Reading symbols from /lib/libnsl.so.1...Reading symbols from /usr/lib/debug/lib/libnsl-2.7.so...done.
done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from /lib/libnss_nis.so.2...Reading symbols from /usr/lib/debug/lib/libnss_nis-2.7.so...done.
done.
Loaded symbols for /lib/libnss_nis.so.2
Reading symbols from /lib/libnss_files.so.2...Reading symbols from /usr/lib/debug/lib/libnss_files-2.7.so...done.
done.
Loaded symbols for /lib/libnss_files.so.2
Reading symbols from /build/manual/d/tcl8.5-8.5.2/unix/dltest/pkga.so...done.
Loaded symbols for /build/manual/d/tcl8.5-8.5.2/unix/dltest/pkga.so
Reading symbols from /build/manual/d/tcl8.5-8.5.2/unix/dltest/pkgb.so...done.
Loaded symbols for /build/manual/d/tcl8.5-8.5.2/unix/dltest/pkgb.so
Reading symbols from /build/manual/d/tcl8.5-8.5.2/unix/dltest/pkgc.so...done.
Loaded symbols for /build/manual/d/tcl8.5-8.5.2/unix/dltest/pkgc.so
Core was generated by `tclsh'.
Program terminated with signal 11, Segmentation fault.
[New process 100114]
#0  0x0000000000000000 in ?? ()
(gdb) bt
#0  0x0000000000000000 in ?? ()
#1  0x0000000800612361 in _dl_close_worker () from /lib/ld-kfreebsd-x86-64.so.1
#2  0x00000008006125cc in _dl_close () from /lib/ld-kfreebsd-x86-64.so.1
#3  0x000000080060ca96 in _dl_catch_error () from /lib/ld-kfreebsd-x86-64.so.1
#4  0x0000000800b4634c in _dlerror_run () from /lib/libdl.so.2
#5  0x0000000800b4604f in dlclose () from /lib/libdl.so.2
#6  0x00000008008cac5b in Tcl_LoadObjCmd (dummy=<value optimized out>, interp=0x61a690, objc=0, objv=0x61fc48) at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclLoad.c:384
#7  0x000000080085ae34 in TclEvalObjvInternal (interp=0x61a690, objc=3, objv=0x61fc48, command=0xffffffffffffffff <Address 0xffffffffffffffff out of bounds>, length=-1, flags=0)
    at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclBasic.c:3649
#8  0x000000080089f53b in TclExecuteByteCode (interp=0x61a690, codePtr=0x75ad60) at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclExecute.c:2314
#9  0x000000080089e39e in TclCompEvalObj (interp=0x61a690, objPtr=0x749b20, invoker=0x61fa40, word=1) at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclExecute.c:1460
#10 0x000000080085c0cd in TclEvalObjEx (interp=0x0, objPtr=0xa, flags=0, invoker=0x61fa40, word=1) at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclBasic.c:4763
#11 0x0000000800862e7b in Tcl_CatchObjCmd (dummy=<value optimized out>, interp=0x61a690, objc=3, objv=<value optimized out>)
    at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclCmdAH.c:253
#12 0x000000080085ae34 in TclEvalObjvInternal (interp=0x61a690, objc=3, objv=0x61fa90, command=0x7548cb "catch {load [file join $testDir pkgc$ext] foo} msg] $msg\n", length=50, 
    flags=0) at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclBasic.c:3649
#13 0x000000080085bbf5 in TclEvalEx (interp=0x61a690, script=0x7548cb "catch {load [file join $testDir pkgc$ext] foo} msg] $msg\n", numBytes=<value optimized out>, flags=0, 
    line=2) at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclBasic.c:4296
#14 0x00000008008d9c20 in TclSubstTokens (interp=0x61a690, tokenPtr=0x61f488, count=1, tokensLeftPtr=0x0, line=2) at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclParse.c:2171
#15 0x000000080085b529 in TclEvalEx (interp=0x61a690, script=0x7548c0 "\n    list [catch {load [file join $testDir pkgc$ext] foo} msg] $msg\n", numBytes=<value optimized out>, 
    flags=0, line=2) at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclBasic.c:4191
#16 0x000000080085c198 in TclEvalObjEx (interp=0x61a690, objPtr=0x74a810, flags=262144, invoker=0x0, word=6419120) at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclBasic.c:4696
#17 0x00000008008e2c00 in Tcl_UplevelObjCmd (dummy=<value optimized out>, interp=0x61a690, objc=<value optimized out>, objv=<value optimized out>)
    at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclProc.c:911
#18 0x000000080085ae34 in TclEvalObjvInternal (interp=0x61a690, objc=3, objv=0x61f3c0, command=0xffffffffffffffff <Address 0xffffffffffffffff out of bounds>, length=-1, flags=0)
    at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclBasic.c:3649
#19 0x000000080089f53b in TclExecuteByteCode (interp=0x61a690, codePtr=0x736a80) at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclExecute.c:2314
#20 0x00000008008e38c7 in TclObjInterpProcCore (interp=0x61a690, procNameObj=0x749a00, skip=<value optimized out>, errorProc=0x8008e3c80 <MakeProcError>)
    at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclProc.c:1721
#21 0x000000080085ae34 in TclEvalObjvInternal (interp=0x61a690, objc=3, objv=0x650ab0, command=0x0, length=0, flags=262144)
    at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclBasic.c:3649
#22 0x000000080085b13d in Tcl_EvalObjv (interp=0x0, objc=10, objv=0x9, flags=262144) at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclBasic.c:3844
#23 0x000000080085c2c3 in TclEvalObjEx (interp=0x61a690, objPtr=0x7495e0, flags=262144, invoker=0x7548c0, word=<value optimized out>)
    at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclBasic.c:4643
#24 0x00000008008e2c00 in Tcl_UplevelObjCmd (dummy=<value optimized out>, interp=0x61a690, objc=<value optimized out>, objv=<value optimized out>)
    at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclProc.c:911
#25 0x000000080085ae34 in TclEvalObjvInternal (interp=0x61a690, objc=3, objv=0x61f238, command=0xffffffffffffffff <Address 0xffffffffffffffff out of bounds>, length=-1, flags=0)
    at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclBasic.c:3649
#26 0x000000080089f53b in TclExecuteByteCode (interp=0x61a690, codePtr=0x6cdcf0) at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclExecute.c:2314
#27 0x00000008008e38c7 in TclObjInterpProcCore (interp=0x61a690, procNameObj=0x7498b0, skip=<value optimized out>, errorProc=0x8008e3c80 <MakeProcError>)
    at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclProc.c:1721
#28 0x000000080085ae34 in TclEvalObjvInternal (interp=0x61a690, objc=3, objv=0x650a30, command=0x0, length=0, flags=262144)
    at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclBasic.c:3649
#29 0x000000080085b13d in Tcl_EvalObjv (interp=0x0, objc=10, objv=0x9, flags=262144) at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclBasic.c:3844
#30 0x000000080085c2c3 in TclEvalObjEx (interp=0x61a690, objPtr=0x749be0, flags=262144, invoker=0x642ad0, word=<value optimized out>)
    at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclBasic.c:4643
#31 0x00000008008e2c00 in Tcl_UplevelObjCmd (dummy=<value optimized out>, interp=0x61a690, objc=<value optimized out>, objv=<value optimized out>)
    at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclProc.c:911
#32 0x000000080085ae34 in TclEvalObjvInternal (interp=0x61a690, objc=3, objv=0x61f0b0, command=0xffffffffffffffff <Address 0xffffffffffffffff out of bounds>, length=-1, flags=0)
    at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclBasic.c:3649
#33 0x000000080089f53b in TclExecuteByteCode (interp=0x61a690, codePtr=0x726440) at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclExecute.c:2314
#34 0x00000008008e38c7 in TclObjInterpProcCore (interp=0x61a690, procNameObj=0x684cd0, skip=<value optimized out>, errorProc=0x8008e3c80 <MakeProcError>)
    at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclProc.c:1721
#35 0x000000080085ae34 in TclEvalObjvInternal (interp=0x61a690, objc=11, objv=0x61e9d0, 
    command=0x65946b "test load-2.3 {loading with no _Init procedure} -constraints [list $dll $loaded] \\\n-body {\n    list [catch {load [file join $testDir pkgc$ext] foo} msg] $msg\n} -match glob -result {1 {*couldn't find p"..., length=220, flags=0) at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclBasic.c:3649
#36 0x000000080085bbf5 in TclEvalEx (interp=0x61a690, 
    script=0x6588d0 "# Commands covered:  load\n#\n# This file contains a collection of tests for one or more of the Tcl\n# built-in commands.  Sourcing this file into Tcl runs the tests and\n# generates output for errors.  N"..., numBytes=<value optimized out>, flags=0, line=78) at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclBasic.c:4296
#37 0x00000008008c5081 in Tcl_FSEvalFileEx (interp=0x61a690, pathPtr=0x615900, encodingName=<value optimized out>) at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclIOUtil.c:1820
#38 0x00000008008cbbae in Tcl_Main (argc=0, argv=0x7fffffffeb98, appInitProc=0x4008a0 <Tcl_AppInit>) at /build/manual/d/tcl8.5-8.5.2/unix/../generic/tclMain.c:441
#39 0x0000000000400890 in main (argc=0, argv=0xa) at /build/manual/d/tcl8.5-8.5.2/unix/../unix/tclAppInit.c:87
(gdb) q


More information about the Pkg-tcltk-devel mailing list