Closed Bug 1187204 Opened 5 years ago Closed 5 years ago

"Assertion failure: false (Should not have an existing pref cache for this address)" - 'dom.audiochannel.mutedByDefault'

Categories

(Core :: Audio/Video, defect, critical)

defect
Not set
critical

Tracking

()

RESOLVED FIXED
mozilla43
Tracking Status
firefox42 --- affected
firefox43 --- fixed

People

(Reporter: jruderman, Assigned: baku)

References

(Blocks 1 open bug)

Details

(Keywords: assertion, testcase)

Attachments

(3 files)

Attached file testcase
1. Disable e10s
2. Load the testcase
3. Quit Firefox

Result:

Attempt to add a bool pref cache for preference 'dom.audiochannel.mutedByDefault' at address '0x107cbad48'was made. However, a pref was already cached at this address.

Assertion failure: false (Should not have an existing pref cache for this address), at modules/libpref/Preferences.cpp:216
Attached file stack
Mine happened in e10s mode, during shutdown:

#0  0x00007f27f3a8f70d in nanosleep () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f27f3a8f5a4 in __sleep (seconds=0) at ../sysdeps/unix/sysv/linux/sleep.c:137
#2  0x00007f27e7670555 in ah_crap_handler(int) (signum=11)
    at /home/morbo/git/gecko-dev/toolkit/xre/nsSigHandlers.cpp:103
#3  0x00007f27e765b744 in nsProfileLock::FatalSignalHandler(int, siginfo_t*, void*) (signo=11, info=0x7ffe5d18d470, context=0x7ffe5d18d340) at /home/morbo/git/gecko-dev/toolkit/profile/nsProfileLock.cpp:195
#4  0x00007f27e7e90084 in AsmJSFaultHandler(int, siginfo_t*, void*) (signum=<optimized out>, info=0x7ffe5d18d470, context=0x7ffe5d18d340) at /home/morbo/git/gecko-dev/js/src/asmjs/AsmJSSignalHandlers.cpp:1135
#5  0x00007f27f47b78d0 in <signal handler called> () at /lib/x86_64-linux-gnu/libpthread.so.0
#6  0x00007f27e4722470 in mozilla::AssertNotAlreadyCached(char const*, char const*, void*) (aPrefType=aPrefType@entry=0x7f27e89a8943 "bool", aPref=aPref@entry=0x7f27e8815e20 "dom.audiochannel.mutedByDefault", aPtr=aPtr@entry=0x7f27eaa813e8 <(anonymous namespace)::sAudioChannelMutedByDefault>)
    at /home/morbo/git/gecko-dev/modules/libpref/Preferences.cpp:216
#7  0x00007f27e472adbc in mozilla::Preferences::AddBoolVarCache(bool*, char const*, bool) (aCache=aCache@entry=0x7f27eaa813e8 <(anonymous namespace)::sAudioChannelMutedByDefault>, aPref=aPref@entry=0x7f27e8815e20 "dom.audiochannel.mutedByDefault", aDefault=aDefault@entry=false) at /home/morbo/git/gecko-dev/modules/libpref/Preferences.cpp:1743
#8  0x00007f27e693abe5 in mozilla::dom::AudioChannelService::AudioChannelService() (this=this@entry=0x7f27b43080e0) at /home/morbo/git/gecko-dev/dom/audiochannel/AudioChannelService.cpp:227
#9  0x00007f27e693c42c in mozilla::dom::AudioChannelService::GetOrCreate() ()
    at /home/morbo/git/gecko-dev/dom/audiochannel/AudioChannelService.cpp:170
#10 0x00007f27e693c5d0 in mozilla::dom::AudioChannelAgent::NotifyStoppedPlaying(unsigned int) (this=0x7f27b4d44f60, aNotifyPlayback=1) at /home/morbo/git/gecko-dev/dom/audiochannel/AudioChannelAgent.cpp:159
#11 0x00007f27e6938781 in mozilla::dom::AudioChannelAgent::Shutdown() (this=this@entry=0x7f27b4d44f60)
    at /home/morbo/git/gecko-dev/dom/audiochannel/AudioChannelAgent.cpp:52
#12 0x00007f27e6939cea in mozilla::dom::AudioChannelAgent::cycleCollection::Unlink(void*) (this=<optimized out>, p=<optimized out>) at /home/morbo/git/gecko-dev/dom/audiochannel/AudioChannelAgent.cpp:18
#13 0x00007f27e466f574 in nsCycleCollector::CollectWhite() (this=this@entry=0x7f27e215e000)
    at /home/morbo/git/gecko-dev/xpcom/base/nsCycleCollector.cpp:3274
#14 0x00007f27e466f9b9 in nsCycleCollector::Collect(ccType, js::SliceBudget&, nsICycleCollectorListener*, bool) (this=this@entry=0x7f27e215e000, aCCType=aCCType@entry=ShutdownCC, aBudget=..., aManualListener=aManualListener@entry=0x0, aPreferShorterSlices=aPreferShorterSlices@entry=false)
    at /home/morbo/git/gecko-dev/xpcom/base/nsCycleCollector.cpp:3630
