<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>304837</bug_id>
          
          <creation_ts>2026-01-01 19:54:30 -0800</creation_ts>
          <short_desc>[GStreamer] imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-removetrack.https.html is crashing</short_desc>
          <delta_ts>2026-01-08 06:54:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Philippe Normand">philn</assigned_to>
          <cc>philn</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2168852</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2026-01-01 19:54:30 -0800</bug_when>
    <thetext>[GStreamer] imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-removetrack.https.html is crashing

305039@main
https://build.webkit.org/results/GTK-Linux-64-bit-Debug-Tests/305039@main%20(17793)/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-removetrack.https-crash-log.txt

Thread 1 (Thread 0x7fd98e548ec0 (LWP 1216701)):
#0  0x00007fd9aaef9162 in WTF::StringImpl::rawHash (this=0x0) at WTF/Headers/wtf/text/StringImpl.h:355
#1  0x00007fd9aaef9186 in WTF::StringImpl::hasHash (this=0x0) at WTF/Headers/wtf/text/StringImpl.h:358
#2  0x00007fd9aaef91aa in WTF::StringImpl::hash (this=0x0) at WTF/Headers/wtf/text/StringImpl.h:361
#3  0x00007fd9aaef9411 in WTF::StringHash::hash (key=...) at WTF/Headers/wtf/text/StringHash.h:102
#4  0x00007fd9b486e6d4 in WTF::IdentityHashTranslator&lt;WTF::HashMap&lt;WTF::String, WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt;, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt; &gt;, WTF::HashTableTraits, (WTF::ShouldValidateKey)1, WTF::FastMalloc&gt;::KeyValuePairTraits, WTF::DefaultHash&lt;WTF::String&gt; &gt;::hash&lt;WTF::String&gt; (key=...) at WTF/Headers/wtf/HashTable.h:308
#5  0x00007fd9b486df49 in WTF::HashTable&lt;WTF::String, WTF::KeyValuePair&lt;WTF::String, WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::String, WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt; &gt; &gt;, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashMap&lt;WTF::String, WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt;, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt; &gt;, WTF::HashTableTraits, (WTF::ShouldValidateKey)1, WTF::FastMalloc&gt;::KeyValuePairTraits, WTF::HashTraits&lt;WTF::String&gt;, WTF::FastMalloc&gt;::inlineLookup&lt;WTF::IdentityHashTranslator&lt;WTF::HashMap&lt;WTF::String, WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt;, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt; &gt;, WTF::HashTableTraits, (WTF::ShouldValidateKey)1, WTF::FastMalloc&gt;::KeyValuePairTraits, WTF::DefaultHash&lt;WTF::String&gt; &gt;, (WTF::ShouldValidateKey)1, WTF::String&gt; (this=0x55e962363218, key=...) at WTF/Headers/wtf/HashTable.h:675
#6  0x00007fd9b486abd5 in WTF::HashTable&lt;WTF::String, WTF::KeyValuePair&lt;WTF::String, WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::String, WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt; &gt; &gt;, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashMap&lt;WTF::String, WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt;, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt; &gt;, WTF::HashTableTraits, (WTF::ShouldValidateKey)1, WTF::FastMalloc&gt;::KeyValuePairTraits, WTF::HashTraits&lt;WTF::String&gt;, WTF::FastMalloc&gt;::lookup&lt;WTF::IdentityHashTranslator&lt;WTF::HashMap&lt;WTF::String, WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt;, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt; &gt;, WTF::HashTableTraits, (WTF::ShouldValidateKey)1, WTF::FastMalloc&gt;::KeyValuePairTraits, WTF::DefaultHash&lt;WTF::String&gt; &gt;, (WTF::ShouldValidateKey)1, WTF::String&gt; (this=0x55e962363218, key=...) at WTF/Headers/wtf/HashTable.h:661
#7  0x00007fd9b4866d85 in WTF::HashTable&lt;WTF::String, WTF::KeyValuePair&lt;WTF::String, WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::String, WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt; &gt; &gt;, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashMap&lt;WTF::String, WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt;, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt; &gt;, WTF::HashTableTraits, (WTF::ShouldValidateKey)1, WTF::FastMalloc&gt;::KeyValuePairTraits, WTF::HashTraits&lt;WTF::String&gt;, WTF::FastMalloc&gt;::find&lt;WTF::IdentityHashTranslator&lt;WTF::HashMap&lt;WTF::String, WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt;, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt; &gt;, WTF::HashTableTraits, (WTF::ShouldValidateKey)1, WTF::FastMalloc&gt;::KeyValuePairTraits, WTF::DefaultHash&lt;WTF::String&gt; &gt;, (WTF::ShouldValidateKey)1, WTF::String&gt; (this=0x55e962363218, key=...) at WTF/Headers/wtf/HashTable.h:1011
#8  0x00007fd9b48615a6 in WTF::HashTable&lt;WTF::String, WTF::KeyValuePair&lt;WTF::String, WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt; &gt;, WTF::KeyValuePairKeyExtractor&lt;WTF::KeyValuePair&lt;WTF::String, WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt; &gt; &gt;, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashMap&lt;WTF::String, WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt;, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt; &gt;, WTF::HashTableTraits, (WTF::ShouldValidateKey)1, WTF::FastMalloc&gt;::KeyValuePairTraits, WTF::HashTraits&lt;WTF::String&gt;, WTF::FastMalloc&gt;::find&lt;(WTF::ShouldValidateKey)1&gt; (this=0x55e962363218, key=...) at WTF/Headers/wtf/HashTable.h:496
#9  0x00007fd9b485bf58 in WTF::HashMap&lt;WTF::String, WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt;, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt; &gt;, WTF::HashTableTraits, (WTF::ShouldValidateKey)1, WTF::FastMalloc&gt;::find (this=0x55e962363218, key=...) at WTF/Headers/wtf/HashMap.h:366
#10 0x00007fd9b4856572 in WTF::HashMap&lt;WTF::String, WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt;, WTF::DefaultHash&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::String&gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;InternalSource, WTF::RawPtrTraits&lt;InternalSource&gt;, WTF::DefaultRefDerefTraits&lt;InternalSource&gt; &gt; &gt;, WTF::HashTableTraits, (WTF::ShouldValidateKey)1, WTF::FastMalloc&gt;::take (this=0x55e962363218, key=...) at WTF/Headers/wtf/HashMap.h:582
#11 0x00007fd9b484c434 in WebKitMediaStreamObserver::didRemoveTrack (this=0x7fd9846d9410, track=...) at ../../../Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:982
#12 0x00007fd9b47b7b05 in operator()&lt;WebCore::MediaStreamPrivateObserver&gt; (__closure=0x7fd9849aca88, observer=...) at ../../../Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp:178
#13 0x00007fd9b47b7b3c in WTF::Detail::CallableWrapper&lt;WebCore::MediaStreamPrivate::removeTrack(WebCore::MediaStreamTrackPrivate&amp;)::&lt;lambda(auto:264&amp;)&gt;, void, WebCore::MediaStreamPrivateObserver&amp;&gt;::call(WebCore::MediaStreamPrivateObserver &amp;) (this=0x7fd9849aca80, in#0=...) at WTF/Headers/wtf/Function.h:59
#14 0x00007fd9b478f531 in WTF::Function&lt;void (WebCore::MediaStreamPrivateObserver&amp;)&gt;::operator()(WebCore::MediaStreamPrivateObserver&amp;) const (this=0x7ffcc5746030, in#0=...) at WTF/Headers/wtf/Function.h:103
#15 0x00007fd9b4788ea8 in WTF::WeakHashSet&lt;WebCore::MediaStreamPrivateObserver, WTF::DefaultWeakPtrImpl&gt;::forEach(WTF::Function&lt;void (WebCore::MediaStreamPrivateObserver&amp;)&gt; const&amp;) (this=0x7fd9845489c8, callback=...) at WTF/Headers/wtf/WeakHashSet.h:197
#16 0x00007fd9b477f0ba in WebCore::MediaStreamPrivate::forEachObserver(WTF::Function&lt;void (WebCore::MediaStreamPrivateObserver&amp;)&gt; const&amp;) (this=0x7fd9845489a0, apply=...) at ../../../Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp:108
#17 0x00007fd9b477f86b in WebCore::MediaStreamPrivate::removeTrack (this=0x7fd9845489a0, track=...) at ../../../Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp:177
#18 0x00007fd9b0edc096 in WebCore::MediaStream::removeTrack (this=0x7fd9845195e0, track=...) at ../../../Source/WebCore/Modules/mediastream/MediaStream.cpp:158
#19 0x00007fd9af556869 in operator() (__closure=0x7ffcc5746190) at WebCore/DerivedSources/JSMediaStream.cpp:483
#20 0x00007fd9af5609f0 in WebCore::toJS&lt;WebCore::IDLUndefined, WebCore::jsMediaStreamPrototypeFunction_removeTrackBody(JSC::JSGlobalObject*, JSC::CallFrame*, IDLOperation&lt;JSMediaStream&gt;::ClassParameter)::&lt;lambda()&gt; &gt;(JSC::JSGlobalObject &amp;, JSC::ThrowScope &amp;, struct {...} &amp;&amp;) (lexicalGlobalObject=..., throwScope=..., valueOrFunctor=...) at WebCore/PrivateHeaders/WebCore/JSDOMConvertBase.h:190
#21 0x00007fd9af556a3b in WebCore::jsMediaStreamPrototypeFunction_removeTrackBody (lexicalGlobalObject=0x7fd982150088, callFrame=0x7ffcc57462f0, castedThis=0x7fd982c242c0) at WebCore/DerivedSources/JSMediaStream.cpp:483
#22 0x00007fd9af560ca1 in WebCore::IDLOperation&lt;WebCore::JSMediaStream&gt;::call&lt;WebCore::jsMediaStreamPrototypeFunction_removeTrackBody&gt; (lexicalGlobalObject=..., callFrame=..., operationName=0x7fd9a0f217f1 &quot;removeTrack&quot;) at WebCore/PrivateHeaders/WebCore/JSDOMOperation.h:63
#23 0x00007fd9af556aac in WebCore::jsMediaStreamPrototypeFunction_removeTrack (lexicalGlobalObject=0x7fd982150088, callFrame=0x7ffcc57462f0) at WebCore/DerivedSources/JSMediaStream.cpp:488
#24 0x00007fd941a0c038 in ??? ()
#25 0x00007ffcc5746370 in ??? ()
#26 0x00007fd99875091b in llint_op_call_ignore_result () at /sdk/webkit/WebKitBuild/GTK/Debug/lib/libjavascriptcoregtk-6.0.so.1
#27 0x0000000000000000 in ??? ()


