Closed Bug 691108 Opened 13 years ago Closed 12 years ago

Intermittent netwerk/test/unit/test_bug650955.js | test failed (with xpcshell return code: 1), see following log: after "###!!! ASSERTION: record not found: 'Not Reached'"

Categories

(Core :: Networking, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla14

People

(Reporter: philor, Assigned: michal)

References

Details

(Keywords: assertion, intermittent-failure)

Attachments

(1 file)

+++ This bug was initially created as a clone of Bug #685804 +++

I sort of expected to see that I'd previously misstarred this as bug 685804, but apparently not.

https://tbpl.mozilla.org/php/getParsedLog.php?id=6637138&tree=Fx-Team
Rev3 MacOSX Leopard 10.5.8 fx-team debug test xpcshell on 2011-10-01 02:54:25 PDT for push ce689bad5e34

TEST-UNEXPECTED-FAIL | /Users/cltbld/talos-slave/test/build/xpcshell/tests/netwerk/test/unit/test_bug650955.js | test failed (with xpcshell return code: 1), see following log:
>>>>>>>
...
TEST-PASS | /Users/cltbld/talos-slave/test/build/xpcshell/tests/netwerk/test/unit/head_channels.js | [null : 144] 13 == 13

TEST-INFO | (xpcshell/head.js) | test 2 pending
###!!! ASSERTION: record not found: 'Not Reached', file /builds/slave/fx-team-osx-dbg/build/netwerk/cache/nsDiskCacheMap.cpp, line 458
catch_exception_raise+0x000DA66B [/Users/cltbld/talos-slave/test/build/NightlyDebug.app/Contents/MacOS/XUL +0x0010F1EF]
catch_exception_raise+0x000DB0E5 [/Users/cltbld/talos-slave/test/build/NightlyDebug.app/Contents/MacOS/XUL +0x0010FC69]
catch_exception_raise+0x000C6F2E [/Users/cltbld/talos-slave/test/build/NightlyDebug.app/Contents/MacOS/XUL +0x000FBAB2]
catch_exception_raise+0x000C792A [/Users/cltbld/talos-slave/test/build/NightlyDebug.app/Contents/MacOS/XUL +0x000FC4AE]
XRE_AddStaticComponent+0x0000A54E [/Users/cltbld/talos-slave/test/build/NightlyDebug.app/Contents/MacOS/XUL +0x017B35AE]
mozilla::layers::FrameMetrics::operator==(mozilla::layers::FrameMetrics const&) const+0x0001841F [/Users/cltbld/talos-slave/test/build/NightlyDebug.app/Contents/MacOS/XUL +0x01740A4F]
XRE_AddStaticComponent+0x0000B121 [/Users/cltbld/talos-slave/test/build/NightlyDebug.app/Contents/MacOS/XUL +0x017B4181]
PR_Select+0x00000450 [/Users/cltbld/talos-slave/test/build/NightlyDebug.app/Contents/MacOS/libnspr4.dylib +0x00029C01]
_pthread_start+0x00000141 [/usr/lib/libSystem.B.dylib +0x00032155]
thread_start+0x00000022 [/usr/lib/libSystem.B.dylib +0x00032012]
###!!! ASSERTION: record not found: 'Not Reached', file /builds/slave/fx-team-osx-dbg/build/netwerk/cache/nsDiskCacheMap.cpp, line 458
<<<<<<<
PROCESS-CRASH | /Users/cltbld/talos-slave/test/build/xpcshell/tests/netwerk/test/unit/test_bug650955.js | application crashed (minidump found)


And the bit of stack before the assertion-kill:

4  XUL!nsDiskCacheMap::UpdateRecord [nsDiskCacheMap.cpp:ce689bad5e34 : 458 + 0x31]
    eip = 0x02bb01ef   esp = 0xb040ec80   ebp = 0xb040ecd8   ebx = 0x02bb0007
    esi = 0x000000fe   edi = 0x00000000
    Found by: call frame info
 5  XUL!nsDiskCacheMap::WriteDiskCacheEntry [nsDiskCacheMap.cpp:ce689bad5e34 : 862 + 0x14]
    eip = 0x02bb0c69   esp = 0xb040ece0   ebp = 0xb040ed78   ebx = 0x02bb09b2
    esi = 0x000000fe   edi = 0x00000000
    Found by: call frame info
 6  XUL!nsDiskCacheDevice::DeactivateEntry_Private [nsDiskCacheDevice.cpp:ce689bad5e34 : 596 + 0x14]
    eip = 0x02b9cab2   esp = 0xb040ed80   ebp = 0xb040edb8   ebx = 0x02b9d44b
    esi = 0x00000000   edi = 0x00000000
    Found by: call frame info
 7  XUL!nsDiskCacheDeviceDeactivateEntryEvent::Run [nsDiskCacheDevice.cpp:ce689bad5e34 : 108 + 0x21]
    eip = 0x02b9d4ae   esp = 0xb040edc0   ebp = 0xb040ede8   ebx = 0x02b9d44b
    esi = 0x00000000   edi = 0x00000000
    Found by: call frame info
 8  XUL!nsThread::ProcessNextEvent [nsThread.cpp:ce689bad5e34 : 631 + 0x18]
    eip = 0x042545ae   esp = 0xb040edf0   ebp = 0xb040ee98   ebx = 0x04254204
    esi = 0x00000000   edi = 0x00000000
    Found by: call frame info
 9  XUL!NS_ProcessNextEvent_P [nsThreadUtils.cpp:ce689bad5e34 : 245 + 0x20]
    eip = 0x041e1a4f   esp = 0xb040eea0   ebp = 0xb040eee8   ebx = 0x041e19d2
This looks bad...
Assignee: nobody → michal.novotny
Attached patch fixSplinter Review
In nsDiskCacheDevice::ClearDiskCache() we check if we have any active entry bound to the disk cache. If not, it is safe to remove the whole cache and create a new one. The problem is that nsDiskCacheDevice::Shutdown_Private() calls nsCacheService::SyncWithCacheIOThread() which releases the cache lock and all pending events on the cache IO thread are processed so some new entry can be bound to the device.
Attachment #612393 - Flags: review?(jduell.mcbugs)
Comment on attachment 612393 [details] [diff] [review]
fix

Review of attachment 612393 [details] [diff] [review]:
-----------------------------------------------------------------

Seems ok.  I was going to suggest that we set the bool *collision argument to 'false' before the early abort, but we don't know what to set it to (at some level the API for nsDiskCacheDevice::FindEntry seems a little wrong, as we really have four conditions: key found, not found + no collision, not found + collision, or--the new one--function failed, so no entry and we don't know about collision).   But I see the caller is setting the arg to 'false' before calling the function anyway, so it's ok for now at least.
Attachment #612393 - Flags: review?(jduell.mcbugs) → review+
https://hg.mozilla.org/mozilla-central/rev/fba161c486a0
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla14
Whiteboard: [orange]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: