Assertion failure: false (Remote blob didn't return a remote stream!), at /home/mikeh/dev/mozilla/m-c/inbound-src/dom/ipc/Blob.cpp:1307

RESOLVED FIXED in Firefox 21

Status

()

defect
RESOLVED FIXED
6 years ago
6 years ago

People

(Reporter: mikeh, Assigned: bent.mozilla)

Tracking

({crash})

Trunk
mozilla21
ARM
Gonk (Firefox OS)
Points:
---

Firefox Tracking Flags

(blocking-b2g:tef+, firefox19 wontfix, firefox20 wontfix, firefox21 fixed, b2g18 fixed, b2g18-v1.0.0 wontfix, b2g18-v1.0.1 fixed)

Details

Attachments

(4 attachments)

STR:
0. B2G_DEBUG=1 ./build.sh && ./flash.sh
1. unlock lockscreen
2. tap on Settings icon
3. select Display
4. tap to change wallpaper
5. select Wallpaper
6. select a new wallpaper (e.g. the bluish mountainscape in the top-left)

Expected results:
Selected wallpaper should become the new wallpaper.

Observed:
Phone crashes with:

F(  109:0x6d) Assertion failure: false (Remote blob didn't return a remote stream!), at /home/mikeh/dev/mozilla/m-c/inbound-src/dom/ipc/Blob.cpp:1307
F(  109:0x6d) Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)
The crash above is observed with inbound-src:7dece0c29d00

Crash does not occur on the b2g18 branch with 54ae714b53d8
Still happens with inbound-src:08baa859a8d4

logcat output:
I( 1386:0x56a) [Parent 1386] WARNING: No docshells for remote frames!: file /home/mikeh/dev/mozilla/m-c/inbound-src/content/base/src/nsFrameLoader.cpp, line 563
I( 1549:0x60d) [Child 1549] WARNING: Don't know if this stream is seekable yet!: file /home/mikeh/dev/mozilla/m-c/inbound-src/dom/ipc/Blob.cpp, line 304
F( 1386:0x56a) Assertion failure: false (Remote blob didn't return a remote stream!), at /home/mikeh/dev/mozilla/m-c/inbound-src/dom/ipc/Blob.cpp:1307
F( 1386:0x56a) Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)
djf, could this be related to your Oct 29 change to apps/settings/js/wallpaper.js to use blobs?
Flags: needinfo?(dflanagan)
Mike,

We used to have problems with the use of in-memory blobs in activities, which is what we're doing here (see apps/wallpaper/js/pick.js). Maybe bug 806503 is back somehow?
Flags: needinfo?(dflanagan)
It sounds like--at least when it comes to the wallpaper picker.  I'll see if I can reproduce with the contact list and camera.
Hmm, I can't seem to select either Gallery or Camera in the new-contact photo picker.  The behaviour looks similar to what I was seeing in bug 840145, where the activity picker just looks broken.
I wonder if this could be related to bug 840698.
I(  574:0x23e) [Child 574] WARNING: Don't know if this stream is seekable yet!: file /home/mikeh/dev/mozilla/m-c/inbound-src/dom/ipc/Blob.cpp, line 304
I(  459:0x1cb) [Parent 459] WARNING: No docshells for remote frames!: file /home/mikeh/dev/mozilla/m-c/inbound-src/content/base/src/nsFrameLoader.cpp, line 563
F(  459:0x1cb) Assertion failure: false (Remote blob didn't return a remote stream!), at /home/mikeh/dev/mozilla/m-c/inbound-src/dom/ipc/Blob.cpp:1307
F(  459:0x1cb) Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)
(In reply to Mike Habicher [:mikeh] from comment #7)
> I wonder if this could be related to bug 840698.

Not related.  My latest build included the bug 840698 patch, and this crash is still happening.
This sounds bad...
blocking-b2g: --- → tef?
STR:
Select picture in Wallpaper:

Program received signal SIGSEGV, Segmentation fault.
0x41f8a2bc in mozilla::dom::ipc::Blob<(mozilla::dom::ipc::ActorFlavorEnum)0>::RecvPBlobStreamConstructor (this=0x47348340, aActor=0x465f0de0) at /Volumes/2mac/gaia/3src/dom/ipc/Blob.cpp:1307
1307	      MOZ_ASSERT(false, "Remote blob didn't return a remote stream!");
(gdb) --DOCSHELL 0x45f80800 == 0 [id = 1]
[Child 1149] WARNING: NS_ENSURE_TRUE(IsChromeProcess()) failed: file /Volumes/2mac/gaia/3src/content/base/src/nsFrameMessageManager.cpp, line 841
--DOMWINDOW == 1 (0x452235dc) [serial = 1] [outer = 0x0] [url = app://wallpaper.gaiamobile.org/pick.html]
--DOMWINDOW == 0 (0x4522417c) [serial = 3] [outer = 0x0] [url = app://wallpaper.gaiamobile.org/pick.html]
[Child 1149] WARNING: NS_ENSURE_TRUE(IsChromeProcess()) failed: file /Volumes/2mac/gaia/3src/content/base/src/nsFrameMessageManager.cpp, line 841
[Child 1149] WARNING: NS_ENSURE_TRUE(IsChromeProcess()) failed: file /Volumes/2mac/gaia/3src/content/base/src/nsFrameMessageManager.cpp, line 841
bt
#0  0x41f8a2bc in mozilla::dom::ipc::Blob<(mozilla::dom::ipc::ActorFlavorEnum)0>::RecvPBlobStreamConstructor (this=0x47348340, aActor=0x465f0de0) at /Volumes/2mac/gaia/3src/dom/ipc/Blob.cpp:1307
#1  0x420300ec in mozilla::dom::PBlobParent::OnMessageReceived (this=0x47348340, __msg=...) at /Volumes/2mac/gaia/3src/debotorobuild/ipc/ipdl/PBlobParent.cpp:352
#2  0x4204bbc2 in mozilla::dom::PContentParent::OnMessageReceived (this=0x47332c00, __msg=...) at /Volumes/2mac/gaia/3src/debotorobuild/ipc/ipdl/PContentParent.cpp:1368
#3  0x41fd0a82 in mozilla::ipc::AsyncChannel::OnDispatchMessage (this=0x47332c08, msg=...) at /Volumes/2mac/gaia/3src/ipc/glue/AsyncChannel.cpp:473
#4  0x41fdbdd2 in mozilla::ipc::RPCChannel::OnMaybeDequeueOne (this=0x47332c08) at /Volumes/2mac/gaia/3src/ipc/glue/RPCChannel.cpp:402
#5  0x41f9ab2e in DispatchToMethod<mozilla::dom::ContentParent, void (mozilla::dom::ContentParent::*)()> (obj=0x47332c08, method=0x41fdbc19 <mozilla::ipc::RPCChannel::OnMaybeDequeueOne()>, 
    arg=...) at /Volumes/2mac/gaia/3src/ipc/chromium/src/base/tuple.h:383
#6  0x41f9a908 in RunnableMethod<mozilla::dom::ContentParent, void (mozilla::dom::ContentParent::*)(), Tuple0>::Run (this=0x4733dc20) at /Volumes/2mac/gaia/3src/ipc/chromium/src/base/task.h:307
#7  0x41fda8dc in mozilla::ipc::RPCChannel::RefCountedTask::Run (this=0x46c79188) at ../../dist/include/mozilla/ipc/RPCChannel.h:425
#8  0x41fda9c0 in mozilla::ipc::RPCChannel::DequeueTask::Run (this=0x490877c0) at ../../dist/include/mozilla/ipc/RPCChannel.h:448
#9  0x42682968 in MessageLoop::RunTask (this=0x4042b0c0, task=0x490877c0) at /Volumes/2mac/gaia/3src/ipc/chromium/src/base/message_loop.cc:333
#10 0x426829c4 in MessageLoop::DeferOrRunPendingTask (this=0x4042b0c0, pending_task=...) at /Volumes/2mac/gaia/3src/ipc/chromium/src/base/message_loop.cc:341
#11 0x42682d2e in MessageLoop::DoWork (this=0x4042b0c0) at /Volumes/2mac/gaia/3src/ipc/chromium/src/base/message_loop.cc:441
#12 0x41fd91a0 in mozilla::ipc::DoWorkRunnable::Run (this=0x40401be0) at /Volumes/2mac/gaia/3src/ipc/glue/MessagePump.cpp:42
#13 0x42627c38 in nsThread::ProcessNextEvent (this=0x40404390, mayWait=false, result=0xbed2f707) at /Volumes/2mac/gaia/3src/xpcom/threads/nsThread.cpp:627
#14 0x425c44da in NS_ProcessNextEvent_P (thread=0x40404390, mayWait=false) at /Volumes/2mac/gaia/3src/debotorobuild/xpcom/build/nsThreadUtils.cpp:238
#15 0x41fd93be in mozilla::ipc::MessagePump::Run (this=0x40402430, aDelegate=0x4042b0c0) at /Volumes/2mac/gaia/3src/ipc/glue/MessagePump.cpp:82
#16 0x42682524 in MessageLoop::RunInternal (this=0x4042b0c0) at /Volumes/2mac/gaia/3src/ipc/chromium/src/base/message_loop.cc:215
#17 0x426824be in MessageLoop::RunHandler (this=0x4042b0c0) at /Volumes/2mac/gaia/3src/ipc/chromium/src/base/message_loop.cc:208
#18 0x42682466 in MessageLoop::Run (this=0x4042b0c0) at /Volumes/2mac/gaia/3src/ipc/chromium/src/base/message_loop.cc:182
#19 0x41e79cba in nsBaseAppShell::Run (this=0x45625700) at /Volumes/2mac/gaia/3src/widget/xpwidgets/nsBaseAppShell.cpp:163
#20 0x41ca3230 in nsAppStartup::Run (this=0x456273a0) at /Volumes/2mac/gaia/3src/toolkit/components/startup/nsAppStartup.cpp:288
#21 0x40b3fd80 in XREMain::XRE_mainRun (this=0xbed2f990) at /Volumes/2mac/gaia/3src/toolkit/xre/nsAppRunner.cpp:3871
#22 0x40b3ffb2 in XREMain::XRE_main (this=0xbed2f990, argc=1, argv=0xbed31ba4, aAppData=0x3a7f4) at /Volumes/2mac/gaia/3src/toolkit/xre/nsAppRunner.cpp:3938
#23 0x40b4015e in XRE_main (argc=1, argv=0xbed31ba4, aAppData=0x3a7f4, aFlags=0) at /Volumes/2mac/gaia/3src/toolkit/xre/nsAppRunner.cpp:4141
#24 0x00009e70 in do_main (argc=1, argv=0xbed31ba4) at /Volumes/2mac/gaia/3src/b2g/app/nsBrowserApp.cpp:164
#25 0x0000a124 in main (argc=1, argv=0xbed31ba4) at /Volumes/2mac/gaia/3src/b2g/app/nsBrowserApp.cpp:249
(gdb) p stream.get()
$1 = (nsIInputStream *) 0x457c8610
blocking-b2g: tef? → tef+
Assignee: nobody → bent.mozilla
Posted patch Patch, v1Splinter Review
This should fix it (at least, it fixes picking wallpaper). Mike, can you apply and test?
Attachment #714527 - Flags: review?(jonas)
Flags: needinfo?(mhabicher)
(In reply to ben turner [:bent] from comment #13)
> 
> This should fix it (at least, it fixes picking wallpaper). Mike, can you
> apply and test?

Testing it now; looks like I need a clobber, stand by.
Flags: needinfo?(mhabicher)
Comment on attachment 714527 [details] [diff] [review]
Patch, v1

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

Also, file a followup on simplifying the parent setup here since we should be able to rely on the parent always having a stream available.

::: dom/ipc/Blob.cpp
@@ +1308,5 @@
> +  //
> +  //   1. The blob is not a remote blob.
> +  //   2. The blob is a remote blob that represents this actor.
> +  //   3. The blob is a remote blob representing a different actor but we
> +  //      already have its serialized stream.

change this to say "already have a non-remote stream" or "already have a non-remote, i.e. serialized, stream".
Attachment #714527 - Flags: review?(jonas) → review+
(In reply to ben turner [:bent] from comment #13)
> 
> This should fix it (at least, it fixes picking wallpaper). Mike, can you
> apply and test?

Confirmed.  I can now select wallpaper!  \o/
(In reply to Jonas Sicking (:sicking) from comment #15)
> Also, file a followup on simplifying the parent setup here

Bug 841924.
https://hg.mozilla.org/mozilla-central/rev/4d6beb1fff45
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla21
You need to log in before you can comment on or make changes to this bug.