History: https://results.webkit.org/?suite=layout-tests&amp;test=imported%2Fw3c%2Fweb-platform-tests%2Fmediacapture-streams%2FMediaStream-removetrack.https.html&amp;platform=GTK&amp;platform=WPE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2168853</commentid>
    <comment_count>1</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2026-01-01 19:56:30 -0800</bug_when>
    <thetext>In WebKitMediaStreamObserver::didRemoveTrack, sourceId can be a null string.

&gt;    auto source = priv-&gt;sources.take(sourceId);

https://github.com/WebKit/WebKit/blob/283c780414b7c24e4a911c823af665f53a15e8f7/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp#L982</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2168854</commentid>
    <comment_count>2</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2026-01-01 20:07:05 -0800</bug_when>
    <thetext>This crash can be worked around by the following patch. However, another crash occurs in WebKit::crashAfter10Seconds(). Looks like a similar backtrace with bug#263720.

diff --git a/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp b/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp
index 18fe9a363e68..d9bb65b3ef3f 100644
--- a/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp
+++ b/Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp
@@ -979,6 +979,9 @@ void WebKitMediaStreamObserver::didRemoveTrack(MediaStreamTrackPrivate&amp; track)
         return item-&gt;id() == track.id();
     });
 
+    if (sourceId.isNull())
+        return;
+
     auto source = priv-&gt;sources.take(sourceId);
     // Properly stop data flow. The source stops observing notifications from WebCore.
     if (!source-&gt;signalEndOfStream()) {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2168870</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">philn</who>
    <bug_when>2026-01-02 01:14:07 -0800</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #2)
&gt; This crash can be worked around by the following patch. However, another
&gt; crash occurs in WebKit::crashAfter10Seconds(). Looks like a similar
&gt; backtrace with bug#263720.
&gt; 

That bt means the WebProcess is deadlocked, so all the threads need to be inspected to debug this.

Anyway, I&apos;ll take a look, thanks for the report!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2168886</commentid>
    <comment_count>4</comment_count>
    <who name="Philippe Normand">philn</who>
    <bug_when>2026-01-02 08:33:15 -0800</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/56004</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2170257</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2026-01-08 06:53:29 -0800</bug_when>
    <thetext>Committed 305276@main (50d9afb8a538): &lt;https://commits.webkit.org/305276@main&gt;

Reviewed commits have been landed. Closing PR #56004 and removing active labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2170258</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2026-01-08 06:54:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/167766317&gt;</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>