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 775898 - scaletempo: crash in Totem when doing Slow -> Fast -> Slow playback
scaletempo: crash in Totem when doing Slow -> Fast -> Slow playback
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
1.10.x
Other Linux
: High critical
: 1.10.3
Assigned To: GStreamer Maintainers
GStreamer Maintainers
: 775499 775923 777602 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2016-12-09 19:30 UTC by Jean-François Fortin Tam
Modified: 2017-01-23 08:20 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Jean-François Fortin Tam 2016-12-09 19:30:59 UTC
Tried out the speed control in the new Totem with some MP3 files. Opened one, set the speed to 0.75x, then clicked another in Nautilus to open it. It started playing, at normal speed; going into the speed menu, it still said 0.75x. I set it back to "normal" speed, no audible change. Then I tried setting it back to 0.75x speed, which then makes totem crash (every time, on Fedora 25).
Comment 1 Bastien Nocera 2016-12-09 21:30:46 UTC
Thanks for taking the time to report this.
Without a stack trace from the crash it's very hard to determine what caused it.
Can you get us a stack trace? Please see https://wiki.gnome.org/Community/GettingInTouch/Bugzilla/GettingTraces for more information on how to do so. When pasting a stack trace in this bug report, please reset the status of this bug report from NEEDINFO to its previous status. Thanks in advance!
Comment 2 Jean-François Fortin Tam 2016-12-10 02:10:05 UTC
Hmmm, I'd like to help (I presume it does not happen on your machine), but Totem does not have the ability to open custom files easily anymore (no ctrl+O nor "Open file" menus like it used to have, AFAICS), nor does it let me search for recently used MP3 files... and the way I triggered the problem was by opening the files in Totem through Nautilus, which means I can't just launch "gdb totem" or "gdb nautilus" and reproduce it through gdb with my current knowledge. I'd need some pointers please.
Comment 3 Jean-François Fortin Tam 2016-12-10 02:33:02 UTC
ABRT to the rescue! https://bugzilla.redhat.com/show_bug.cgi?id=1403418
Comment 4 Bastien Nocera 2016-12-10 14:26:33 UTC
gdb --args totem foobar.mp3
and get the backtrace.

Anyway, backtrace from the downstream bug:
#0 __memmove_avx_unaligned_erms at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:396
 #1 memcpy at /usr/include/bits/string3.h:53
 #2 fill_queue at gstscaletempo.c:261
 #3 gst_scaletempo_transform at gstscaletempo.c:490
 #4 default_generate_output at gstbasetransform.c:2183
 #5 gst_base_transform_chain at gstbasetransform.c:2336
 #6 gst_pad_chain_data_unchecked at gstpad.c:4205
 #7 gst_pad_push_data at gstpad.c:4457
 #8 gst_pad_push at gstpad.c:4576
 #9 gst_base_transform_chain at gstbasetransform.c:2372
Comment 5 Bastien Nocera 2016-12-10 14:28:03 UTC
Let's try again.

