After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 672404 - [mpegtsbase] eos event handling error
[mpegtsbase] eos event handling error
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other All
: Normal major
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2012-03-19 16:09 UTC by Gil Pedersen
Modified: 2012-04-12 14:01 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
proposed patch (1.25 KB, patch)
2012-03-19 16:09 UTC, Gil Pedersen
none Details | Review

Description Gil Pedersen 2012-03-19 16:09:20 UTC
Created attachment 210095 [details] [review]
proposed patch

The module will report a "CRITICAL **: g_hash_table_foreach: assertion `version == hash_table->version' failed" error on the EOS event.

Thread 6 (Thread 0x7fffebfff700 (LWP 8824))

  • #0 g_log
    from /lib/x86_64-linux-gnu/libglib-2.0.so.0
  • #1 gst_mpegts_base_handle_eos
    at mpegtsbase.c line 1253
  • #2 mpegts_base_sink_event
    at mpegtsbase.c line 1301
  • #3 gst_pad_send_event
    at gstpad.c line 5425
  • #4 gst_pad_push_event
    at gstpad.c line 5277

A quick analysis shows that this is caused by removing elements of the program hash table while iterating over it, which is not allowed.
Comment 1 Edward Hervey 2012-03-20 15:26:28 UTC
That seems like the wrong approach (getting a list of the keys for removing entries in a hash table).
Comment 2 Edward Hervey 2012-03-20 15:27:47 UTC
g_hash_table_remove_all() or g_hash_table_foreach_remove() seem more appropriate.
Comment 3 Gil Pedersen 2012-03-20 15:31:47 UTC
I am not getting a list of keys, I'm getting a list of values.

Anyway, my initial approach was towards g_hash_table_foreach_remove() however I had to mess with quite a bit of code to do it, so I opted for this somewhat clean approach.

Feel free to make an alternative fix.
Comment 4 Gil Pedersen 2012-04-12 14:01:08 UTC
This patch is no longer relevant after commit 881350f34cac858be52ce5b59e71ed7069bcb17a.