Closed Bug 1530322 Opened 9 months ago Closed 9 months ago

Crash in [@ vcruntime140.dll | mozilla::AudioData::MoveableData]

Categories

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

Unspecified
Windows 10
defect

Tracking

()

RESOLVED FIXED
mozilla67
Tracking Status
firefox-esr60 --- unaffected
firefox65 --- unaffected
firefox66 --- unaffected
firefox67 + fixed

People

(Reporter: calixte, Assigned: jya)

References

(Depends on 1 open bug, Blocks 1 open bug)

Details

(Keywords: crash, regression)

Crash Data

Attachments

(4 files)

This bug is for crash report bp-f3f7bb10-034a-4f66-b9f4-d42800190225.

Top 10 frames of crashing thread:

0 vcruntime140.dll vcruntime140.dll@0xc517 
1 xul.dll mozilla::AudioData::MoveableData dom/media/MediaData.cpp:154
2 xul.dll void mozilla::AudioSink::NotifyAudioNeeded dom/media/mediasink/AudioSink.cpp:419
3 xul.dll nsresult mozilla::AudioSink::Init dom/media/mediasink/AudioSink.cpp:84
4 xul.dll mozilla::AudioSinkWrapper::Start dom/media/mediasink/AudioSinkWrapper.cpp:170
5 xul.dll nsresult mozilla::VideoSink::Start dom/media/mediasink/VideoSink.cpp:190
6 xul.dll nsresult mozilla::MediaDecoderStateMachine::StartMediaSink dom/media/MediaDecoderStateMachine.cpp:3204
7 xul.dll void mozilla::MediaDecoderStateMachine::MaybeStartPlayback dom/media/MediaDecoderStateMachine.cpp:2851
8 xul.dll void mozilla::MediaDecoderStateMachine::DecodingState::Step dom/media/MediaDecoderStateMachine.cpp:2337
9 xul.dll nsresult mozilla::detail::RunnableMethodImpl< xpcom/threads/nsThreadUtils.h:1171

There is 1 crash in nightly 67 with buildid 20190225014816. In analyzing the backtrace, the regression may have been introduced by patch [1] to fix bug 1524890.

[1] https://hg.mozilla.org/mozilla-central/rev?node=08fd6ddd88e4

Flags: needinfo?(jyavenard)

The assertions were unneeded as the test above covered the case.

Depends on D21171

Depends on D21172

Flags: needinfo?(jyavenard)
Keywords: leave-open
Pushed by jyavenard@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/68fd0947b767
P1. Make Interval assertion diagnostic_assert. r!gerald r=gerald
https://hg.mozilla.org/integration/autoland/rev/d5159dfc6d86
P2. Remove redundant code, and simplify. r!gerald r=gerald
https://hg.mozilla.org/integration/autoland/rev/65870fec6eea
P3. Add diagnostics. r=gerald
Attachment #9046608 - Attachment description: Bug 1530322 - P3. Add diagnostics. r?gerald → Bug 1530322 - P3. Add temporary diagnostics. r?gerald

Interesting compilation error which has nothing to do with the code.
We replaced:
MOZ_ASSERT(aStart <= aEnd), with MOZ_DIAGNOSTIC_ASSERT(aStart <= aEnd)

However, above we had: mStart(std::forward<StartArg>(aStart)) so if aStart was a rvalue it could have been moved giving an undefined behaviour. Thanks to :gerald for spotting it.

Interestingly, it make gcc go cookoo.

Flags: needinfo?(jyavenard)
Pushed by jyavenard@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/3f3ba8c155c6
P1. Make Interval assertion diagnostic_assert. r!gerald r=gerald
https://hg.mozilla.org/integration/autoland/rev/8ba89b2f60ff
P2. Remove redundant code, and simplify. r!gerald r=gerald
https://hg.mozilla.org/integration/autoland/rev/a5516893759b
P3. Add temporary diagnostics. r=gerald
Assignee: nobody → jyavenard
See Also: → 1530278
Rank: 11
Priority: -- → P1
Priority: P1 → P2
Pushed by jyavenard@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/e715e094485f
Abort trim if an overflow occurred during earlier time calculation. r=padenot
Depends on: 1530918

Adding the AudioData::SetTrimWindow signature, hoping to find the root cause of all those crashes with today's build

Crash Signature: [@ vcruntime140.dll | mozilla::AudioData::MoveableData] → [@ vcruntime140.dll | mozilla::AudioData::MoveableData | mozilla::AudioData::SetTrimWindow]
No longer depends on: 1530918
Crash Signature: [@ vcruntime140.dll | mozilla::AudioData::MoveableData | mozilla::AudioData::SetTrimWindow] → [@ vcruntime140.dll | mozilla::AudioData::MoveableData] [ mozilla::AudioData::SetTrimWindow]
Crash Signature: [@ vcruntime140.dll | mozilla::AudioData::MoveableData] [ mozilla::AudioData::SetTrimWindow] → [@ vcruntime140.dll | mozilla::AudioData::MoveableData] [@ mozilla::AudioData::SetTrimWindow]

