<?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>279911</bug_id>
          
          <creation_ts>2024-09-18 11:21:31 -0700</creation_ts>
          <short_desc>&quot;g_timer_continue: assertion &apos;timer-&gt;active == FALSE&apos; failed&quot; in gst_download_buffer_wait_for_data()</short_desc>
          <delta_ts>2024-09-25 11:22:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>Other</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Nils K">nilskemail+webkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2061148</commentid>
    <comment_count>0</comment_count>
    <who name="Nils K">nilskemail+webkit</who>
    <bug_when>2024-09-18 11:21:31 -0700</bug_when>
    <thetext>After enabling fatal-criticals for glib (see bug #276819) I started to observed some crashes with the following error message preceding it:

&quot;(WPEWebProcess:2): GLib-CRITICAL **: 09:13:26.792: g_timer_continue: assertion &apos;timer-&gt;active == FALSE&apos; failed&quot;

This is the same assertion error as encountered in bug #132262. The backtrace is (not sure if the additional data from &quot;bt full&quot; vs &quot;bt&quot; is helpful as everything is optimized away):

#0  _g_log_abort (breakpoint=&lt;optimized out&gt;) at ../glib/gmessages.c:426
        debugger_present = 1
        debugger_present = &lt;optimized out&gt;
#1  g_logv (log_domain=0x7f579f7812eb &quot;GLib&quot;, log_level=G_LOG_LEVEL_CRITICAL, format=&lt;optimized out&gt;, args=args@entry=0x7f55bf3ff0e0) at ../glib/gmessages.c:1273
        domain = 0x0
        data = &lt;optimized out&gt;
        depth = &lt;optimized out&gt;
        log_func = &lt;optimized out&gt;
        domain_fatal_mask = &lt;optimized out&gt;
        masquerade_fatal = &lt;optimized out&gt;
        test_level = &lt;optimized out&gt;
        was_fatal = &lt;optimized out&gt;
        was_recursion = &lt;optimized out&gt;
        buffer = &lt;optimized out&gt;
        msg_alloc = 0x7f559c001f50 &quot;g_timer_continue: assertion &apos;timer-&gt;active == FALSE&apos; failed&quot;
        msg = 0x7f559c001f50 &quot;g_timer_continue: assertion &apos;timer-&gt;active == FALSE&apos; failed&quot;
        i = 3
        size = &lt;optimized out&gt;
#2  0x00007f579f6c3ea3 in g_log (log_domain=&lt;optimized out&gt;, log_level=&lt;optimized out&gt;, format=&lt;optimized out&gt;) at ../glib/gmessages.c:1315
        args = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7f55bf3ff1c0, reg_save_area = 0x7f55bf3ff100}}
#3  0x00007f5745f0ea7c in gst_download_buffer_wait_for_data (dlbuf=&lt;optimized out&gt;, offset=&lt;optimized out&gt;, length=&lt;optimized out&gt;) at ../plugins/elements/gstdownloadbuffer.c:731
        stop = &lt;optimized out&gt;
        started = &lt;optimized out&gt;
        start = &lt;optimized out&gt;
        wanted = &lt;optimized out&gt;
        start = &lt;optimized out&gt;
        stop = &lt;optimized out&gt;
        wanted = &lt;optimized out&gt;
        started = &lt;optimized out&gt;
        __func__ = &lt;optimized out&gt;
        out_flushing = &lt;optimized out&gt;
        _g_boolean_var_22 = &lt;optimized out&gt;
        _g_boolean_var_23 = &lt;optimized out&gt;
        _g_boolean_var_24 = &lt;optimized out&gt;
        threshold = &lt;optimized out&gt;
        dist = &lt;optimized out&gt;
        _g_boolean_var_25 = &lt;optimized out&gt;
        _g_boolean_var_26 = &lt;optimized out&gt;
        _g_boolean_var_27 = &lt;optimized out&gt;
        _g_boolean_var_28 = &lt;optimized out&gt;
        _g_boolean_var_29 = &lt;optimized out&gt;
        _g_boolean_var_30 = &lt;optimized out&gt;
        _g_boolean_var_31 = &lt;optimized out&gt;
#4  gst_download_buffer_read_buffer (dlbuf=dlbuf@entry=0x7f555c182e40, offset=offset@entry=0, length=&lt;optimized out&gt;, length@entry=16, buffer=buffer@entry=0x7f55bf3ff338) at ../plugins/elements/gstdownloadbuffer.c:808
        buf = &lt;optimized out&gt;
        info = {memory = 0x7f578f7600e0, flags = GST_MAP_WRITE, data = 0x7f578f760158 &quot;&quot;, size = 16, maxsize = 16, user_data = {0x7f579ee6baf8 &lt;__printf_buffer_write+72&gt;, 0x7f55a0001ff0, 0x7f579f50f618, 0x7f55bf3ff880}, 
          _gst_reserved = {0x7f55bf3ff7b0, 0x7f55bf3ff7a0, 0x7f555c182e40, 0x7f555c183668}}
        ret = GST_FLOW_OK
        res = &lt;optimized out&gt;
        remaining = &lt;optimized out&gt;
        error = 0x7f55a004bff0
        __func__ = &quot;gst_download_buffer_read_buffer&quot;
