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 161179 - [audioscale] quits with gmem assertion
[audioscale] quits with gmem assertion
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins
git master
Other Linux
: Normal normal
: 0.8.8
Assigned To: GStreamer Maintainers
GStreamer Maintainers
: 162704 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2004-12-13 17:51 UTC by Ross Burton
Modified: 2005-03-01 17:32 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Ross Burton 2004-12-13 17:51:39 UTC
CVS HEAD as of 2004-12-13, with this pipeline:

adder name=a ! fakesink { filesrc location=songs/disco.wav ! wavparse !
audioconvert ! audioscale ! queue ! a. } { filesrc location=songs/phone.wav !
wavparse ! audioconvert ! audioscale ! queue ! a. }

Results in:

GLib-ERROR **: gmem.c:140: failed to allocate 4294967284 bytes
aborting...

This is the stack from gdb.

Thread 3 (Thread -1216214096 (LWP 12265))

  • #0 __lll_mutex_unlock_wake
    from /lib/tls/libpthread.so.0
  • #1 _L_mutex_unlock_26
    from /lib/tls/libpthread.so.0
  • #2 ??
  • #3 ??
  • #4 pthread_mutex_unlock
    from /lib/tls/libpthread.so.0
  • #5 pthread_mutex_unlock
    from /lib/tls/libpthread.so.0
  • #6 pthread_mutex_unlock
    from /lib/tls/libc.so.6
  • #7 g_array_sized_new
    from /usr/lib/libglib-2.0.so.0
  • #8 gst_value_list_array_copy
    at gstvalue.c line 140
  • #9 gst_value_copy_list
    at gstvalue.c line 153
  • #10 g_value_copy
    from /usr/lib/libgobject-2.0.so.0
  • #11 gst_value_init_and_copy
    at gstvalue.c line 2258
  • #12 gst_value_list_array_copy
    at gstvalue.c line 143
  • #13 gst_value_copy_list
    at gstvalue.c line 153
  • #14 g_value_copy
    from /usr/lib/libgobject-2.0.so.0
  • #15 gst_value_init_and_copy
    at gstvalue.c line 2258
  • #16 gst_structure_copy
    at gststructure.c line 203
  • #17 gst_caps_copy
    at gstcaps.c line 210
  • #18 gst_caps_intersect
    at gstcaps.c line 833
  • #19 gst_pad_proxy_getcaps
    at gstpad.c line 2373
  • #20 gst_queue_getcaps
    at gstqueue.c line 381
  • #21 gst_pad_get_caps
    at gstpad.c line 2662
  • #22 gst_pad_renegotiate
    at gstpad.c line 1449
  • #23 gst_element_negotiate_pads
    at gstelement.c line 2853
  • #24 gst_element_change_state
    at gstelement.c line 2956
  • #25 gst_adder_change_state
    at gstadder.c line 512
  • #26 gst_element_set_state_func
    at gstelement.c line 2796
  • #27 gst_element_set_state
    at gstelement.c line 2739
  • #28 gst_parse_element_lock
    at grammar.y line 319
  • #29 gst_parse_element_lock
    at grammar.y line 333
  • #30 gst_parse_element_lock
    at grammar.y line 333
  • #31 gst_parse_element_lock
    at grammar.y line 333
  • #32 gst_parse_found_pad
    at grammar.y line 356
  • #33 g_cclosure_marshal_VOID__OBJECT
    from /usr/lib/libgobject-2.0.so.0
  • #34 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #35 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #36 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #37 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #38 gst_element_add_pad
    at gstelement.c line 1147
  • #39 gst_wavparse_fmt
    at gstwavparse.c line 563
  • #40 gst_wavparse_loop
    at gstwavparse.c line 777
  • #41 loop_group_schedule_function
    at gstoptimalscheduler.c line 1330
  • #42 schedule_group
    at gstoptimalscheduler.c line 1152
  • #43 gst_opt_scheduler_schedule_run_queue
    at gstoptimalscheduler.c line 1203
  • #44 schedule_chain
    at gstoptimalscheduler.c line 1256
  • #45 gst_opt_scheduler_iterate
    at gstoptimalscheduler.c line 2618
  • #46 gst_scheduler_iterate
    at gstscheduler.c line 738
  • #47 gst_bin_iterate_func
    at gstbin.c line 1216
  • #48 gst_marshal_BOOLEAN__VOID
    at gstmarshal.c line 509
  • #49 g_cclosure_new_swap
    from /usr/lib/libgobject-2.0.so.0
  • #50 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #51 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #52 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #53 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #54 gst_bin_iterate
    at gstbin.c line 1269
  • #55 gst_thread_main_loop
    at gstthread.c line 671
  • #56 g_static_private_free
    from /usr/lib/libglib-2.0.so.0
  • #57 start_thread
    from /lib/tls/libpthread.so.0
  • #58 clone
    from /lib/tls/libc.so.6

