Fire! Core dump in pthread_mutex_lock

Hi, All,

Here is the pstack information from dbx.

t@1 (l@1) terminated by signal SEGV (access to address exceeded protections)

0xfd90b258: _lock_try_adaptive: ldstub[%o0 + 12], %o1

(dbx) where

current thread: t@1

=>[1] _lock_try_adaptive(0x10018, 0x2089c, 0x64d530, 0x85e18, 0xffbef338, 0x20bd288), at 0xfd90b258

[2] _ti_pthread_mutex_lock(0x0, 0xfd91c000, 0x10018, 0x3, 0x0, 0x0), at 0xfd8fb798

[3] cmgCall::sendEventIn(0x224e010, 0x2, 0x209144b, 0x3, 0x10018, 0x6ef910), at 0xfe4912bc

[4] cmgSs7Adapter::inputNetMsg(0xfe50db20, 0x2091430, 0xfe5f677c, 0x3, 0x1a7d5e0, 0xfe5b85c4), at 0xfe50d060

[5] cmgCallMgr::forwardNetEvent(0x28b010, 0xaf6f10, 0x100a, 0x100b, 0xfe5526eb, 0x0), at 0xfe4a6c40

[6] engIOS_EvtHdlr::handleEvent(0x25e1f0, 0xaf6f10, 0x0, 0xbd07c, 0x5, 0x2), at 0xfe1f4a7c

[7] XEEvtDispatcher::run(0x1b9010, 0xdce170, 0x1b9124, 0x1b9078, 0x1, 0x710381), at 0xfe96bac4

[8] XEProcShell::run(0x1b69a0, 0x800, 0x9a8, 0xfea06630, 0x1bb610, 0x1), at 0xfe991ce8

[9] main(0x3, 0xffbefb54, 0xffbefb64, 0x1617d0, 0x0, 0x0), at 0x26238

(dbx) regs

current thread: t@1

current frame: [1]

g0-g10x00000000 0x00000000 0x00000000 0x0001b000

g2-g30x00000000 0x00000001 0x00000000 0xfe8ead08

g4-g50x00000000 0x00000074 0x00000000 0xffbef32c

g6-g70x00000000 0x00000000 0x00000000 0x00193778

o0-o10x00000000 0x00010018 0x00000000 0x0002089c

o2-o30x00000000 0x0064d530 0x00000000 0x00085e18

o4-o50x00000000 0xffbef338 0x00000000 0x020bd288

o6-o70x00000000 0xffbef318 0x00000000 0xfd8fb798

l0-l30x00000000 0xfcfc35e4 0x00000009 0x00000000

l4-l70x0064d530 0xfe8db0e8 0x0064d530 0xfe5b85c4

i0-i30x00000000 0xfd91c000 0x00010018 0x00000003

i4-i70x00000000 0x00000000 0xffbef378 0xfe4912bc

y0x000f7c26

psr0xfe401001

pc0xfd90b258:_lock_try_adaptive ldstub[%o0 + 12], %o1

npc0xfd90b25c:_lock_try_adaptive+0x4tst%o1

(dbx) lwps

o>l@1 signal SIGSEGV in _lock_try_adaptive()

l@2 LWP suspended in _libc_sigaction()

l@3 LWP suspended in lwp_cond_wait()

l@27 LWP suspended in lwp_cond_wait()

l@28 LWP suspended in privatelwp_cond_wait()

l@29 LWP suspended in writeValue<unsigned short>()

l@24 LWP suspended in __door_call()

(dbx)

Could you help investigate it?

Thanks!

Eric

[2463 byte] By [wliangya] at [2007-11-26 22:38:05]
# 1

Shouting Fire! in a crowded forum can cause a riot. People can get trampled.

Very bad. :-)But in this case, I don't think there is a riot coming.

You probably passed a 0 to the mutex function.

Try something like this in dbx:

(dbx) stop in _ti_pthread_mutex_lock -if $o0 == 0

(dbx) run

See if it hits that breakpoint. If so, then your app is passing a zero

to that function.

Also, look at the code for cmdCall::sendEventIn and see if you

can tell if it might be passing a zero.

ChrisQuenellea at 2007-7-10 11:49:43 > top of Java-index,Development Tools,Solaris and Linux Development Tools...