#5  0x00007f5745f11f49 in gst_download_buffer_get_range (pad=&lt;optimized out&gt;, parent=0x7f555c182e40, offset=0, length=16, buffer=0x7f55bf3ff338) at ../plugins/elements/gstdownloadbuffer.c:1652
        dlbuf = 0x7f555c182e40
        ret = &lt;optimized out&gt;
        msg = 0x0
        __func__ = &quot;gst_download_buffer_get_range&quot;
#6  0x00007f579f4aa3db in gst_pad_get_range_unchecked (pad=pad@entry=0x7f555c183650, offset=offset@entry=0, size=size@entry=16, buffer=buffer@entry=0x7f55bf3ff408) at ../gst/gstpad.c:4979
        ret = GST_FLOW_OK
--Type &lt;RET&gt; for more, q to quit, c to continue without paging--c
        getrangefunc = 0x7f5745f11ed0 &lt;gst_download_buffer_get_range&gt;
        parent = 0x7f555c182e40
        res_buf = 0x0
        __func__ = &quot;gst_pad_get_range_unchecked&quot;
#7  0x00007f579f4aad33 in gst_pad_pull_range (pad=0x7f555c17ee20, offset=0, size=16, buffer=0x7f55bf3ff4f8) at ../gst/gstpad.c:5224
        peer = 0x7f555c183650
        ret = &lt;optimized out&gt;
        res_buf = 0x0
        __func__ = &quot;gst_pad_pull_range&quot;
#8  0x00007f579f48a6b7 in gst_proxy_pad_getrange_default (pad=&lt;optimized out&gt;, parent=&lt;optimized out&gt;, offset=0, size=16, buffer=0x7f55bf3ff4f8) at ../gst/gstghostpad.c:185
        res = &lt;optimized out&gt;
        internal = 0x7f555c17ee20
        __func__ = &quot;gst_proxy_pad_getrange_default&quot;
#9  0x00007f579f4aa3db in gst_pad_get_range_unchecked (pad=pad@entry=0x7f555c17f220, offset=offset@entry=0, size=size@entry=16, buffer=buffer@entry=0x7f55bf3ff5c8) at ../gst/gstpad.c:4979
        ret = GST_FLOW_OK
        getrangefunc = 0x7f579f48a650 &lt;gst_proxy_pad_getrange_default&gt;
        parent = 0x7f555c17ee20
        res_buf = 0x0
        __func__ = &quot;gst_pad_get_range_unchecked&quot;
#10 0x00007f579f4aad33 in gst_pad_pull_range (pad=0x7f555c180df0, offset=0, size=16, buffer=0x7f55bf3ff688) at ../gst/gstpad.c:5224
        peer = 0x7f555c17f220
        ret = &lt;optimized out&gt;
        res_buf = 0x0
        __func__ = &quot;gst_pad_pull_range&quot;
#11 0x00007f579f4aa3db in gst_pad_get_range_unchecked (pad=pad@entry=0x7f555c181220, offset=offset@entry=0, size=size@entry=16, buffer=buffer@entry=0x7f55bf3ff758) at ../gst/gstpad.c:4979
        ret = GST_FLOW_OK
        getrangefunc = 0x7f5745f46b30 &lt;gst_type_find_element_getrange&gt;
        parent = 0x7f555c180ae0
        res_buf = 0x0
        __func__ = &quot;gst_pad_get_range_unchecked&quot;
#12 0x00007f579f4aad33 in gst_pad_pull_range (pad=0x7f55a0004220, offset=offset@entry=0, size=size@entry=16, buffer=buffer@entry=0x7f55bf3ff868) at ../gst/gstpad.c:5224
        peer = 0x7f555c181220
        ret = &lt;optimized out&gt;
        res_buf = 0x0
        __func__ = &quot;gst_pad_pull_range&quot;
