application crashed [@ mozilla::layers::BasicTiledLayerTile::OpenDescriptor(mozilla::layers::ISurfaceAllocator*, mozilla::layers::TileDescriptor const&)]

NEW
Unassigned

Status

()

5 years ago
5 years ago

People

(Reporter: schien, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

This crash happens when I running the new ipc mochitest case added in bug 869869. See try server result in https://tbpl.mozilla.org/?tree=Try&rev=621ad1b3108e.
@BenWa, have any insight on this crash?
Flags: needinfo?(bgirard)
Shih-Chiang, do you have a stack?
Yes, Cwiiis changed this code recently so perhaps we can offer some assistance.
Flags: needinfo?(bgirard) → needinfo?(chrislord.net)

Comment 4

5 years ago
What does this test-case do? It's worth noting that the Android tiles backend is designed to work with threads and not processes, in case this is changing that?

Also worth noting that I'm off for 2 months after tomorrow, but I'll try to help when I have time.
Flags: needinfo?(chrislord.net) → needinfo?(schien)
@Cwiiis, this test case is trying to run all the PeerConnection mochitest in a remote iframe, i.e. in content process. Does it means I should skip this IPC test case on Android platform? but we already have DeviceStorage/IndexDB IPC test running on Android platform.

@Milan, try server won't let me run testcase on debug build. I'll try buliding up a fennec environment and get the stack.
Flags: needinfo?(chrislord.net)
Flags: needinfo?(schien)

Comment 6

5 years ago
Is there something causing the iframe to draw in this case where it doesn't in others, perhaps? We should probably have a more robust test for whether non-shm can be used for tiles, currently it's just a define: https://mxr.mozilla.org/mozilla-central/source/gfx/layers/client/TextureClient.cpp#498

An easy way to test if that's the problem is to just change the MOZ_ANDROID_OMTC #ifdef's into #if 0's - that will stop it from taking the non-shm shortcut (note, we need this shortcut for performance reasons atm).
Flags: needinfo?(chrislord.net)
Here is the back trace. SIGSEGV happened while doing |surface->ReadUnlock();|

 0  libxul.so!mozilla::layers::BasicTiledLayerTile::OpenDescriptor(mozilla::layers::ISurfaceAllocator*, mozilla::layers::TileDescriptor const&) [TiledContentClient.cpp:f267fde8a658 : 162 + 0x0]
     r4 = 0x4b3a8b90    r5 = 0x00000001    r6 = 0x609ff8fc    r7 = 0x00000000
     r8 = 0x5eaddb28    r9 = 0x00000000   r10 = 0x00000002    fp = 0x3f800000
     sp = 0x609ff8c8    lr = 0x533b12bd    pc = 0x5843da96
    Found by: given as instruction pointer in context
 1  libxul.so!mozilla::layers::BasicTiledLayerBuffer::OpenDescriptor(mozilla::layers::ISurfaceAllocator*, mozilla::layers::SurfaceDescriptorTiles const&) [TiledContentClient.h:f267fde8a658 : 158 + 0x5]
     r4 = 0x609ff928    r5 = 0x00000000    r6 = 0x609ff988    r7 = 0x5c0cf514
     r8 = 0x5eaddb28    r9 = 0x00000000   r10 = 0x00000002    fp = 0x3f800000
     sp = 0x609ff8f8    pc = 0x5843e20f
    Found by: call frame info
 2  libxul.so!mozilla::layers::TiledContentHost::PaintedTiledLayerBuffer(mozilla::layers::ISurfaceAllocator*, mozilla::layers::SurfaceDescriptorTiles const&) [TiledContentHost.cpp:f267fde8a658 : 89 + 0x3]
     r4 = 0x61c8f000    r5 = 0x5eaddb28    r6 = 0x5c0cf4ac    r7 = 0x609ffb0c
     r8 = 0x00000003    r9 = 0x5eaddb00   r10 = 0x594eff40    fp = 0x5c0cf4ac
     sp = 0x609ff928    pc = 0x5843f8fb
    Found by: call frame info
 3  libxul.so!mozilla::layers::CompositableParentManager::ReceiveCompositableUpdate(mozilla::layers::CompositableOperation const&, std::vector<mozilla::layers::EditReply, std::allocator<mozilla::layers::EditReply> >&) [CompositableTransactionParent.cpp:f267fde8a658 : 209 + 0xd]
     r4 = 0x61c8f028    r5 = 0x5eaddb28    r6 = 0x5c0cf4ac    r7 = 0x609ffb0c
     r8 = 0x00000003    r9 = 0x5eaddb00   r10 = 0x594eff40    fp = 0x5c0cf4ac
     sp = 0x609ff9d8    pc = 0x5840ee85
    Found by: call frame info
 4  libxul.so!mozilla::layers::LayerTransactionParent::RecvUpdate(nsTArray<mozilla::layers::Edit> const&, mozilla::layers::TargetConfig const&, bool const&, nsTArray<mozilla::layers::EditReply>*) [LayerTransactionParent.cpp:f267fde8a658 : 410 + 0xb]
     r4 = 0x000004a4    r5 = 0x5c0cf008    r6 = 0x595847c0    r7 = 0x64eac000
     r8 = 0x00000003    r9 = 0x5eaddb00   r10 = 0x594eff40    fp = 0x5c0cf4ac
     sp = 0x609ffad0    pc = 0x5842b977
    Found by: call frame info
 5  libxul.so!mozilla::layers::LayerTransactionParent::RecvUpdateNoSwap(nsTArray<mozilla::layers::Edit> const&, mozilla::layers::TargetConfig const&, bool const&) [LayerTransactionParent.cpp:f267fde8a658 : 181 + 0x9]
     r4 = 0x5842afe9    r5 = 0x00000000    r6 = 0x5eaddb00    r7 = 0x594eff40
     r8 = 0x609ffc78    r9 = 0x609ffe78   r10 = 0x594eff40    fp = 0x601f9520
     sp = 0x609ffb58    pc = 0x5842aafd
Turning off MOZ_ANDROID_OMTC will crash before executing mochitest, therefore, I cannot tell if comment 6 is the correct direction of analyzing this issue.

https://tbpl.mozilla.org/?tree=Try&rev=060d2e884b3d
@cwiiis, Fennec will crash after turning off MOZ_ANDROID_OMTC from mobile/android/confvars.sh. The crash stack is provided in comment 7. Does it give you more clue on this issue?
Flags: needinfo?(chrislord.net)
SChien you won't get a response from Chris for months. He out of the office through the new year. I suggest asking someone else.
@BenWa, can you help check the crash stack in comment 7 since @Cwiiis is on PTO?
Flags: needinfo?(bgirard)
(In reply to Shih-Chiang Chien [:schien] from comment #9)
> @cwiiis, Fennec will crash after turning off MOZ_ANDROID_OMTC from
> mobile/android/confvars.sh. The crash stack is provided in comment 7. Does
> it give you more clue on this issue?

This isn't supported.

You will get a crash if you're sharing the buffer out of process.

(In reply to Shih-Chiang Chien [:schien] from comment #11)
> @BenWa, can you help check the crash stack in comment 7 since @Cwiiis is on
> PTO?

My plate is full. I can't work on this without neglecting something else.
Flags: needinfo?(chrislord.net)
Flags: needinfo?(bgirard)
@milan, can you help me find someone to take a look at it? I'll disable this test case on Android for now and re-enable it after this bug is resolved.
Flags: needinfo?(milan)
Will look for somebody, thanks for taking care of the test case in the meantime.
Flags: needinfo?(milan)
You need to log in before you can comment on or make changes to this bug.