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)

4.4.1
Sun
Solaris
defect

Tracking

(Not tracked)

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)
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 }
QA Contact: wtchang → nspr
Severity: normal → S3

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.