Thread 2 (Thread -1214116944 (LWP 12264))

  • #0 raise
    from /lib/tls/libc.so.6
  • #1 abort
    from /lib/tls/libc.so.6
  • #2 g_logv
    from /usr/lib/libglib-2.0.so.0
  • #3 g_log
    from /usr/lib/libglib-2.0.so.0
  • #4 g_malloc
    from /usr/lib/libglib-2.0.so.0
  • #5 gst_audioscale_get_buffer
    at gstaudioscale.c line 457
  • #6 gst_resample_scale
    at resample.c line 168
  • #7 gst_audioscale_chain
    at gstaudioscale.c line 656
  • #8 gst_pad_call_chain_function
    at gstpad.c line 4430
  • #9 gst_pad_push
    at gstpad.c line 3241
  • #10 gst_audio_convert_chain
    at gstaudioconvert.c line 267
  • #11 gst_pad_call_chain_function
    at gstpad.c line 4430
  • #12 gst_pad_push
    at gstpad.c line 3241
  • #13 gst_wavparse_loop
    at gstwavparse.c line 752
  • #14 loop_group_schedule_function
    at gstoptimalscheduler.c line 1330
  • #15 schedule_group
    at gstoptimalscheduler.c line 1152
  • #16 gst_opt_scheduler_schedule_run_queue
    at gstoptimalscheduler.c line 1203
  • #17 schedule_chain
    at gstoptimalscheduler.c line 1256
  • #18 gst_opt_scheduler_iterate
    at gstoptimalscheduler.c line 2618
  • #19 gst_scheduler_iterate
    at gstscheduler.c line 738
  • #20 gst_bin_iterate_func
    at gstbin.c line 1216
  • #21 gst_marshal_BOOLEAN__VOID
    at gstmarshal.c line 509
  • #22 g_cclosure_new_swap
    from /usr/lib/libgobject-2.0.so.0
  • #23 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #24 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #25 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #26 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #27 gst_bin_iterate
    at gstbin.c line 1269
  • #28 gst_thread_main_loop
    at gstthread.c line 671
  • #29 g_static_private_free
    from /usr/lib/libglib-2.0.so.0
  • #30 start_thread
    from /lib/tls/libpthread.so.0
  • #31 clone
    from /lib/tls/libc.so.6

Thread 1 (Thread -1211676224 (LWP 12259))

  • #0 __nanosleep_nocancel
    from /lib/tls/libc.so.6
  • #1 g_usleep
    from /usr/lib/libglib-2.0.so.0
  • #2 gst_bin_iterate_func
    at gstbin.c line 1235
  • #3 gst_marshal_BOOLEAN__VOID
    at gstmarshal.c line 509
  • #4 g_cclosure_new_swap
    from /usr/lib/libgobject-2.0.so.0
  • #5 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #6 g_signal_emit_by_name
    from /usr/lib/libgobject-2.0.so.0
  • #7 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #8 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #9 gst_bin_iterate
    at gstbin.c line 1269
  • #10 idle_func
    at gst-launch.c line 79
  • #11 g_child_watch_add
    from /usr/lib/libglib-2.0.so.0
  • #12 g_main_depth
    from /usr/lib/libglib-2.0.so.0
  • #13 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #14 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #15 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #16 gst_main
    at gst.c line 862
  • #17 main
    at gst-launch.c line 542
  • #0 raise
    from /lib/tls/libc.so.6

Comment 1 Ronald Bultje 2004-12-13 18:09:53 UTC
Adder has some invalid stuff in its loop function. It does a single peek(), then
breaks out of the loop if that gives an event (which all streams start with...)
and then checks if width != 0. Problem is that some formats only set format
(width) at runtime.

The loop in adder needs some fixes. All the rest (your g_malloc() failure, but
also the width = 0 warnings and everything) is a consequence of this, I think...
Comment 2 Ronald Bultje 2005-01-03 17:51:26 UTC
*** Bug 162704 has been marked as a duplicate of this bug. ***
Comment 3 Ronald Bultje 2005-01-03 17:56:43 UTC
So with Miron's bug dup'ed, this isn't only in adder anymore. Audioscale needs
some smartness in resampling, it shouldn't resample empty input. I'll poke
around with this soon.
Comment 4 Ronald Bultje 2005-03-01 17:32:08 UTC
Fixed...