Closed Bug 1757470 Opened 3 years ago Closed 3 years ago

After RDD restart due to decoder crash audio playback is broken

Categories

(Core :: Audio/Video: Playback, defect, P2)

defect

Tracking

()

RESOLVED DUPLICATE of bug 1761217
Tracking Status
firefox-esr91 --- unaffected
firefox97 --- affected
firefox98 --- affected
firefox99 --- affected

People

(Reporter: stransky, Unassigned)

References

(Blocks 1 open bug)

Details

If we restart RDD due to decoder crash audio playback is broken.

RemoteDecoderChild::Decode() fails to allocate shm memory as mLinkStatus of IProtocol is mozilla::ipc::LinkStatus::Inactive.

bt:

#0 mozilla::ipc::IProtocol::CanSend() const (this=0x7f542ec93200) at /raid/src/objdir/dist/include/mozilla/ipc/ProtocolUtils.h:227
#1 0x00007f5444a136b1 in mozilla::ipc::IProtocol::AllocUnsafeShmem(unsigned long, mozilla::ipc::SharedMemory::SharedMemoryType, mozilla::ipc::Shmem*)
(this=0x7f542ec93200, aSize=3, aType=mozilla::ipc::SharedMemory::TYPE_BASIC, aOutMem=0x7f5429a11bc0) at /raid/src/ipc/glue/ProtocolUtils.cpp:416
#2 0x00007f5447ee7623 in mozilla::ShmemPool::AllocateShmem<mozilla::RemoteDecoderChild>(mozilla::RemoteDecoderChild*, unsigned long, mozilla::ShmemBuffer&, mozilla::ShmemPool::AllocationPolicy) (this=0x7f542ec93240, aInstance=0x7f542ec93200, aSize=3, aRes=..., aPolicy=mozilla::ShmemPool::AllocationPolicy::Unsafe) at /raid/src/objdir/dist/include/mozilla/ShmemPool.h:168
#3 0x00007f5447ee72fc in mozilla::ShmemPool::Get<mozilla::RemoteDecoderChild>(mozilla::RemoteDecoderChild*, unsigned long, mozilla::ShmemPool::AllocationPolicy)
(this=0x7f542ec93240, aInstance=0x7f542ec93200, aSize=3, aPolicy=mozilla::ShmemPool::AllocationPolicy::Unsafe) at /raid/src/objdir/dist/include/mozilla/ShmemPool.h:120
#4 0x00007f5447ee6f18 in mozilla::ShmemRecycleAllocator<mozilla::RemoteDecoderChild>::AllocateBuffer(unsigned long, mozilla::ShmemPool::AllocationPolicy)
(this=0x7f542ec93238, aSize=3, aPolicy=mozilla::ShmemPool::AllocationPolicy::Unsafe) at /raid/src/objdir/dist/include/mozilla/ShmemRecycleAllocator.h:21
#5 0x00007f5447ee6e95 in mozilla::RemoteDecoderChild::Decode(nsTArray<RefPtr<mozilla::MediaRawData> > const&)::$_9::operator()(unsigned long) const (this=0x7f542fefb670, aSize=3)
at /raid/src/dom/media/ipc/RemoteDecoderChild.cpp:132
#6 0x00007f5447ee6cd5 in std::_Function_handler<mozilla::ShmemBuffer (unsigned long), mozilla::RemoteDecoderChild::Decode(nsTArray<RefPtr<mozilla::MediaRawData> > const&)::$_9>::_M_invoke(std::_Any_data const&, unsigned long&&) (__functor=..., __args=@0x7f542fefb1d0: 3)
at /home/komat/.mozbuild/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/std_function.h:301
#7 0x00007f5447f0c288 in std::function<mozilla::ShmemBuffer (unsigned long)>::operator()(unsigned long) const (this=0x7f542fefb670, __args=3)
at /home/komat/.mozbuild/sysroot-x86_64-linux-gnu/usr/lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/std_function.h:706
#8 0x00007f5447f0c17a in mozilla::RemoteArrayOfByteBuffer::AllocateShmem(unsigned long, std::function<mozilla::ShmemBuffer (unsigned long)>&) (this=0x7f542fefb4c0, aSize=3, aAllocator=...)
at /raid/src/dom/media/ipc/RemoteMediaData.cpp:18
#9 0x00007f5447f0dbb7 in mozilla::RemoteArrayOfByteBuffer::RemoteArrayOfByteBuffer<unsigned char>(nsTArray<mozilla::AlignedBuffer<unsigned char, 32> > const&, std::function<mozilla::ShmemBuffer (unsigned long)>&) (this=0x7f542fefb4c0, aArray=const nsTArray<mozilla::AlignedBuffer<unsigned char, 32> > & = {...}, aAllocator=...) at /raid/src/dom/media/ipc/RemoteMediaData.h:126
#10 0x00007f5447f0d5c8 in mozilla::ArrayOfRemoteMediaRawData::Fill(nsTArray<RefPtr<mozilla::MediaRawData> > const&, std::function<mozilla::ShmemBuffer (unsigned long)>&&)
(this=0x7f542b5f7820, aData=const nsTArray<RefPtr<mozilla::MediaRawData> > & = {...}, aAllocator=...) at /raid/src/dom/media/ipc/RemoteMediaData.cpp:155
#11 0x00007f5447ee1d11 in mozilla::RemoteDecoderChild::Decode(nsTArray<RefPtr<mozilla::MediaRawData> > const&)
(this=0x7f542ec93200, aSamples=const nsTArray<RefPtr<mozilla::MediaRawData> > & = {...}) at /raid/src/dom/media/ipc/RemoteDecoderChild.cpp:122
#12 0x00007f5447f19958 in mozilla::RemoteMediaDataDecoder::Decode(mozilla::MediaRawData*)::$_5::operator()() const (this=0x7f542b57ec00)
at /raid/src/dom/media/ipc/RemoteMediaDataDecoder.cpp:66

Severity: -- → S2
Priority: -- → P2
Regressed by: 1670817

Set release status flags based on info from the regressing bug 1670817

This is not a regression from Bug 1670817 - I can reproduce it with release too.

Should bug 1670817 be marked as see also or similar, rather than a regressing bug?

I was wrong - Bug 1670817 is not related to this one.

No longer regressed by: 1670817
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.