#13 0x00007f572cd8e752 in gst_qtdemux_loop_state_header (qtdemux=0x7f55a004bc60) at ../gst/isomp4/qtdemux.c:4951
        length = 0
        fourcc = 0
        buf = 0x0
        ret = GST_FLOW_OK
        cur_offset = 0
        map = {memory = 0x7f55bf3ff8e0, flags = (unknown: 0xa0001ff0), data = 0x7f55a0001ff0 &quot;qtdemux39:sink&quot;, size = 1, maxsize = 1, user_data = {0x7f55a01160a0, 0x7f55bf3ff950, 
            0x7f579f50759b &lt;do_stream_status.isra.0+235&gt;, 0x7f55bf3ff930}, _gst_reserved = {0x7f559c0050f0, 0x18, 0x7f55bf3ff960, 0x7f55bf3ff920}}
        length = &lt;optimized out&gt;
        fourcc = &lt;optimized out&gt;
        buf = &lt;optimized out&gt;
        ret = &lt;optimized out&gt;
        cur_offset = &lt;optimized out&gt;
        map = &lt;optimized out&gt;
        beach = &lt;optimized out&gt;
        __func__ = &lt;optimized out&gt;
        _g_boolean_var_577 = &lt;optimized out&gt;
        _g_boolean_var_578 = &lt;optimized out&gt;
        _g_boolean_var_579 = &lt;optimized out&gt;
        __txt = &lt;optimized out&gt;
        __dbg = &lt;optimized out&gt;
        _g_boolean_var_580 = &lt;optimized out&gt;
        _g_boolean_var_581 = &lt;optimized out&gt;
        _g_boolean_var_582 = &lt;optimized out&gt;
        _g_boolean_var_583 = &lt;optimized out&gt;
        moov = &lt;optimized out&gt;
        _g_boolean_var_584 = &lt;optimized out&gt;
        duration = &lt;optimized out&gt;
        __txt = &lt;optimized out&gt;
        __dbg = &lt;optimized out&gt;
        _g_boolean_var_585 = &lt;optimized out&gt;
        _g_boolean_var_586 = &lt;optimized out&gt;
        _g_boolean_var_587 = &lt;optimized out&gt;
        __txt = &lt;optimized out&gt;
        __dbg = &lt;optimized out&gt;
        _g_boolean_var_588 = &lt;optimized out&gt;
        _g_boolean_var_589 = &lt;optimized out&gt;
        __txt = &lt;optimized out&gt;
        __dbg = &lt;optimized out&gt;
        _g_boolean_var_590 = &lt;optimized out&gt;
        _g_boolean_var_591 = &lt;optimized out&gt;
        final_data = &lt;optimized out&gt;
        final_length = &lt;optimized out&gt;
        final_fourcc = &lt;optimized out&gt;
        newmoov = &lt;optimized out&gt;
        __txt = &lt;optimized out&gt;
        __dbg = &lt;optimized out&gt;
        _g_boolean_var_592 = &lt;optimized out&gt;
        _g_boolean_var_593 = &lt;optimized out&gt;
        ftyp = &lt;optimized out&gt;
        styp = &lt;optimized out&gt;
        uuid = &lt;optimized out&gt;
        sidx = &lt;optimized out&gt;
        meta = &lt;optimized out&gt;
        node = &lt;optimized out&gt;
        child = &lt;optimized out&gt;
        child_data = &lt;optimized out&gt;
        unknown = &lt;optimized out&gt;
        _g_boolean_var_594 = &lt;optimized out&gt;
        _g_boolean_var_595 = &lt;optimized out&gt;
        _g_boolean_var_596 = &lt;optimized out&gt;
        _g_boolean_var_597 = &lt;optimized out&gt;
        _g_boolean_var_598 = &lt;optimized out&gt;
        _g_boolean_var_599 = &lt;optimized out&gt;
#14 gst_qtdemux_loop (pad=0x7f55a0004220) at ../gst/isomp4/qtdemux.c:7331
        qtdemux = 0x7f55a004bc60
        cur_offset = &lt;optimized out&gt;
        ret = &lt;optimized out&gt;
        __func__ = &quot;gst_qtdemux_loop&quot;
#15 0x00007f579f4d5ff4 in gst_task_func (task=0x7f55a01160a0) at ../gst/gsttask.c:399
        lock = 0x7f55a0004290
        tself = &lt;optimized out&gt;
        priv = &lt;optimized out&gt;
        __func__ = &quot;gst_task_func&quot;
#16 0x00007f579f6f0542 in g_thread_pool_thread_proxy (data=&lt;optimized out&gt;) at ../glib/gthreadpool.c:336
        task = 0x7f55a004bff0
        pool = 0xd833110
#17 0x00007f579f6ee813 in g_thread_proxy (data=0x7f5710000ed0) at ../glib/gthread.c:835
        thread = 0x7f5710000ed0
        __func__ = &quot;g_thread_proxy&quot;
#18 0x00007f579eea66d7 in start_thread (arg=&lt;optimized out&gt;) at pthread_create.c:447
        ret = &lt;optimized out&gt;
        pd = &lt;optimized out&gt;
        out = &lt;optimized out&gt;
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140006257592000, -8395858797854886906, 140006257592000, -208, 0, 140012590987040, -8395858797867469818, -8394805074425056250}, mask_was_saved = 0}}, priv = {pad = {0x0, 
              0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = &lt;optimized out&gt;
#19 0x00007f579ef2a414 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:100</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2063063</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-09-25 11:22:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/136692585&gt;</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>