Tracking for 67 as this is supposed to fix bug 1530278 which is a top crasher.

Crash Signature: [@ vcruntime140.dll | mozilla::AudioData::MoveableData] [@ mozilla::AudioData::SetTrimWindow] → [@ vcruntime140.dll | mozilla::AudioData::MoveableData] [@ mozilla::AudioData::SetTrimWindow] [@ mozilla::AudioData::MoveableData]

:jya, here is a crash report:
https://crash-stats.mozilla.com/report/index/26303278-e26a-4318-aae2-9d8720190227
where the the moz_crash_reason is MOZ_RELEASE_ASSERT(mStart <= mEnd) (Invalid Interval).

Crash Signature: [@ vcruntime140.dll | mozilla::AudioData::MoveableData] [@ mozilla::AudioData::SetTrimWindow] [@ mozilla::AudioData::MoveableData] → [@ vcruntime140.dll | mozilla::AudioData::MoveableData] [@ mozilla::AudioData::SetTrimWindow] [@ mozilla::AudioData::MoveableData] [@ mozilla::media::Interval<T>::Interval<T> ]

Same moz_crash_reason, but different crash signature:
https://crash-stats.mozilla.com/report/index/b653bab3-0a4c-4a11-8136-6ac2d0190227

Crash Signature: [@ vcruntime140.dll | mozilla::AudioData::MoveableData] [@ mozilla::AudioData::SetTrimWindow] [@ mozilla::AudioData::MoveableData] [@ mozilla::media::Interval<T>::Interval<T> ] → [@ vcruntime140.dll | mozilla::AudioData::MoveableData] [@ mozilla::AudioData::SetTrimWindow] [@ mozilla::AudioData::MoveableData] [@ mozilla::media::Interval<T>::Interval<T>] [@ mozilla::TrackBuffersManager::DoEvictData]
Duplicate of this bug: 1530278
Depends on: 1531201
Crash Signature: [@ vcruntime140.dll | mozilla::AudioData::MoveableData] [@ mozilla::AudioData::SetTrimWindow] [@ mozilla::AudioData::MoveableData] [@ mozilla::media::Interval<T>::Interval<T>] [@ mozilla::TrackBuffersManager::DoEvictData] → [@ vcruntime140.dll | mozilla::AudioData::MoveableData] [@ mozilla::AudioData::SetTrimWindow] [@ mozilla::AudioData::MoveableData] [@ mozilla::media::Interval<T>::Interval<T>]
Duplicate of this bug: 1530280

(In reply to Calixte Denizet (:calixte) from comment #15)

Same moz_crash_reason, but different crash signature:
https://crash-stats.mozilla.com/report/index/b653bab3-0a4c-4a11-8136-6ac2d0190227

this one will be fixed by bug 1531201

Depends on: 1531241
Depends on: 1531286
Crash Signature: [@ vcruntime140.dll | mozilla::AudioData::MoveableData] [@ mozilla::AudioData::SetTrimWindow] [@ mozilla::AudioData::MoveableData] [@ mozilla::media::Interval<T>::Interval<T>] → [@ vcruntime140.dll | mozilla::AudioData::MoveableData] [@ mozilla::AudioData::SetTrimWindow] [@ mozilla::AudioData::MoveableData]
Duplicate of this bug: 1530721

Marking it as fixed.

Leaving the DIAGNOSTIC_ASSERT as they are not showing up following bug 1531201 and bug 1531241

Status: NEW → RESOLVED
Closed: 9 months ago
Resolution: --- → FIXED
Keywords: leave-open
Target Milestone: --- → mozilla67
Depends on: 1532290
Crash Signature: [@ vcruntime140.dll | mozilla::AudioData::MoveableData] [@ mozilla::AudioData::SetTrimWindow] [@ mozilla::AudioData::MoveableData] → [@ vcruntime140.dll | mozilla::AudioData::MoveableData] [@ mozilla::AudioData::SetTrimWindow] [@ mozilla::AudioData::MoveableData] [@ _platform_memmove$VARIANT$Haswell | mozilla::AudioStream::DataCallback_S] [@ _platform_memmove$VARIANT$Nehalem | mozill…
Crash Signature: mozilla::AudioStream::DataCallback_S] [@ memcpy | mozilla::AudioBufferWriter::Write] [@ mozilla::AudioStream::DataCallback_S] [@ vcruntime140.dll | mozilla::AudioBufferWriter::Write] → mozilla::AudioStream::DataCallback_S] [@ memcpy | mozilla::AudioBufferWriter::Write] [@ mozilla::AudioStream::DataCallback_S] [@ vcruntime140.dll | mozilla::AudioBufferWriter::Write] [@ mozilla::AudioData::IsAudible]
You need to log in before you can comment on or make changes to this bug.