Open Bug 1645120 Opened 4 years ago Updated 2 years ago

Assertion failure: aTextNode.Length() >= aStartOffset + aLength, at /builds/worker/checkouts/gecko/editor/libeditor/ReplaceTextTransaction.h:53

Categories

(Core :: DOM: Editor, defect, P5)

defect

Tracking

()

Tracking Status
firefox-esr91 --- wontfix
firefox-esr102 --- affected
firefox79 --- wontfix
firefox101 --- wontfix
firefox102 --- wontfix
firefox103 --- wontfix
firefox104 --- wontfix

People

(Reporter: jkratzer, Unassigned)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: assertion, regression, testcase, Whiteboard: [bugmon:bisected,confirmed])

Attachments

(1 file)

Attached file testcase.html

Testcase found while fuzzing mozilla-central rev 10ad7868f3ca (built with --enable-debug).

Assertion failure: aTextNode.Length() >= aStartOffset + aLength, at /builds/worker/checkouts/gecko/editor/libeditor/ReplaceTextTransaction.h:53

rax = 0x00007fbc31797136   rdx = 0x0000000000000000
rcx = 0x0000557c3fca8a58   rbx = 0x0000557c40cf71e0
rsi = 0x00007fbc428ac8b0   rdi = 0x00007fbc428ab680
rbp = 0x00007ffc89fbb3a0   rsp = 0x00007ffc89fbb360
r8 = 0x00007fbc428ac8b0    r9 = 0x00007fbc43a12780
r10 = 0x0000000000000002   r11 = 0x0000000000000000
r12 = 0x0000000000000000   r13 = 0x00007ffc89fbb550
r14 = 0x00007ffc89fbb4b0   r15 = 0x0000000000000003
rip = 0x00007fbc2bf1c4cf
OS|Linux|0.0.0 Linux 5.3.0-51-generic #44~18.04.2-Ubuntu SMP Thu Apr 23 14:27:18 UTC 2020 x86_64
CPU|amd64|family 6 model 94 stepping 3|8
GPU|||
Crash|SIGSEGV|0x0|0
0|0|libxul.so|mozilla::ReplaceTextTransaction::Create(mozilla::EditorBase&, nsTSubstring<char16_t> const&, mozilla::dom::Text&, unsigned int, unsigned int)|hg:hg.mozilla.org/mozilla-central:editor/libeditor/ReplaceTextTransaction.h:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|53|0x29
0|1|libxul.so|mozilla::HTMLEditor::ReplaceTextWithTransaction(mozilla::dom::Text&, unsigned int, unsigned int, nsTSubstring<char16_t> const&)|hg:hg.mozilla.org/mozilla-central:editor/libeditor/HTMLEditor.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|3334|0x1f
0|2|libxul.so|mozilla::WSRunObject::ReplaceASCIIWhitespacesWithOneNBSP(mozilla::EditorDOMPointBase<RefPtr<mozilla::dom::Text>, nsIContent*> const&)|hg:hg.mozilla.org/mozilla-central:editor/libeditor/WSRunObject.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|1457|0x11
0|3|libxul.so|mozilla::WSRunObject::InsertBreak(mozilla::dom::Selection&, mozilla::EditorDOMPointBase<nsCOMPtr<nsINode>, nsCOMPtr<nsIContent> > const&, short)|hg:hg.mozilla.org/mozilla-central:editor/libeditor/WSRunObject.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|240|0x8
0|4|libxul.so|mozilla::HTMLEditor::InsertBRElement(mozilla::EditorDOMPointBase<nsCOMPtr<nsINode>, nsCOMPtr<nsIContent> > const&)|hg:hg.mozilla.org/mozilla-central:editor/libeditor/HTMLEditSubActionHandler.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|2089|0x33
0|5|libxul.so|mozilla::HTMLEditor::InsertParagraphSeparatorAsSubAction()|hg:hg.mozilla.org/mozilla-central:editor/libeditor/HTMLEditSubActionHandler.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|1937|0x8
0|6|libxul.so|mozilla::HTMLEditor::InsertParagraphSeparatorAsAction(nsIPrincipal*)|hg:hg.mozilla.org/mozilla-central:editor/libeditor/HTMLEditor.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|987|0x8
0|7|libxul.so|mozilla::InsertParagraphCommand::DoCommand(mozilla::Command, mozilla::TextEditor&, nsIPrincipal*) const|hg:hg.mozilla.org/mozilla-central:editor/libeditor/EditorCommands.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|887|0xb
0|8|libxul.so|mozilla::dom::Document::ExecCommand(nsTSubstring<char16_t> const&, bool, nsTSubstring<char16_t> const&, nsIPrincipal&, mozilla::ErrorResult&)|hg:hg.mozilla.org/mozilla-central:dom/base/Document.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|4858|0x33
0|9|libxul.so|mozilla::dom::Document_Binding::execCommand(JSContext*, JS::Handle<JSObject*>, void*, JSJitMethodCallArgs const&)|s3:gecko-generated-sources:8f7281e3ba1d600673dcaa1ac04d192ebae5bd1389403ef4cb1737261df8d246aba5da557aa502b708e3a3d18afebea6aedb14885532cb2904ce3fbf2ec40b9f/dom/bindings/DocumentBinding.cpp:|3469|0x34
0|10|libxul.so|bool mozilla::dom::binding_detail::GenericMethod<mozilla::dom::binding_detail::NormalThisPolicy, mozilla::dom::binding_detail::ThrowExceptions>(JSContext*, unsigned int, JS::Value*)|hg:hg.mozilla.org/mozilla-central:dom/bindings/BindingUtils.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|3219|0x21
0|11|libxul.so|CallJSNative(JSContext*, bool (*)(JSContext*, unsigned int, JS::Value*), js::CallReason, JS::CallArgs const&)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|486|0x12
0|12|libxul.so|js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|578|0xe
0|13|libxul.so|InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|641|0x10
0|14|libxul.so|Interpret(JSContext*, js::RunState&)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|645|0xa
0|15|libxul.so|js::RunScript(JSContext*, js::RunState&)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|458|0xb
0|16|libxul.so|js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|613|0x8
0|17|libxul.so|InternalCall(JSContext*, js::AnyInvokeArgs const&, js::CallReason)|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|641|0x10
0|18|libxul.so|<name omitted>|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|658|0xb
0|19|libxul.so|JS::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>)|hg:hg.mozilla.org/mozilla-central:js/src/jsapi.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|2842|0x23
0|20|libxul.so|mozilla::dom::EventListener::HandleEvent(mozilla::dom::BindingCallContext&, JS::Handle<JS::Value>, mozilla::dom::Event&, mozilla::ErrorResult&)|s3:gecko-generated-sources:2563ad09677feb8ddf64827a409899848ef6a80bfacaa11f581c512536a6fb0c779d8b29517ba6358a054c6d475f770bf7bac2913a941d0394881c5649b08603/dom/bindings/EventListenerBinding.cpp:|55|0xe
0|21|libxul.so|void mozilla::dom::EventListener::HandleEvent<mozilla::dom::EventTarget*>(mozilla::dom::EventTarget* const&, mozilla::dom::Event&, mozilla::ErrorResult&, char const*, mozilla::dom::CallbackObject::ExceptionHandling, JS::Realm*)|s3:gecko-generated-sources:99837b3cdc69c5eb1234f9d2b3e771dcff734d56a022bedb1d00c0cf4ee6243fb5c91397a058f2ddab63bda8ed6b581ea1232a0229033866910c7289d24cbc2d/dist/include/mozilla/dom/EventListenerBinding.h:|66|0x21
0|22|libxul.so|mozilla::EventListenerManager::HandleEventSubType(mozilla::EventListenerManager::Listener*, mozilla::dom::Event*, mozilla::dom::EventTarget*)|hg:hg.mozilla.org/mozilla-central:dom/events/EventListenerManager.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|1082|0x2c
0|23|libxul.so|mozilla::EventListenerManager::HandleEventInternal(nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event**, mozilla::dom::EventTarget*, nsEventStatus*, bool)|hg:hg.mozilla.org/mozilla-central:dom/events/EventListenerManager.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|1280|0x16
0|24|libxul.so|mozilla::EventTargetChainItem::HandleEvent(mozilla::EventChainPostVisitor&, mozilla::ELMCreationDetector&)|hg:hg.mozilla.org/mozilla-central:dom/events/EventDispatcher.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|355|0xb
0|25|libxul.so|mozilla::EventTargetChainItem::HandleEventTargetChain(nsTArray<mozilla::EventTargetChainItem>&, mozilla::EventChainPostVisitor&, mozilla::EventDispatchingCallback*, mozilla::ELMCreationDetector&)|hg:hg.mozilla.org/mozilla-central:dom/events/EventDispatcher.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|557|0x19
0|26|libxul.so|mozilla::EventDispatcher::Dispatch(nsISupports*, nsPresContext*, mozilla::WidgetEvent*, mozilla::dom::Event*, nsEventStatus*, mozilla::EventDispatchingCallback*, nsTArray<mozilla::dom::EventTarget*>*)|hg:hg.mozilla.org/mozilla-central:dom/events/EventDispatcher.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|1054|0x5
0|27|libxul.so|mozilla::EventDispatcher::DispatchDOMEvent(nsISupports*, mozilla::WidgetEvent*, mozilla::dom::Event*, nsPresContext*, nsEventStatus*)|hg:hg.mozilla.org/mozilla-central:dom/events/EventDispatcher.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|0|0x8
0|28|libxul.so|nsINode::DispatchEvent(mozilla::dom::Event&, mozilla::dom::CallerType, mozilla::ErrorResult&)|hg:hg.mozilla.org/mozilla-central:dom/base/nsINode.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|1302|0x10
0|29|libxul.so|nsContentUtils::DispatchEvent(mozilla::dom::Document*, nsISupports*, nsTSubstring<char16_t> const&, mozilla::CanBubble, mozilla::Cancelable, mozilla::Composed, mozilla::Trusted, bool*, mozilla::ChromeOnlyDispatch)|hg:hg.mozilla.org/mozilla-central:dom/base/nsContentUtils.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|4027|0x23
0|30|libxul.so|nsContentUtils::DispatchTrustedEvent(mozilla::dom::Document*, nsISupports*, nsTSubstring<char16_t> const&, mozilla::CanBubble, mozilla::Cancelable, mozilla::Composed, bool*)|hg:hg.mozilla.org/mozilla-central:dom/base/nsContentUtils.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|3997|0x23
0|31|libxul.so|mozilla::dom::Document::DispatchContentLoadedEvents()|hg:hg.mozilla.org/mozilla-central:dom/base/Document.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|7175|0x21
0|32|libxul.so|mozilla::detail::RunnableMethodImpl<mozilla::dom::Document*, void (mozilla::dom::Document::*)(), true, (mozilla::RunnableKind)0>::Run()|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThreadUtils.h:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|1237|0x17
0|33|libxul.so|mozilla::SchedulerGroup::Runnable::Run()|hg:hg.mozilla.org/mozilla-central:xpcom/threads/SchedulerGroup.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|146|0x11
0|34|libxul.so|nsThread::ProcessNextEvent(bool, bool*)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|1236|0xe
0|35|libxul.so|NS_ProcessNextEvent(nsIThread*, bool)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThreadUtils.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|501|0xc
0|36|libxul.so|mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*)|hg:hg.mozilla.org/mozilla-central:ipc/glue/MessagePump.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|87|0x7
0|37|libxul.so|MessageLoop::RunInternal()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|315|0x17
0|38|libxul.so|MessageLoop::Run()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|290|0x8
0|39|libxul.so|nsBaseAppShell::Run()|hg:hg.mozilla.org/mozilla-central:widget/nsBaseAppShell.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|137|0xd
0|40|libxul.so|XRE_RunAppShell()|hg:hg.mozilla.org/mozilla-central:toolkit/xre/nsEmbedFunctions.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|913|0xe
0|41|libxul.so|mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*)|hg:hg.mozilla.org/mozilla-central:ipc/glue/MessagePump.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|237|0x5
0|42|libxul.so|MessageLoop::RunInternal()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|315|0x17
0|43|libxul.so|MessageLoop::Run()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|290|0x8
0|44|libxul.so|XRE_InitChildProcess(int, char**, XREChildData const*)|hg:hg.mozilla.org/mozilla-central:toolkit/xre/nsEmbedFunctions.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|744|0x5
0|45|firefox-bin|content_process_main(mozilla::Bootstrap*, int, char**)|hg:hg.mozilla.org/mozilla-central:ipc/contentproc/plugin-container.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|56|0x11
0|46|firefox-bin|main|hg:hg.mozilla.org/mozilla-central:browser/app/nsBrowserApp.cpp:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|303|0x20
0|47|libc.so.6||||0x21b97
0|48|firefox-bin|<name omitted>|hg:hg.mozilla.org/mozilla-central:mfbt/UniquePtr.h:10ad7868f3ca27cb90db9bd1d392ff4d7852a0cd|253|0x17
Flags: in-testsuite?
Whiteboard: [bugmon:confirm] → [bugmon:bisected,confirmed]
Bugmon Analysis:
Verified bug as reproducible on mozilla-central 20200611093454-10ad7868f3ca.
The bug appears to have been introduced in the following build range:
> Start: 9749264fe7adfb475501643fc19b69fcfceeccc4 (20200521091224)
> End: 7043d20f06b5fdea8b5f40da6051c7831f805d6a (20200521091340)
> Pushlog: https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=9749264fe7adfb475501643fc19b69fcfceeccc4&tochange=7043d20f06b5fdea8b5f40da6051c7831f805d6a

Bugmon Analysis
Unable to reproduce bug 1645120 using build mozilla-central 20201205093858-7ce95b6cde26. Without a baseline, bugmon is unable to analyze this bug.
Removing bugmon keyword as no further action possible. Please review the bug and re-add the keyword for further analysis.

Keywords: bugmon

Setting regressed_by field after analyzing regression range found by bugmon.

Regressed by: 1639161

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

:masayuki, since you are the author of the regressor, bug 1639161, could you take a look?
For more information, please visit auto_nag documentation.

Flags: needinfo?(masayuki)

It looks like that it detects a traditional bug with the new assertion, and CharacterData::SetTextInternal handles the error, so this is not urgent one.

Severity: normal → S3
Flags: needinfo?(masayuki)
Priority: -- → P5

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

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: