Ticket UUID: | 1016865 | |||
Title: | md5 test suite causes tcl core dump! | |||
Type: | Bug | Version: | None | |
Submitter: | lvirden | Created on: | 2004-08-26 13:45:41 | |
Subsystem: | md5 | Assigned To: | andreas_kupries | |
Priority: | 9 Immediate | Severity: | ||
Status: | Closed | Last Modified: | 2005-10-07 04:12:17 | |
Resolution: | Fixed | Closed By: | andreas_kupries | |
Closed on: | 2005-10-06 21:12:17 | |||
Description: |
platform: sparc sunblade 100 solaris 8, sun c compiler, tcl 8.4.7, tcllib latest cvs snapshot - this has been going on for a day or so now. Module: md5 modules/md5/md5.test - md5 1.4.3 (Trf based) modules/md5/md5x.test - md5 2.0.1 (Trf based) Module: md5crypt modules/md5crypt/md5crypt.test - md5crypt 1.0.0 (pure Tcl) child killed: bus error while executing "exec [info nameofexecutable] [file join $distribution all.tcl] -modules $modules >@ stdout 2>@ s tderr" (procedure "__test" line 10) invoked from within "__$cmd" (file "../sak.tcl" line 1593) gmake: *** [test] Error 1 The stack trace is a bit peculiar: $ dbx /usr/tcl84/bin/tclsh8.4 core Reading tclsh8.4 core file header read successfully Reading ld.so.1 Reading libtcl8.4g.so Reading libdl.so.1 Reading libsocket.so.1 Reading libnsl.so.1 Reading libm.so.1 Reading libc.so.1 Reading libmp.so.2 Reading libc_psr.so.1 Reading libtk8.4g.so Reading libX11.so.4 Reading libXext.so.0 Reading libTrf2.1g.so Reading libz.so Reading libmemchan.so program terminated by signal BUS (invalid address alignment) dbx: warning: can't find file "/vol/tclsrcsol/tcl84/trf/md5.o" dbx: warning: see `help finding-files' 0xfec5d4d8: md5_process_block+0x0130: ld [%l0], %l5 dbx: warning: can't find file "/vol/tclsrcsol/tcl84/trf/md5dig.o" dbx: warning: can't find file "/vol/tclsrcsol/tcl84/trf/digest.o" dbx: warning: can't find file "/vol/tclsrcsol/tcl84/trf/registry.o" Current function is FlushChannel 2078 &errorCode); (dbx 1) where [1] md5_process_block(0xff00, 0xd76aa478, 0xff00, 0xffbe80c0, 0x61, 0x5a71dc), at 0xfec5d4d8 [2] md5_process_bytes(0x5a93a0, 0xc8, 0x5a71c0, 0x5aa3b0, 0x719, 0x5aa3b8), at 0xfec5d324 [3] MDmd5_UpdateBuf(0x5a71c0, 0x5a93a0, 0xc8, 0x1030, 0x2234c, 0xfefc1ce4), at 0xfec45f7c [4] EncodeBuffer(0x2453e0, 0x5a93a0, 0xc8, 0x0, 0xfec77ad8, 0x19e94c), at 0xfec44244 [5] TrfOutput(0x5a7128, 0x5a93a0, 0xc8, 0xffbe8330, 0x16ee4d, 0xff332b01), at 0xfec30d94 =>[6] FlushChannel(interp = (nil), chanPtr = 0x270560, calledFromAsyncFlush = 0), line 2078 in "tclIO.c" [7] CheckFlush(chanPtr = 0x270560, bufPtr = 0x5a9380, newlineFlag = 0), line 3429 in "tclIO.c" [8] WriteBytes(chanPtr = 0x270560, src = 0x5a2fa0 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", srcLen = 200), line 3040 in "tclIO.c" [9] Tcl_WriteObj(chan = 0x34ecd0, objPtr = 0x1fdfa8), line 2957 in "tclIO.c" [10] Tcl_PutsObjCmd(dummy = (nil), interp = 0x1fa328, objc = 4, objv = 0x19e9a4), line 132 in "tclIOCmd.c" [11] TclEvalObjvInternal(interp = 0x1fa328, objc = 4, objv = 0x19e9a4, command = (nil), length = 0, flags = 0), line 3087 in "tclBasic.c" [12] TclExecuteByteCode(interp = 0x1fa328, codePtr = 0xba750), line 1404 in "tclExecute.c" [13] TclCompEvalObj(interp = 0x1fa328, objPtr = 0x19a088), line 982 in "tclExecute.c" [14] TclObjInterpProc(clientData = 0x1b3a70, interp = 0x1fa328, objc = 3, objv = 0x19e998), line 1100 in "tclProc.c" [15] InvokeImportedCmd(clientData = 0x110bc8, interp = 0x1fa328, objc = 3, objv = 0x19e998), line 1476 in "tclNamesp.c" [16] TclEvalObjvInternal(interp = 0x1fa328, objc = 3, objv = 0x19e998, command = (nil), length = 0, flags = 0), line 3087 in "tclBasic.c" [17] TclExecuteByteCode(interp = 0x1fa328, codePtr = 0x3551e8), line 1404 in "tclExecute.c" [18] TclCompEvalObj(interp = 0x1fa328, objPtr = 0x16aae0), line 982 in "tclExecute.c" [19] TclObjInterpProc(clientData = 0x3562b8, interp = 0x1fa328, objc = 4, objv = 0xffbe9424), line 1100 in "tclProc.c" [20] TclEvalObjvInternal(interp = 0x1fa328, objc = 4, objv = 0xffbe9424, command = 0xff35b5e4 "", length = 0, flags = 524288), line 3087 in "tclBasic.c" [21] Tcl_EvalObjv(interp = 0x1fa328, objc = 4, objv = 0xffbe9424, flags = 524288), line 3203 in "tclBasic.c" [22] AliasObjCmd(clientData = 0x24aa10, interp = 0x1fa328, objc = 3, objv = 0xffbe95a8), line 1486 in "tclInterp.c" [23] TclEvalObjvInternal(interp = 0x1fa328, objc = 3, objv = 0xffbe95a8, command = 0x150b09 "::md5crypt::md5crypt $passwd $salt\n ", length = 35, flags = 0), line 3087 in "tclBasic.c" [24] Tcl_EvalEx(interp = 0x1fa328, script = 0x150b00 "\n ::md5crypt::md5crypt $passwd $salt\n ", numBytes = 48, flags = 262144), line 3683 in "tclBasic.c" [25] Tcl_EvalObjEx(interp = 0x1fa328, objPtr = 0x1611e0, flags = 262144), line 4000 in "tclBasic.c" [26] Tcl_UplevelObjCmd(dummy = (nil), interp = 0x1fa328, objc = 1, objv = 0x19e994), line 674 in "tclProc.c" [27] TclEvalObjvInternal(interp = 0x1fa328, objc = 3, objv = 0x19e98c, command = (nil), length = 0, flags = 0), line 3087 in "tclBasic.c" [28] TclExecuteByteCode(interp = 0x1fa328, codePtr = 0x34f618), line 1404 in "tclExecute.c" [29] TclCompEvalObj(interp = 0x1fa328, objPtr = 0x2ae910), line 982 in "tclExecute.c" [30] TclObjInterpProc(clientData = 0x247cb0, interp = 0x1fa328, objc = 3, objv = 0x304960), line 1100 in "tclProc.c" [31] TclEvalObjvInternal(interp = 0x1fa328, objc = 3, objv = 0x304960, command = 0xff35b5e4 "", length = 0, flags = 262144), line 3087 in "tclBasic.c" [32] Tcl_EvalObjv(interp = 0x1fa328, objc = 3, objv = 0x304960, flags = 262144), line 3203 in "tclBasic.c" [33] Tcl_EvalObjEx(interp = 0x1fa328, objPtr = 0x96b98, flags = 262144), line 3997 in "tclBasic.c" [34] Tcl_UplevelObjCmd(dummy = (nil), interp = 0x1fa328, objc = 1, objv = 0x19e988), line 674 in "tclProc.c" [35] TclEvalObjvInternal(interp = 0x1fa328, objc = 3, objv = 0x19e980, command = (nil), length = 0, flags = 0), line 3087 in "tclBasic.c" [36] TclExecuteByteCode(interp = 0x1fa328, codePtr = 0x371de0), line 1404 in "tclExecute.c" [37] TclCompEvalObj(interp = 0x1fa328, objPtr = 0x1f9a68), line 982 in "tclExecute.c" [38] TclObjInterpProc(clientData = 0x25fa80, interp = 0x1fa328, objc = 3, objv = 0x1a8348), line 1100 in "tclProc.c" [39] TclEvalObjvInternal(interp = 0x1fa328, objc = 3, objv = 0x1a8348, command = 0xff35b5e4 "", length = 0, flags = 262144), line 3087 in "tclBasic.c" [40] Tcl_EvalObjv(interp = 0x1fa328, objc = 3, objv = 0x1a8348, flags = 262144), line 3203 in "tclBasic.c" [41] Tcl_EvalObjEx(interp = 0x1fa328, objPtr = 0x24f138, flags = 262144), line 3997 in "tclBasic.c" [42] Tcl_UplevelObjCmd(dummy = (nil), interp = 0x1fa328, objc = 1, objv = 0x19e97c), line 674 in "tclProc.c" [43] TclEvalObjvInternal(interp = 0x1fa328, objc = 3, objv = 0x19e974, command = (nil), length = 0, flags = 0), line 3087 in "tclBasic.c" [44] TclExecuteByteCode(interp = 0x1fa328, codePtr = 0x37ad00), line 1404 in "tclExecute.c" [45] TclCompEvalObj(interp = 0x1fa328, objPtr = 0x250c70), line 982 in "tclExecute.c" [46] TclObjInterpProc(clientData = 0x12d048, interp = 0x1fa328, objc = 5, objv = 0x19e960), line 1100 in "tclProc.c" [47] InvokeImportedCmd(clientData = 0x2527d8, interp = 0x1fa328, objc = 5, objv = 0x19e960), line 1476 in "tclNamesp.c" [48] TclEvalObjvInternal(interp = 0x1fa328, objc = 5, objv = 0x19e960, command = (nil), length = 0, flags = 0), line 3087 in "tclBasic.c" [49] TclExecuteByteCode(interp = 0x1fa328, codePtr = 0x8a6a0), line 1404 in "tclExecute.c" [50] TclCompEvalObj(interp = 0x1fa328, objPtr = 0x98848), line 982 in "tclExecute.c" [51] Tcl_EvalObjEx(interp = 0x1fa328, objPtr = 0x98848, flags = 0), line 4012 in "tclBasic.c" [52] Tcl_ForeachObjCmd(dummy = (nil), interp = 0x1fa328, objc = 4, objv = 0xffbeb750), line 1863 in "tclCmdAH.c" [53] TclEvalObjvInternal(interp = 0x1fa328, objc = 4, objv = 0xffbeb750, command = 0x2a6408 "foreach {n salt passwd expected} [list \\n 1 {a} {} {$1$a$8CfZSfErbeskipdhZHtvu.} \\n 2 {a} {a} {$1$a$44cUw6Nm5bX0muHWNIwub0} \\n 3 {a} [string repeat a 100] {$1$a$vTAcWEblAgdUlX6KBz0NM.} \\n 4 {a} [string repeat a 200] {$1$a$kC.K4D6mvUznpkjWJK8Tm0} \\n 5 {a} [string repeat a 400] {$1$a$nBvNVTsAryOnHlW7L/gzf/} \\n 6 {a} [string repeat a 1000] {$1$a$yhNnTV4IKHbl8oEB/eJaj0} \\n] {\n test md5passwd-4.${n} {md5crypt check passwd} {\n ::md5crypt::md5crypt $passwd $s" ..., length = 800, flags = 0), line 3087 in "tclBasic.c" [54] Tcl_EvalEx(interp = 0x1fa328, script = 0x2a55c8 "# -*- tcl -*-\n# md5crypt.test: tests for the md5crypt commands\n#\n# This file contains a collection of tests for one or more of the Tcllib\n# commands. Sourcing this file into Tcl runs the tests and generates\n# output for errors. No output means no errors were found.\n#\n# Copyright (C) 2003 Pat Thoyts <[email protected]>\n#\n# RCS: @(#) $Id: md5crypt.test,v 1.5 2004/02/14 05:59:21 andreas_kupries Exp $\n\n# -------------------------------------------------------------------------\n# Initialize the " ..., numBytes = 5337, flags = 0), line 3683 in "tclBasic.c" [55] Tcl_FSEvalFile(interp = 0x1fa328, pathPtr = 0x250628), line 1749 in "tclIOUtil.c" [56] Tcl_SourceObjCmd(dummy = (nil), interp = 0x1fa328, objc = 2, objv = 0x19e958), line 1058 in "tclCmdMZ.c" [57] TclEvalObjvInternal(interp = 0x1fa328, objc = 2, objv = 0x19e958, command = (nil), length = 0, flags = 0), line 3087 in "tclBasic.c" [58] TclExecuteByteCode(interp = 0x1fa328, codePtr = 0x1c0a30), line 1404 in "tclExecute.c" [59] TclCompEvalObj(interp = 0x1fa328, objPtr = 0x2321c0), line 982 in "tclExecute.c" [60] Tcl_EvalObjEx(interp = 0x1fa328, objPtr = 0x2321c0, flags = 0), line 4012 in "tclBasic.c" [61] Tcl_CatchObjCmd(dummy = (nil), interp = 0x1fa328, objc = 3, objv = 0x19e94c), line 254 in "tclCmdAH.c" [62] TclEvalObjvInternal(interp = 0x1fa328, objc = 3, objv = 0x19e94c, command = (nil), length = 0, flags = 0), line 3087 in "tclBasic.c" [63] TclExecuteByteCode(interp = 0x1fa328, codePtr = 0x12ba00), line 1404 in "tclExecute.c" [64] TclCompEvalObj(interp = 0x1fa328, objPtr = 0x163978), line 982 in "tclExecute.c" [65] Tcl_EvalObjEx(interp = 0x1fa328, objPtr = 0x163978, flags = 0), line 4012 in "tclBasic.c" [66] SlaveEval(interp = 0x23858, slaveInterp = 0x1fa328, objc = 1, objv = 0x254b4), line 2094 in "tclInterp.c" [67] SlaveObjCmd(clientData = 0x1fa328, interp = 0x23858, objc = 3, objv = 0x254ac), line 1933 in "tclInterp.c" [68] TclEvalObjvInternal(interp = 0x23858, objc = 3, objv = 0x254ac, command = (nil), length = 0, flags = 0), line 3087 in "tclBasic.c" [69] TclExecuteByteCode(interp = 0x23858, codePtr = 0x152030), line 1404 in "tclExecute.c" [70] TclCompEvalObj(interp = 0x23858, objPtr = 0x4de78), line 982 in "tclExecute.c" [71] Tcl_EvalObjEx(interp = 0x23858, objPtr = 0x4de78, flags = 0), line 4012 in "tclBasic.c" [72] Tcl_ForeachObjCmd(dummy = (nil), interp = 0x23858, objc = 4, objv = 0x2549c), line 1863 in "tclCmdAH.c" [73] TclEvalObjvInternal(interp = 0x23858, objc = 4, objv = 0x2549c, command = (nil), length = 0, flags = 0), line 3087 in "tclBasic.c" [74] TclExecuteByteCode(interp = 0x23858, codePtr = 0xb2548), line 1404 in "tclExecute.c" [75] TclCompEvalObj(interp = 0x23858, objPtr = 0x31300), line 982 in "tclExecute.c" [76] Tcl_EvalObjEx(interp = 0x23858, objPtr = 0x31300, flags = 0), line 4012 in "tclBasic.c" [77] Tcl_ForeachObjCmd(dummy = (nil), interp = 0x23858, objc = 4, objv = 0xffbecda8), line 1863 in "tclCmdAH.c" [78] TclEvalObjvInternal(interp = 0x23858, objc = 4, objv = 0xffbecda8, command = 0x34c55 "foreach module $modules {\n set ::tcltest::testsDirectory [file join $root modules $module]\n\n if { ![file isdirectory $::tcltest::testsDirectory] } {\n^Iputs stdout "unknown module $module"\n }\n\n set auto_path $old_apath\n set auto_path [linsert $auto_path 0 $::tcltest::testsDirectory]\n\n # foreach module, make a slave interp and source that module's tests into\n # the slave. This isolates the test suites from one another.\n puts stdout "Module:\t[file tail $module]"\n set c [interp creat" ..., length = 3554, flags = 0), line 3087 in "tclBasic.c" [79] Tcl_EvalEx(interp = 0x23858, script = 0x33de8 "# all.tcl --\n#\n# This file contains a top-level script to run all of the Tcl\n# tests. Execute it by invoking "tclsh all.test" in this directory.\n#\n# To test a subset of the modules, invoke it by 'tclsh all.test -modules "<module list>"'\n#\n# Copyright (c) 1998-2000 by Ajuba Solutions.\n# All rights reserved.\n# \n# RCS: @(#) $Id: all.tcl,v 1.19 2004/08/10 07:01:30 andreas_kupries Exp $\n\nset old_auto_path $auto_path\n\nif {[lsearch [namespace children] ::tcltest] == -1} {\n namespace eval ::tcltest {}\n proc " ..., numBytes = 7355, flags = 0), line 3683 in "tclBasic.c" [80] Tcl_FSEvalFile(interp = 0x23858, pathPtr = 0x2c8f8), line 1749 in "tclIOUtil.c" [81] Tcl_Main(argc = 3, argv = 0xffbed3f0, appInitProc = 0x10820 = &Tcl_AppInit(Tcl_Interp *interp)), line 292 in "tclMain.c" [82] main(argc = 4, argv = 0xffbed3ec), line 90 in "tclAppInit.c" (dbx 2) | |||
User Comments: |
andreas_kupries added on 2005-10-07 04:12:17:
Logged In: YES user_id=75003 Outside communication by mail ... Apparently we have no crashes anymore. andreas_kupries added on 2005-10-01 04:41:39: Logged In: YES user_id=75003 Larry, what is the current status of this ? andreas_kupries added on 2004-08-26 22:51:37: Logged In: YES user_id=75003 Larry, can you make Trf unavailable and check if the pure-Tcl version has the same problem ? It should not. The stacktrace shows the crash clearly in Trf's md5 implementation. This might be a bug in Trf. Except that Trf has not been changed in the last day, nor even week. |