Closed Bug 1940471 Opened 1 year ago Closed 1 year ago

MOZ_CRASH(mozilla::LinkedList<mozilla::extensions::StreamFilterBase::BufferedData>::~LinkedList() [T = mozilla::extensions::StreamFilterBase::BufferedData] has a buggy user: it should have removed all this list's elements before the list's destruction)

Categories

(WebExtensions :: Request Handling, defect, P2)

defect

Tracking

(firefox139 fixed)

RESOLVED FIXED
139 Branch
Tracking Status
firefox139 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: robwu)

References

(Blocks 1 open bug)

Details

(Keywords: intermittent-failure, test-verify-fail, Whiteboard: [addons-jira])

Attachments

(1 file)

Filed by: amarc [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer?job_id=489215218&repo=autoland
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/eX5AzU7rQg-HMZ_TrRkqAA/runs/0/artifacts/public/logs/live_backing.log
Reftest URL: https://hg.mozilla.org/mozilla-central/raw-file/tip/layout/tools/reftest/reftest-analyzer.xhtml#logurl=https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/eX5AzU7rQg-HMZ_TrRkqAA/runs/0/artifacts/public/logs/live_backing.log&only_show_unexpected=1


[task 2025-01-08T14:16:07.397Z] 14:16:07     INFO -  SUITE-START | Running 2 tests
[task 2025-01-08T14:16:07.399Z] 14:16:07     INFO -  TEST-START | xpcshell-remote.toml:toolkit/components/extensions/test/xpcshell/test_ext_webRequest_filterResponseData.js
[task 2025-01-08T14:16:19.699Z] 14:16:19     INFO -  TEST-PASS | xpcshell-remote.toml:toolkit/components/extensions/test/xpcshell/test_ext_webRequest_filterResponseData.js | took 12300ms
[task 2025-01-08T14:16:19.705Z] 14:16:19     INFO -  TEST-START | xpcshell-remote.toml:toolkit/components/extensions/test/xpcshell/test_ext_webRequest_filterResponseData.js
[task 2025-01-08T14:21:19.706Z] 14:21:19  WARNING -  TEST-UNEXPECTED-TIMEOUT | xpcshell-remote.toml:toolkit/components/extensions/test/xpcshell/test_ext_webRequest_filterResponseData.js | Test timed out
[task 2025-01-08T14:21:19.712Z] 14:21:19     INFO -  TEST-INFO took 300000ms
[task 2025-01-08T14:21:19.712Z] 14:21:19     INFO -  >>>>>>>
[task 2025-01-08T14:21:19.712Z] 14:21:19     INFO -  PID 17983 | *** You are running in chaos test mode. See ChaosMode.h. ***
[task 2025-01-08T14:21:19.712Z] 14:21:19     INFO -  PID 17983 | [Parent 17983, Main Thread] WARNING: Couldn't get the user appdata directory. Crash events may not be produced.: file /builds/worker/checkouts/gecko/toolkit/crashreporter/nsExceptionHandler.cpp:2903
[task 2025-01-08T14:21:19.712Z] 14:21:19     INFO -  (xpcshell/head.js) | test MAIN run_test pending (1)
[task 2025-01-08T14:21:19.712Z] 14:21:19     INFO -  (xpcshell/head.js) | test run_next_test 0 pending (2)
[task 2025-01-08T14:21:19.712Z] 14:21:19     INFO -  (xpcshell/head.js) | test MAIN run_test finished (2)
[task 2025-01-08T14:21:19.712Z] 14:21:19     INFO -  running event loop
[task 2025-01-08T14:21:19.712Z] 14:21:19     INFO -  xpcshell-remote.toml:toolkit/components/extensions/test/xpcshell/test_ext_webRequest_filterResponseData.js | Starting setup check_remote
[task 2025-01-08T14:21:19.712Z] 14:21:19     INFO -  (xpcshell/head.js) | test check_remote pending (2)
[task 2025-01-08T14:21:19.712Z] 14:21:19     INFO -  TEST-PASS | xpcshell-remote.toml:toolkit/components/extensions/test/xpcshell/test_ext_webRequest_filterResponseData.js | check_remote - [check_remote : 1] useRemoteWebExtensions matches - true == true
[task 2025-01-08T14:21:19.712Z] 14:21:19     INFO -  TEST-PASS | xpcshell-remote.toml:toolkit/components/extensions/test/xpcshell/test_ext_webRequest_filterResponseData.js | check_remote - [check_remote : 1] testing from extension process - false == false
[task 2025-01-08T14:21:19.712Z] 14:21:19     INFO -  (xpcshell/head.js) | test run_next_test 0 finished (2)
[task 2025-01-08T14:21:19.712Z] 14:21:19     INFO -  (xpcshell/head.js) | test run_next_test 1 pending (2)
[task 2025-01-08T14:21:19.712Z] 14:21:19     INFO -  (xpcshell/head.js) | test check_remote finished (2)
[task 2025-01-08T14:21:19.712Z] 14:21:19     INFO -  xpcshell-remote.toml:toolkit/components/extensions/test/xpcshell/test_ext_webRequest_filterResponseData.js | Starting test_stream_encoding_data
[task 2025-01-08T14:21:19.712Z] 14:21:19     INFO -  (xpcshell/head.js) | test test_stream_encoding_data pending (2)
[task 2025-01-08T14:21:19.712Z] 14:21:19     INFO -  "Extension attached"
[task 2025-01-08T14:21:19.712Z] 14:21:19     INFO -  (xpcshell/head.js) | test run_next_test 1 finished (2)
[task 2025-01-08T14:21:19.712Z] 14:21:19     INFO -  PID 17983 | [WARN  rkv::backend::impl_safe::environment] `load_ratio()` is irrelevant for this storage backend.
[task 2025-01-08T14:21:19.713Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-WARNING **: 14:16:20.623: invalid (NULL) pointer instance
[task 2025-01-08T14:21:19.713Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-CRITICAL **: 14:16:20.623: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[task 2025-01-08T14:21:19.713Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-WARNING **: 14:16:20.623: invalid (NULL) pointer instance
[task 2025-01-08T14:21:19.713Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-CRITICAL **: 14:16:20.623: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[task 2025-01-08T14:21:19.713Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-WARNING **: 14:16:20.623: invalid (NULL) pointer instance
[task 2025-01-08T14:21:19.713Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-CRITICAL **: 14:16:20.623: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[task 2025-01-08T14:21:19.713Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-WARNING **: 14:16:20.623: invalid (NULL) pointer instance
[task 2025-01-08T14:21:19.713Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-CRITICAL **: 14:16:20.623: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[task 2025-01-08T14:21:19.713Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-WARNING **: 14:16:20.623: invalid (NULL) pointer instance
[task 2025-01-08T14:21:19.713Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-CRITICAL **: 14:16:20.623: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[task 2025-01-08T14:21:19.713Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-WARNING **: 14:16:20.623: invalid (NULL) pointer instance
[task 2025-01-08T14:21:19.713Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-CRITICAL **: 14:16:20.623: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[task 2025-01-08T14:21:19.713Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-WARNING **: 14:16:20.623: invalid (NULL) pointer instance
[task 2025-01-08T14:21:19.713Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-CRITICAL **: 14:16:20.623: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[task 2025-01-08T14:21:19.713Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-WARNING **: 14:16:20.623: invalid (NULL) pointer instance
[task 2025-01-08T14:21:19.713Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-CRITICAL **: 14:16:20.623: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[task 2025-01-08T14:21:19.713Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-WARNING **: 14:16:20.623: invalid (NULL) pointer instance
[task 2025-01-08T14:21:19.713Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-CRITICAL **: 14:16:20.623: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[task 2025-01-08T14:21:19.713Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-WARNING **: 14:16:20.623: invalid (NULL) pointer instance
[task 2025-01-08T14:21:19.713Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-CRITICAL **: 14:16:20.623: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[task 2025-01-08T14:21:19.713Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-WARNING **: 14:16:20.623: invalid (NULL) pointer instance
[task 2025-01-08T14:21:19.713Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-CRITICAL **: 14:16:20.623: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[task 2025-01-08T14:21:19.714Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-WARNING **: 14:16:20.623: invalid (NULL) pointer instance
[task 2025-01-08T14:21:19.714Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-CRITICAL **: 14:16:20.623: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[task 2025-01-08T14:21:19.714Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-WARNING **: 14:16:20.623: invalid (NULL) pointer instance
[task 2025-01-08T14:21:19.714Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-CRITICAL **: 14:16:20.623: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[task 2025-01-08T14:21:19.714Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-WARNING **: 14:16:20.623: invalid (NULL) pointer instance
[task 2025-01-08T14:21:19.714Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-CRITICAL **: 14:16:20.623: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[task 2025-01-08T14:21:19.714Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-WARNING **: 14:16:20.623: invalid (NULL) pointer instance
[task 2025-01-08T14:21:19.714Z] 14:21:19     INFO -  PID 17983 | (xpcshell:17983): GLib-GObject-CRITICAL **: 14:16:20.623: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[task 2025-01-08T14:21:19.714Z] 14:21:19     INFO -  PID 17983 | [Parent 17983, Main Thread] WARNING: EnsureInit: No settings: file /builds/worker/checkouts/gecko/widget/gtk/nsLookAndFeel.cpp:1628
[task 2025-01-08T14:21:19.714Z] 14:21:19     INFO -  PID 17983 | [Parent 17983, Renderer] WARNING: Failed to create EGLContext with khr_rbab_attribs: file /builds/worker/checkouts/gecko/gfx/gl/GLContextProviderEGL.cpp:733
[task 2025-01-08T14:21:19.714Z] 14:21:19     INFO -  PID 17983 | [Parent 17983, Renderer] WARNING: Failed to create EGLContext with khr_robustness_attribs: file /builds/worker/checkouts/gecko/gfx/gl/GLContextProviderEGL.cpp:745
[task 2025-01-08T14:21:19.714Z] 14:21:19     INFO -  PID 17983 | Initializing context 7faea4281970 surface 0 on display 7faea3a03f00
[task 2025-01-08T14:21:19.714Z] 14:21:19     INFO -  PID 17983 | GL_VENDOR: VMware, Inc.
[task 2025-01-08T14:21:19.714Z] 14:21:19     INFO -  PID 17983 | mVendor: VMware, Inc.
[task 2025-01-08T14:21:19.714Z] 14:21:19     INFO -  PID 17983 | GL_RENDERER: llvmpipe (LLVM 10.0.0, 256 bits)
[task 2025-01-08T14:21:19.714Z] 14:21:19     INFO -  PID 17983 | mRenderer: Unknown
[task 2025-01-08T14:21:19.714Z] 14:21:19     INFO -  PID 17983 | mIsMesa: 1
[task 2025-01-08T14:21:19.714Z] 14:21:19     INFO -  PID 17983 | [Parent 17983, Renderer] WARNING: robust_buffer_access_behavior marked as unsupported: file /builds/worker/checkouts/gecko/gfx/gl/GLContextFeatures.cpp:644
[task 2025-01-08T14:21:19.714Z] 14:21:19     INFO -  PID 17983 | [Parent 17983, Renderer] WARNING: Robustness supported, strategy is not LOSE_CONTEXT_ON_RESET!: file /builds/worker/checkouts/gecko/gfx/gl/GLContext.cpp:986
[task 2025-01-08T14:21:19.714Z] 14:21:19     INFO -  PID 17983 | [Parent 17983, Renderer] WARNING: robustness marked as unsupported: file /builds/worker/checkouts/gecko/gfx/gl/GLContextFeatures.cpp:644
[task 2025-01-08T14:21:19.714Z] 14:21:19     INFO -  PID 17983 | [Parent 17983, Main Thread] WARNING: Couldn't get the user appdata directory, crash dumps will go in an unusual location: file /builds/worker/checkouts/gecko/toolkit/crashreporter/nsExceptionHandler.cpp:2962
[task 2025-01-08T14:21:19.715Z] 14:21:19     INFO -  PID 17983 | [Parent 17983, GMPThread] WARNING: Failed to delete GMP storage directory: file /builds/worker/checkouts/gecko/dom/media/gmp/GMPServiceParent.cpp:1888
[task 2025-01-08T14:21:19.715Z] 14:21:19     INFO -  PID 17983 | [Child 18042, Main Thread] WARNING: could not set real-time limit in CubebUtils::InitLibrary: file /builds/worker/checkouts/gecko/dom/media/CubebUtils.cpp:767
[task 2025-01-08T14:21:19.715Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: could not set real-time limit in CubebUtils::InitLibrary: file /builds/worker/checkouts/gecko/dom/media/CubebUtils.cpp:767
[task 2025-01-08T14:21:19.715Z] 14:21:19     INFO -  PID 17983 | [Parent 17983, Main Thread] WARNING: BounceTrackingState::OnDocumentStartRequest failed.: 'NS_SUCCEEDED(rv)', file /builds/worker/checkouts/gecko/netwerk/ipc/DocumentLoadListener.cpp:2678
[task 2025-01-08T14:21:19.715Z] 14:21:19     INFO -  PID 17983 | [Parent 17983, Main Thread] WARNING: NS_ENSURE_TRUE(LoadIsPending()) failed: file /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:6478
[task 2025-01-08T14:21:19.715Z] 14:21:19     INFO -  PID 17983 | [Child 18116, Main Thread] WARNING: could not set real-time limit in CubebUtils::InitLibrary: file /builds/worker/checkouts/gecko/dom/media/CubebUtils.cpp:767
[task 2025-01-08T14:21:19.715Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.715Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.715Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.715Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.715Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.715Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.715Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.716Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.717Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.717Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.718Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.718Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.718Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.719Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.720Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.720Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.720Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.720Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.720Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.720Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.720Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.720Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.720Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.720Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.721Z] 14:21:19     INFO -  PID 17983 | [Child 18091, Main Thread] WARNING: XPCOM object StringBuffer released from static ctor/dtor: file /builds/worker/checkouts/gecko/xpcom/base/nsTraceRefcnt.cpp:216
[task 2025-01-08T14:21:19.721Z] 14:21:19     INFO -  PID 17983 | [Parent 17983, Main Thread] WARNING: NS_ENSURE_TRUE(mSuspendCount > 0) failed: file /builds/worker/checkouts/gecko/netwerk/protocol/http/nsHttpChannel.cpp:6503
[task 2025-01-08T14:21:19.721Z] 14:21:19     INFO -  PID 17983 | [Child 18116, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, NS_ERROR_INVALID_ARG) failed with result 0x80520012 (NS_ERROR_FILE_NOT_FOUND): file /builds/worker/checkouts/gecko/intl/l10n/L10nRegistry.cpp:385
[task 2025-01-08T14:21:19.721Z] 14:21:19     INFO -  TEST-PASS | xpcshell-remote.toml:toolkit/components/extensions/test/xpcshell/test_ext_webRequest_filterResponseData.js | test_stream_encoding_data - [test_stream_encoding_data : 114] expected content received - true == true
Keywords: regression
Regressed by: CVE-2024-7525

This is an intermittent debug-only assertion in a child process emitted by ~LinkedList`:

MOZ_CRASH(mozilla::LinkedList<mozilla::extensions::StreamFilterBase::BufferedData>::~LinkedList() [T = mozilla::extensions::StreamFilterBase::BufferedData] has a buggy user: it should have removed all this list's elements before the list's destruction)

The assertion error claims that the LinkedList should be empty before the LinkedList is destructed. The assertion being triggered suggests that StreamFilterBase::mBufferedData is non-empty at destruction. The current uses are in Searchfox query for mozilla::extensions::StreamFilterBase::BufferedData; although the crash is reported in a child process, don't let it fool you in looking only at StreamFilterChild, because StreamFilterParent can also be used in child processes.

Logically, I see at least one way for mBufferedData to be non-empty:

  • In StreamFilterParent::OnDataAvailable, if mState == State::Disconnecting, then data may be buffered.
  • In StreamFilterParent::FinishDisconnect, FlushBufferedData() is called first, and then mState = State::Disconnected; is changed on a different thread. In between these two actions, if StreamFilterParent::OnDataAvailable is called again, mBufferedData becomes non-empty.

Here is the log before the crash (stack trace at end):

[task 2025-01-08T14:16:19.705Z] 14:16:19 INFO - TEST-START | xpcshell-remote.toml:toolkit/components/extensions/test/xpcshell/test_ext_webRequest_filterResponseData.js
[task 2025-01-08T14:21:19.706Z] 14:21:19 WARNING - TEST-UNEXPECTED-TIMEOUT | xpcshell-remote.toml:toolkit/components/extensions/test/xpcshell/test_ext_webRequest_filterResponseData.js | Test timed out

...

[task 2025-01-08T14:21:19.816Z] 14:21:19 INFO - "Suspending request to http://example.com/script.js"
[task 2025-01-08T14:21:19.816Z] 14:21:19 INFO - TEST-PASS | xpcshell-remote.toml:toolkit/components/extensions/test/xpcshell/test_ext_webRequest_filterResponseData.js | test_filter_302_cross_origin_and_full_permissions - [test_filter_302_cross_origin_and_full_permissions : 146] expected msg - Expected: checkStreamFilter, Actual: checkStreamFilter - true == true
[task 2025-01-08T14:21:19.816Z] 14:21:19 INFO - TEST-PASS | xpcshell-remote.toml:toolkit/components/extensions/test/xpcshell/test_ext_webRequest_filterResponseData.js | test_filter_302_cross_origin_and_full_permissions - [test_filter_302_cross_origin_and_full_permissions : 146] Same requestId - Expected: 22, Actual: 22 - true == true
[task 2025-01-08T14:21:19.819Z] 14:21:19 INFO - TEST-PASS | xpcshell-remote.toml:toolkit/components/extensions/test/xpcshell/test_ext_webRequest_filterResponseData.js | test_filter_302_cross_origin_and_full_permissions - [test_filter_302_cross_origin_and_full_permissions : 146] Got continueRedirect - Expected: continueRedirect, Actual: continueRedirect - true == true
[task 2025-01-08T14:21:19.820Z] 14:21:19 INFO - PID 17983 | [Child 18383, Main Thread] WARNING: Not same origin error!: file /builds/worker/checkouts/gecko/dom/base/nsJSEnvironment.cpp:351
[task 2025-01-08T14:21:19.820Z] 14:21:19 INFO - PID 17983 | JavaScript error: http://example.net/script302.js, line 1: ReferenceError: forceAfterRedirError is not defined

(now the crash happens - in a child process with PID 18383)

[task 2025-01-08T14:21:19.821Z] 14:21:19 INFO - PID 17983 | [18383] Hit MOZ_CRASH(mozilla::LinkedList<mozilla::extensions::StreamFilterBase::BufferedData>::~LinkedList() [T = mozilla::extensions::StreamFilterBase::BufferedData] has a buggy user: it should have removed all this list's elements before the list's destruction) at /builds/worker/workspace/obj-build/dist/include/mozilla/LinkedList.h:469

#01: mozilla::LinkedList<mozilla::extensions::StreamFilterBase::BufferedData>::~LinkedList() [mfbt/LinkedList.h:465]
#02: mozilla::extensions::StreamFilterParent::~StreamFilterParent() [toolkit/components/extensions/webrequest/StreamFilterParent.cpp:114]
#03: mozilla::extensions::StreamFilterParent::Release() [toolkit/components/extensions/webrequest/StreamFilterParent.cpp:848]
#04: mozilla::net::HttpBaseChannel::ReleaseListeners() [netwerk/protocol/http/HttpBaseChannel.cpp:4519]
#05: mozilla::net::HttpChannelChild::DoOnStopRequest(nsIRequest*, nsresult) [netwerk/protocol/http/HttpChannelChild.cpp:1281]
#06: mozilla::net::HttpChannelChild::OnStopRequest(nsresult const&, mozilla::net::ResourceTimingStructArgs const&, mozilla::net::nsHttpHeaderArray const&) [netwerk/protocol/http/HttpChannelChild.cpp:1074]
#07: std::_Function_handler<void (), mozilla::net::HttpChannelChild::ProcessOnStopRequest(nsresult const&, mozilla::net::ResourceTimingStructArgs const&, mozilla::net::nsHttpHeaderArray const&, nsTArray<mozilla::net::ConsoleReportCollected>&&, bool, mozilla::TimeStamp const&)::$_2>::_M_invoke(std::_Any_data const&) [/builds/worker/fetches/sysroot-x86_64-linux-gnu/usr/include/c++/8/bits/std_function.h:297]
#08: mozilla::net::ChannelEventQueue::FlushQueue() [netwerk/ipc/ChannelEventQueue.cpp:83]
#09: mozilla::net::ChannelEventQueue::ResumeInternal()::CompleteResumeRunnable::Run() [netwerk/ipc/ChannelEventQueue.cpp:141]
#10: mozilla::RunnableTask::Run() [xpcom/threads/TaskController.cpp:689]
#11: mozilla::TaskController::DoExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) [xpcom/threads/TaskController.cpp:1015]
#12: mozilla::TaskController::ExecuteNextTaskOnlyMainThreadInternal(mozilla::detail::BaseAutoLock<mozilla::Mutex&> const&) [xpcom/threads/TaskController.cpp:0]
#13: mozilla::TaskController::ProcessPendingMTTask(bool) [xpcom/threads/TaskController.cpp:624]
#14: mozilla::detail::RunnableFunction<mozilla::TaskController::TaskController()::$_1>::Run() [xpcom/threads/nsThreadUtils.h:549]
#15: nsThread::ProcessNextEvent(bool, bool*) [xpcom/threads/nsThread.cpp:1163]
#16: NS_ProcessNextEvent(nsIThread*, bool) [xpcom/threads/nsThreadUtils.cpp:480]
#17: mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) [ipc/glue/MessagePump.cpp:0]
#18: MessageLoop::Run() [ipc/chromium/src/base/message_loop.cc:345]
#19: nsBaseAppShell::Run() [widget/nsBaseAppShell.cpp:150]
#20: nsAppShell::Run() [widget/gtk/nsAppShell.cpp:470]
#21: XRE_RunAppShell() [toolkit/xre/nsEmbedFunctions.cpp:646]
#22: mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) [ipc/glue/MessagePump.cpp:235]
#23: MessageLoop::Run() [ipc/chromium/src/base/message_loop.cc:345]
#24: XRE_InitChildProcess(int, char**, XREChildData const*) [toolkit/xre/nsEmbedFunctions.cpp:588]
#25: main [ipc/app/MozillaRuntimeMain.cpp:99]
#26: __libc_start_main [/lib/x86_64-linux-gnu/libc.so.6 + 0x21b97]
#27: ??? [/builds/worker/workspace/build/application/firefox/plugin-container + 0x3e089]
#28: ??? (???:???)
Component: General → Request Handling
Flags: needinfo?(rob)
Keywords: regression
No longer regressed by: CVE-2024-7525

I think that we should make sure that we flush again after setting the state to disconnected at https://searchfox.org/mozilla-central/rev/7d1b5c88343879056168aa710a9ee743392604c0/toolkit/components/extensions/webrequest/StreamFilterParent.cpp#389,392,406

Although I started looking at this because of a TV test failure, I think that this is a potential dataloss issue (onDataAvailable data dropped when streamFilter.disconnect() is called), so I'm going to work on a patch, possibly after my workweek.

I wonder if fixing this may help with bug 1777019 (originally bug 1628642).

Assignee: nobody → rob
Severity: S4 → S3
Status: NEW → ASSIGNED
Priority: P5 → P2
See Also: → 1777019, 1628642
Summary: Intermittent TV TEST-UNEXPECTED-TIMEOUT | toolkit/components/extensions/test/xpcshell/test_ext_webRequest_filterResponseData.js | Test timed out → MOZ_CRASH(mozilla::LinkedList<mozilla::extensions::StreamFilterBase::BufferedData>::~LinkedList() [T = mozilla::extensions::StreamFilterBase::BufferedData] has a buggy user: it should have removed all this list's elements before the list's destruction)
Whiteboard: [addons-jira]

For the analysis, see https://bugzilla.mozilla.org/show_bug.cgi?id=1940471#c2

When OnDataAvailable is called after FinishDisconnect has called
FlushBufferedData(), but before mState was updated to mDisconnected,
then OnDataAvailable did not know that it could write the data.
Consequently, OnDataAvailable proceeded to buffer the data. If
OnDataAvailable is not called again (which flushes the buffer if
needed), then this data would be lost forever (which was caught in debug
builds as an assertion failure - see bug report).

This patch introduces a new flag to ensure that OnDataAvailable writes
data immediately instead of buffering. With this, there are now three
flags that help OnDataAvailable to short-circuit early:

  • mDisconnectedByOnStartRequest (set on main thread)
  • mState == State::Disconnected (set on actor thread)
  • mDisconnectedByFinishDisconnect (set on IO thread - new)

There are currently many skip conditions with the test_ext_webRequest_filterResponseData.js test: https://searchfox.org/mozilla-central/rev/6cc05c6620814bf3eb05278ccf3b1f49690b7740/toolkit/components/extensions/test/xpcshell/xpcshell-common-e10s.toml#6-11

It's unclear whether they are still relevant, so I'll file a separate bug about removing the skip ifs.

FWIW, I ran the test with the patch in debug on macOS with --verify and it passed.

Blocks: 1649848
Blocks: 1959450
Pushed by rob@robwu.nl: https://hg.mozilla.org/integration/autoland/rev/47af2af257c9 Fix race in StreamFilter between ODA and FinishDisconnect r=rpl
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 139 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: