|
Description
|
This customer Bourne shell script gets a SIGBUS after waiting for a tee command to finish. Here is the snippet from the shell script:
echo "OK" | tee -a $outputFile
The problem remains the same when they use /bin/echo instead of the builtin.
They have two corefiles, one using the builtin and the other using the external version of /bin/echo and they look identical to me.
They core files and other data is located in:
/net/cores.central/cores/66129153/corefile
*The issue is not reproduciable in-house BUT nortel have provided access to their reproduciable system/whole script to be available at our request.
Here's a brief look at the fist core file.
> $ ./opencore
> dbx: Already mapping path "/lib"
> error at line 3 of file 'dbxrc'
> Reading executable
> core file header read successfully
> Reading ld.so.1
> Reading libc.so.1
> Reading libc_psr.so.1
> Reading en_US.ISO8859-1.so.3
> Reading libgen.so.1
> program terminated by signal BUS (Bus Error)
> 0xff345dd8: _kill+0x0008: blu _cerror !
>
> dbx: warning: using the alternate init file: dbxrc
>
> (dbx) where
> [1] _kill(0x0, 0xa, 0x36400, 0x80000, 0x16be4, 0x1), at 0xff345dd8
> [2] done(0xa, 0x0, 0x0, 0x39000, 0x39000, 0x39800), at 0x16cb8
> [3] __sighndlr(0xa, 0x0, 0xffbfe8e0, 0x16be4, 0x0, 0x1), at 0xff345364
> ---- called from signal handler with signal 10 (SIGBUS) ------
> =>[4] execute(0x5c6e2229, 0x39280, 0x0, 0x39ad0, 0x39590, 0x5c6e2229),
> at 0x1a4ac
> [5] execute(0x73888, 0x39280, 0x0, 0x39ad0, 0x39590, 0x73888), at 0x1ad54
> [6] execute(0x39000, 0x39280, 0x0, 0x39ad0, 0x39590, 0x73688), at 0x1ae5c
> [7] execute(0x73e90, 0x39280, 0x0, 0x39ad0, 0x39590, 0x73e90), at 0x1ad3c
> [8] execute(0x73ea8, 0x39280, 0x0, 0x39ad0, 0x39590, 0x73ea8), at 0x1ad54
> [9] execute(0x73ec0, 0x39280, 0x0, 0x39ad0, 0x39590, 0x73ec0), at 0x1ad54
> [10] execute(0x733b8, 0x39280, 0x0, 0x39ad0, 0x39590, 0x4), at 0x1b000
> [11] execute(0x73ff0, 0x39280, 0x0, 0x39ad0, 0x39590, 0x73ff0), at
> 0x1ad54
> [12] execute(0x74008, 0x39280, 0x0, 0x39ad0, 0x39590, 0x74008), at
> 0x1ad54
> [13] execute(0x74020, 0x39280, 0x0, 0x39ad0, 0x39590, 0x74020), at
> 0x1ad54
> [14] execute(0x74038, 0x39280, 0x0, 0x39ad0, 0x39590, 0x74038), at
> 0x1ad54
> [15] execute(0x74050, 0x39280, 0x0, 0x39ad0, 0x39590, 0x74050), at
> 0x1ad54
> [16] execute(0x0, 0x39280, 0x39400, 0x39ad0, 0x39590, 0x74068), at
> 0x1a86c
> [17] execute(0x11f2dc, 0x39280, 0x0, 0x39ad0, 0x39590, 0x11f2dc), at
> 0x1b0cc
> [18] 0x22730(0x39000, 0x0, 0x36800, 0x39400, 0x39000, 0x39000), at
> 0x22730
> [19] main(0x200000, 0x39000, 0x395e0, 0x36800, 0x0, 0x39400), at 0x224b4
>
> (dbx) regs
> current frame: [4]
> g0-g3 0x00000000 0x00039000 0x00000000 0x00000000
> g4-g7 0x0011f2c0 0x00000000 0x00000000 0xff392a00
> o0-o3 0x0011fa04 0x00000000 0x00039528 0x00039400
> o4-o7 0x00000000 0x00000000 0xffbfeb98 0x0001a43c
> l0-l3 0x00000000 0x00000000 0x00000000 0x00000000
> l4-l7 0x00039000 0x00039800 0x00074cc8 0x00039acc
> i0-i3 0x5c6e2229 0x00039280 0x00000000 0x00039ad0
> i4-i7 0x00039590 0x5c6e2229 0xffbfec18 0x0001ad54
> y 0x00000000
> ccr 0x00000004
> pc 0x0001a4ac:execute+0x8c ld [%i5], %l4
> npc 0x0001a4b0:execute+0x90 and %l4, 240, %l2
>
> %i5 = 0x00039800 from the pmap
> 00038000 936K rwx-- [ heap ]
>
> 936 * 1024 = 958464 ( or EA000 in Hex ) so end of the heap should be
> 122000 so that %i5 should be well within the heap
Thanks for any suggestions on how to proceed.
Highly appreciated
-Joe
|