#15 0x00007f27e466fb0a in nsCycleCollector::ShutdownCollect() (this=this@entry=0x7f27e215e000)
    at /home/morbo/git/gecko-dev/xpcom/base/nsCycleCollector.cpp:3548
#16 0x00007f27e466fb74 in nsCycleCollector::Shutdown() (this=0x7f27e215e000)
    at /home/morbo/git/gecko-dev/xpcom/base/nsCycleCollector.cpp:3840
#17 0x00007f27e466fc55 in nsCycleCollector_shutdown() ()
    at /home/morbo/git/gecko-dev/xpcom/base/nsCycleCollector.cpp:4163
#18 0x00007f27e471251f in mozilla::ShutdownXPCOM(nsIServiceManager*) (aServMgr=<optimized out>)
    at /home/morbo/git/gecko-dev/xpcom/build/XPCOMInit.cpp:950
#19 0x00007f27e4712950 in NS_ShutdownXPCOM(nsIServiceManager*) (aServMgr=<optimized out>)
    at /home/morbo/git/gecko-dev/xpcom/build/XPCOMInit.cpp:797
#20 0x00007f27e766257f in ScopedXPCOMStartup::~ScopedXPCOMStartup() (this=this@entry=0x7f27f3791e38, __in_chrg=<optimized out>) at /home/morbo/git/gecko-dev/toolkit/xre/nsAppRunner.cpp:1498
#21 0x00007f27e766e0c0 in mozilla::UniquePtr<ScopedXPCOMStartup, mozilla::DefaultDelete<ScopedXPCOMStartup> >::reset(ScopedXPCOMStartup*) (aPtr=0x7f27f3791e38, this=<optimized out>) at ../../dist/include/mozilla/UniquePtr.h:490
#22 0x00007f27e766e0c0 in mozilla::UniquePtr<ScopedXPCOMStartup, mozilla::DefaultDelete<ScopedXPCOMStartup> >::reset(ScopedXPCOMStartup*) (this=<optimized out>, aPtr=<optimized out>) at ../../dist/include/mozilla/UniquePtr.h:309
#23 0x00007f27e766d325 in XREMain::XRE_main(int, char**, nsXREAppData const*) (this=0x7ffe5d18ddf0)
    at ../../dist/include/mozilla/UniquePtr.h:279
#24 0x00007f27e766d325 in XREMain::XRE_main(int, char**, nsXREAppData const*) (this=this@entry=0x7ffe5d18ddc0, argc=argc@entry=1, argv=argv@entry=0x7ffe5d18f2a8, aAppData=aAppData@entry=0x7ffe5d18dfd0)
    at /home/morbo/git/gecko-dev/toolkit/xre/nsAppRunner.cpp:4415
#25 0x00007f27e766d65a in XRE_main(int, char**, nsXREAppData const*, uint32_t) (argc=1, argv=0x7ffe5d18f2a8, aAppData=0x7ffe5d18dfd0, aFlags=<optimized out>) at /home/morbo/git/gecko-dev/toolkit/xre/nsAppRunner.cpp:4478
#26 0x0000000000405509 in do_main(int, char**, nsIFile*) (argc=argc@entry=1, argv=argv@entry=0x7ffe5d18f2a8, xreDirectory=0x7f27f3767900) at /home/morbo/git/gecko-dev/browser/app/nsBrowserApp.cpp:212
#27 0x0000000000405607 in main(int, char**) (argc=1, argv=0x7ffe5d18f2a8)
    at /home/morbo/git/gecko-dev/browser/app/nsBrowserApp.cpp:399
Attached patch crash.patchSplinter Review
Attachment #8653634 - Flags: review?(alwu)
Assignee: nobody → amarchesini
Hi, Baku,
Could you tell me more about this patch?
If you do this changing, that means I can remove the modification about this part in bug1192748, right?
Btw, could you help me review bug1192748 again? or I need provide more detailed information?
Thanks :)
Flags: needinfo?(amarchesini)
(In reply to Alastor Wu [:alwu] from comment #4)
> Hi, Baku,
> Could you tell me more about this patch?
> If you do this changing, that means I can remove the modification about this
> part in bug1192748, right?

Yes. Basically before having access to dom.audiochannel.mutedByDefault, the AudioChannelService must be running.
You can remove your changes, and make your patch smaller. Or integrate your patch with this one and land it at the same time.

> Btw, could you help me review bug1192748 again? or I need provide more
> detailed information?

Sure!
Flags: needinfo?(amarchesini)
Comment on attachment 8653634 [details] [diff] [review]
crash.patch

Thank for this patch!
Attachment #8653634 - Flags: review?(alwu) → review+
https://hg.mozilla.org/integration/mozilla-inbound/rev/6010b4d8d5e01425cedccfdcb832792f5e127324
Bug 1187204 - AudioChannelService must exist before calling IsAudioChannelMutedByDefault(), r=alwu
https://hg.mozilla.org/mozilla-central/rev/6010b4d8d5e0
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla43
Duplicate of this bug: 1202567
Duplicate of this bug: 1196084
Duplicate of this bug: 1202565
Duplicate of this bug: 1202564
You need to log in before you can comment on or make changes to this bug.