[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `/usr/bin/totem --gapplication-service'.
Program terminated with signal SIGSEGV, Segmentation fault.

Thread 1 (Thread 0x7f66f2585700 (LWP 17536))

  • #0 __memmove_avx_unaligned_erms
    at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S line 396
  • #1 memcpy
    at /usr/include/bits/string3.h line 53
  • #2 fill_queue
    at gstscaletempo.c line 261
  • #3 gst_scaletempo_transform
    at gstscaletempo.c line 490
  • #4 default_generate_output
    at gstbasetransform.c line 2183
  • #5 gst_base_transform_chain
    at gstbasetransform.c line 2336
  • #6 gst_pad_chain_data_unchecked
    at gstpad.c line 4205
  • #7 gst_pad_push_data
    at gstpad.c line 4457
  • #8 gst_pad_push
    at gstpad.c line 4576
  • #9 gst_base_transform_chain
    at gstbasetransform.c line 2372
  • #10 gst_pad_chain_data_unchecked
    at gstpad.c line 4205
  • #11 gst_pad_push_data
    at gstpad.c line 4457
  • #12 gst_pad_push
    at gstpad.c line 4576
  • #13 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #14 gst_pad_chain_data_unchecked
    at gstpad.c line 4205
  • #15 gst_pad_push_data
    at gstpad.c line 4457
  • #16 gst_pad_push
    at gstpad.c line 4576
  • #17 gst_stream_synchronizer_sink_chain
    at gststreamsynchronizer.c line 710
  • #18 gst_pad_chain_data_unchecked
    at gstpad.c line 4205
  • #19 gst_pad_push_data
    at gstpad.c line 4457
  • #20 gst_pad_push
    at gstpad.c line 4576
  • #21 gst_tee_handle_data
    at gsttee.c line 656
  • #22 gst_tee_chain
    at gsttee.c line 779
  • #23 gst_pad_chain_data_unchecked
    at gstpad.c line 4205
  • #24 gst_pad_push_data
    at gstpad.c line 4457
  • #25 gst_pad_push
    at gstpad.c line 4576
  • #26 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #27 gst_pad_chain_data_unchecked
    at gstpad.c line 4205
  • #28 gst_pad_push_data
    at gstpad.c line 4457
  • #29 gst_pad_push
    at gstpad.c line 4576
  • #30 gst_selector_pad_chain
    at gstinputselector.c line 1136
  • #31 gst_pad_chain_data_unchecked
    at gstpad.c line 4205
  • #32 gst_pad_push_data
    at gstpad.c line 4457
  • #33 gst_pad_push
    at gstpad.c line 4576
  • #34 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #35 gst_pad_chain_data_unchecked
    at gstpad.c line 4205
  • #36 gst_pad_push_data
    at gstpad.c line 4457
  • #37 gst_pad_push
    at gstpad.c line 4576
  • #38 gst_proxy_pad_chain_default
    at gstghostpad.c line 126
  • #39 gst_pad_chain_data_unchecked
    at gstpad.c line 4205
  • #40 gst_pad_push_data
    at gstpad.c line 4457
  • #41 gst_pad_push
    at gstpad.c line 4576
  • #42 gst_audio_decoder_push_forward
    at gstaudiodecoder.c line 986
  • #43 gst_audio_decoder_output
    at gstaudiodecoder.c line 1062
  • #44 gst_audio_decoder_finish_frame
    at gstaudiodecoder.c line 1406
  • #45 gst_mad_handle_frame
    at gstmad.c line 489
  • #46 gst_audio_decoder_push_buffers
    at gstaudiodecoder.c line 1566
  • #47 gst_audio_decoder_chain_forward
    at gstaudiodecoder.c line 1680
  • #48 gst_audio_decoder_chain
    at gstaudiodecoder.c line 1940
  • #49 gst_pad_chain_data_unchecked
    at gstpad.c line 4205
  • #50 gst_pad_push_data
    at gstpad.c line 4457
  • #51 gst_pad_push
    at gstpad.c line 4576
  • #52 gst_base_parse_push_frame
    at gstbaseparse.c line 2543
  • #53 gst_base_parse_handle_and_push_frame
    at gstbaseparse.c line 2360
  • #54 gst_base_parse_finish_frame
    at gstbaseparse.c line 2701
  • #55 gst_mpeg_audio_parse_handle_frame
    at gstmpegaudioparse.c line 769
  • #56 gst_base_parse_handle_buffer
    at gstbaseparse.c line 2168
  • #57 gst_base_parse_scan_frame
    at gstbaseparse.c line 3461
  • #58 gst_base_parse_loop
    at gstbaseparse.c line 3540
  • #59 gst_task_func
    at gsttask.c line 334
  • #60 g_thread_pool_thread_proxy
    at gthreadpool.c line 307
  • #61 g_thread_proxy
    at gthread.c line 784
  • #62 start_thread
    at pthread_create.c line 333
  • #63 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 105

Comment 6 Bastien Nocera 2016-12-10 14:29:55 UTC
*** Bug 775923 has been marked as a duplicate of this bug. ***
Comment 7 Tim-Philipp Müller 2016-12-10 14:45:11 UTC
Updating bug description to something more useful.
Comment 8 Sebastian Dröge (slomo) 2016-12-10 15:56:29 UTC
omap / pout being NULL is probably problematic. Can you get a debug log also, ideally a full one at level 6?

Will take a look later, but this was definitely working some weeks before 1.10 with the playback-test application. Which exact version of gst-plugins-good is that?
Comment 9 Jean-François Fortin Tam 2016-12-10 19:02:21 UTC
That's gst plugins good 1.10.2 from Fedora 25...

I don't really know how to get debug logs or gdb output out of this because you need to launch 2-3 files "in succession" without stopping the app, so it's not like you can just do that from the commandline AFAIK...
Comment 10 Tim-Philipp Müller 2016-12-10 20:37:24 UTC
Can't you just do  totem foo1.mp3 foo2.mp3 foo3.mp3 ?
Comment 11 Bastien Nocera 2016-12-11 01:27:59 UTC
(In reply to Tim-Philipp Müller from comment #10)
> Can't you just do  totem foo1.mp3 foo2.mp3 foo3.mp3 ?

As I already mentioned in comment 4. Not sure why it's that weird.

(In reply to Jean-François Fortin Tam from comment #9)
> That's gst plugins good 1.10.2 from Fedora 25...
> 
> I don't really know how to get debug logs

https://wiki.gnome.org/Apps/Videos/BugReporting
Comment 12 Sebastian Dröge (slomo) 2016-12-11 11:03:06 UTC
I can reproduce it
Comment 13 Sebastian Dröge (slomo) 2016-12-11 11:29:31 UTC
Backporting to 1.10 later. Please confirm that this also fixes the problem for you.


commit fe2ae2c0f7fccb6e9cb483a188a15e9d4ea2909e
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Sun Dec 11 13:27:27 2016 +0200

    scaletempo: Ensure to reinit buffers whenever they were not allocated yet
    
    That is, whenever we go through start/stop we have to ensure that on the
    next opportunity the buffers are reallocated again. Otherwise the
    buffers might be NULL because the element was reused with the same
    configuration as before (i.e. set_caps() wouldn't have reinited the
    buffers).
    
    https://bugzilla.gnome.org/show_bug.cgi?id=775898
Comment 14 Bastien Nocera 2017-01-02 15:39:19 UTC
*** Bug 775499 has been marked as a duplicate of this bug. ***
Comment 15 Bastien Nocera 2017-01-23 08:20:26 UTC
*** Bug 777602 has been marked as a duplicate of this bug. ***