Open
Bug 226776
Opened 21 years ago
Updated 2 years ago
The provider test hits an assertion failure (PR_Delete failed)
Categories
(NSPR :: NSPR, defect)
Tracking
(Not tracked)
NEW
People
(Reporter: wtc, Unassigned)
Details
This is NSPR 4.4.1 32-bit Solaris 8 debug build.
The assertion at provider.c:625 failed:
621 aborted:
622 PR_ClearInterrupt();
623 if (NULL != file) PR_Close(file);
624 drv = PR_Delete(descriptor->filename);
625 TEST_ASSERT(PR_SUCCESS == drv);
The value of descriptor->filename is "CS40a65a562d478-1e1.dat",
and that file doesn't exist (either it wasn't created in the
first place or it has been deleted). The errno is 0; I'm not
sure if that value is reliable.
Some debug info from the core file:
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) threads
t@1 ?() sleep on 0x29c40 in cond_wait()
t@2 b l@2 ?() LWP suspended in __signotifywait()
t@3 ?() sleep on (unknown) in _reap_wait()
t@4 a l@4 pthread_start() sleep on 0x29c68 in _lwp_sema_wai
t()
o> t@6 a l@1 pthread_start() signal SIGABRT in __sigprocmask()
t@7 b l@5 _co_timerset() LWP suspended in _lwp_sema_wait()
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) thread t@1
Current function is PR_WaitCondVar
389 rv = pthread_cond_wait(&cvar->cv, &cvar->lock->mutex);
t@1 (l@X) stopped in cond_wait at 0xff2a8014
0xff2a8014: cond_wait+0x00e4: call _swtch
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) where
current thread: t@1
[1] cond_wait(0x4356, 0x2d2a8, 0xff2ce000, 0x29c40, 0x281c8, 0xff3803ac), at 0
xff2a8014
[2] _ti_pthread_cond_wait(0x29c40, 0x2d2a8, 0x1, 0x1, 0x0, 0x2d471), at 0xff2a
7f10
=>[3] PR_WaitCondVar(cvar = 0x29c38, timeout = 4294967295U), line 389 in "ptsync
h.c"
[4] main(argc = 1, argv = 0xffbef944), line 1403 in "provider.c"
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) thread t@2
t@2 (l@2) stopped in __signotifywait at 0xff219290
0xff219290: __signotifywait+0x0008: bgeu __signotifywait+0x30
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) where
current thread: t@2
=>[1] __signotifywait(0x4, 0xff2ce000, 0x0, 0x0, 0x0, 0x0), at 0xff219290
[2] _dynamiclwps(0xff2ce000, 0x5c, 0x0, 0x0, 0x0, 0x0), at 0xff2aea04
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) thread t@3
t@3 (l@X) stopped in _reap_wait at 0xff2ad9bc
0xff2ad9bc: _reap_wait+0x0038: call _swtch
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) where
current thread: t@3
=>[1] _reap_wait(0xff2d2a18, 0x20920, 0x0, 0xff2ce000, 0x0, 0x0), at 0xff2ad9bc
[2] _reaper(0xff2cee40, 0xff2d4780, 0xff2d2a18, 0xff2cee18, 0x1, 0xfe400000),
at 0xff2ad714
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) thread t@4
Current function is PR_WaitCondVar
389 rv = pthread_cond_wait(&cvar->cv, &cvar->lock->mutex);
t@4 (l@4) stopped in _lwp_sema_wait at 0xff2198c0
0xff2198c0: _lwp_sema_wait+0x000c: bgeu,a _lwp_sema_wait+0x20
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) where
current thread: t@4
[1] _lwp_sema_wait(0x4, 0x0, 0x0, 0x4, 0x24f9c, 0x2), at 0xff2198c0
[2] _park(0xfe7f1e30, 0xff2ce000, 0x0, 0xfe7f1d78, 0x2501c, 0x0), at 0xff2a97f
4
[3] _swtch(0xfe7f1d78, 0x0, 0xff2ce000, 0x5, 0x1, 0xfe401000), at 0xff2a94d0
[4] cond_wait(0x4356, 0x2d2a8, 0xff2ce000, 0x29c68, 0xfe7f1d78, 0x0), at 0xff2
a8014
[5] _ti_pthread_cond_wait(0x29c68, 0x2d2a8, 0x2d2a8, 0x1, 0x0, 0xfe7f1c39), at
0xff2a7f10
=>[6] PR_WaitCondVar(cvar = 0x29c60, timeout = 4294967295U), line 389 in "ptsync
h.c"
[7] Server(arg = 0x2d248), line 1075 in "provider.c"
[8] pthread_start(arg = 0x29388), line 656 in "provider.c"
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) up
Current function is Server
1075 (void)PR_WaitCondVar(server->pool.exiting, PR_INTERVAL_NO_TIMEOU
T);
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) print *server
*server = {
list = {
next = 0x2d248
prev = 0x2d248
}
ml = 0x2d2a8
thread = 0x2d308
stateChange = 0x29c38
port = 13000U
backlog = 5U
listener = 0x285e8
pool = {
exiting = 0x29c60
acceptComplete = 0x29c88
accepting = 0
active = 1U
workers = 1U
}
state = cs_stop
workers = {
minimum = 0
maximum = 0
accepting = 1U
}
started = 1084643829U
stopped = 0
operations = 481U
bytesTransferred = 492264U
}
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) thread t@5
dbx: warning: invalid frame pointer
t@5 (l@X) stopped in _swtch at 0xff2a94d0
0xff2a94d0: _swtch+0x0400: call _park
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) where
current thread: t@5
=>[1] _swtch(0xff35e784, 0x0, 0xff318c80, 0xff30291c, 0x0, 0xfe7d16dc), at 0xff2
a94d0
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) thread t@6
t@6 (l@1) stopped in __sigprocmask at 0xff2b9bf0
0xff2b9bf0: __sigprocmask+0x0008: jmp %o7 + 0x8
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) where
current thread: t@6
[1] __sigprocmask(0x0, 0xfe7b1478, 0x0, 0x0, 0x0, 0x0), at 0xff2b9bf0
[2] _resetsig(0xff2bc510, 0x0, 0x0, 0xfe7b1d78, 0xff2ce000, 0x0), at 0xff2ae62
0
[3] _sigon(0xfe7b1d78, 0xff2d5990, 0x6, 0xfe7b154c, 0xfe7b1d78, 0xff380d8c), a
t 0xff2add10
[4] _thrp_kill(0x0, 0x6, 0x6, 0xff2ce000, 0x6, 0xff23a428), at 0xff2b0e84
[5] raise(0x6, 0x0, 0x0, 0xffffffff, 0xff23a394, 0xff35e590), at 0xff1c9b08
[6] abort(0xff236000, 0x5a, 0xff23d99c, 0xff239c78, 0x271, 0xff211c94), at 0xf
f1b5124
[7] PR_Assert(s = 0x171d8 "PR_SUCCESS == drv", file = 0x16bbc "../../../mozill
a/nsprpub/pr/tests/provider.c", ln = 625), line 516 in "prlog.c"
[8] _MY_Assert(s = 0x171d8 "PR_SUCCESS == drv", file = 0x16bbc "../../../mozil
la/nsprpub/pr/tests/provider.c", ln = 625), line 217 in "provider.c"
=>[9] ProcessRequest(fd = 0x28668, server = 0x2d248), line 625 in "provider.c"
[10] Worker(arg = 0x28e20), line 950 in "provider.c"
[11] pthread_start(arg = 0x293b8), line 656 in "provider.c"
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) print drv
drv = PR_FAILURE
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) print rv
rv = PR_FAILURE
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) print file
file = (nil)
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) print *descriptor
*descriptor = {
size = 918
filename = "CS40a65a562d478-1e1.dat"
}
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) print errno
errno = 0
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) thread t@7
t@7 (l@5) stopped in _lwp_sema_wait at 0xff2198c0
0xff2198c0: _lwp_sema_wait+0x000c: bgeu,a _lwp_sema_wait+0x20
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) where
current thread: t@7
=>[1] _lwp_sema_wait(0x4, 0xff2cfa30, 0x0, 0x0, 0xe, 0xfee0bce0), at 0xff2198c0
[2] _co_timerset(0xff2ced60, 0xff2ce000, 0x0, 0x3, 0xff2ce000, 0x0), at 0xff2a
8a6c
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) thread t@8
dbx: no thread with id 8
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx)
Reporter | ||
Comment 1•21 years ago
|
||
Here are the values of function arguments and local
variables at provider.c:625:
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) down
Current function is ProcessRequest
625 TEST_ASSERT(PR_SUCCESS == drv);
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) print netbytes
netbytes = 201
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) print filebytes
filebytes = 0
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) print descbytes
descbytes = 918
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) print bytes
bytes = 64
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) print drv
drv = PR_FAILURE
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) print rv
rv = PR_FAILURE
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) print buffer
buffer = "127.0.0.1"
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) print file
file = (nil)
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) print me
me = 0x2d530
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) print *me
*me = {
state = 130U
priority = PR_PRIORITY_NORMAL
arg = (nil)
startFunc = (nil)
stack = (nil)
environment = (nil)
dump = (nil)
dumpArg = (nil)
tpdLength = 0
privateData = (nil)
errorCode = -5950
osErrorCode = 2
errorStringLength = 0
errorStringSize = 0
errorString = (nil)
id = 6U
okToDelete = 0
waiting = (nil)
sp = (nil)
next = (nil)
prev = 0x2d308
suspend = 0
interrupt_blocked = 0
syspoll_list = (nil)
syspoll_count = 0
}
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) print *descriptor
*descriptor = {
size = 918
filename = "CS40a65a562d478-1e1.dat"
}
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) print fd
fd = 0x28668
(/tools/ns/workshop-6.2/bin/../WS6U2/bin/sparcv9/dbx) print *server
*server = {
list = {
next = 0x2d248
prev = 0x2d248
}
ml = 0x2d2a8
thread = 0x2d308
stateChange = 0x29c38
port = 13000U
backlog = 5U
listener = 0x285e8
pool = {
exiting = 0x29c60
acceptComplete = 0x29c88
accepting = 0
active = 1U
workers = 1U
}
state = cs_stop
workers = {
minimum = 0
maximum = 0
accepting = 1U
}
started = 1084643829U
stopped = 0
operations = 481U
bytesTransferred = 492264U
}
Updated•18 years ago
|
QA Contact: wtchang → nspr
Updated•2 years ago
|
Severity: normal → S3
Comment 2•2 years ago
|
||
The bug assignee is inactive on Bugzilla, so the assignee is being reset.
Assignee: wtc → nobody
You need to log in
before you can comment on or make changes to this bug.
Description
•