Segmentation fault (core dumped) error
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SoundConverter |
Invalid
|
Undecided
|
GautierPortet |
Bug Description
There are some musics I'm trying to convert (from .flac to .ogg) and it's not working. It just freeze and close.
When I started in terminal using "soundconverter" command, and tried again, it happened the same, and the output was Segmentation fault (core dumped).
Jesse N. Richardson (richardson183) wrote : | #1 |
GautierPortet (kassoulet) wrote : | #2 |
Can you retry with the "soundconverter --debug" command, and paste here the output please ?
Changed in soundconverter: | |
assignee: | nobody → GautierPortet (kassoulet) |
status: | New → Incomplete |
Kollins (kol-lins) wrote : | #3 |
The file name is 01. All That She Wants.flac (complete path = /home/kollins/
There are two directories on /home/kollins/
There aren't any difference in the file names, I mean, all songs has the same pattern ("number. name. flac"), in both directories.
The problem happens in some others cases, here is just one.
Here is the output using the "soundconverter --debug":
SoundConverter 2.1.5
** Message: pygobject_
using Gstreamer version: 0.10.36
using 4 thread(s)
using gio
Queue start: 1 tasks, 4 thread(s).
launching: 'giosrc location=
have_type: audio/x-flac 01. All That She Wants.flac
Queue done in 0.004s (1 tasks)
found_type 01.%20All%
Queue start: 1 tasks, 4 thread(s).
launching: 'giosrc location=
got file duration: 214
found_tags: 01. All That She Wants.flac
album=The Sign (<type 'unicode'>)
track-number=1 (<type 'int'>)
artist=Ace of Base (<type 'unicode'>)
title=All That She Wants (<type 'unicode'>)
genre=Dance (<type 'unicode'>)
track-count=12 (<type 'int'>)
date=<GstDate: 1/1/1993> (<type 'gst.Date'>)
found_tags: 01. All That She Wants.flac
found_tags: 01. All That She Wants.flac
album=The Sign (<type 'unicode'>)
track-number=1 (<type 'int'>)
artist=Ace of Base (<type 'unicode'>)
title=All That She Wants (<type 'unicode'>)
genre=Dance (<type 'unicode'>)
track-count=12 (<type 'int'>)
date=<GstDate: 1/1/1993> (<type 'gst.Date'>)
Segmentation fault (core dumped)
Kollins (kol-lins) wrote : | #4 |
Just to complement. Here is the name of all songs:
The Bridge (conversion ok)
path: /home/kollins/
01. Beautiful Life.flac
02. Never Gonna Say I'm Sorry.flac
03. Lucky Love.flac
10. My Déjà Vu.flac
17. Blooming 18.flac
The Sign (conversion fail in any song)
path: /home/kollins/
01. All That She Wants.flac
02. Don't Turn Around.flac
03. Young And Proud.flac
04. The Sign.flac
05. Living In Danger.flac
08. Waiting for Magic.flac
09. Happy Nation.flac
10. Voulez-Vous Danser.flac
Michael Schwendt (mschwendt) wrote : | #5 |
> Segmentation fault (core dumped)
Considering that SoundConverter is written in Python, a low-level segmentation fault indicates that some backend library troubles you.
Which Linux distribution is this with? Can you gather some details about FLAC related library versions? And also about Ogg Vorbis versions (since that's your target format)?
Kollins (kol-lins) wrote : | #6 |
I'm using fedora 22 64-bits.
I don't really know how to get the information about FLAC related libraty and ogg.
I typed "flac -h" and "ogginfo -h" and I got this information:
-------
flac - Command-line FLAC encoder/decoder version 1.3.1
Copyright (C) 2000-2009 Josh Coalson
Copyright (C) 2011-2014 Xiph.Org Foundation
-------
ogginfo from vorbis-tools 1.4.0
by the Xiph.Org Foundation (http://
(c) 2003-2005 Michael Smith <email address hidden>
-------
Does it help? If it doesn't, what should I do to get the information about flac and ogg library?
Michael Schwendt (mschwendt) wrote : | #7 |
> fedora 22 64-bits
Odd. I'm still using that one too next to Rawhide (F24 development).
Did the ABRT tool intercept any crash information?
Can you run the following command in a terminal? (all on one line)
gst-launch-0.10 giosrc location=
It's the GStreamer pipeline that converts the .flac file to .ogg. What do you get?
Kollins (kol-lins) wrote : | #8 |
I didn't get any crash information, it just freeze and close as I said.
Running the command, it gave me the same error:
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Redistribute latency...
Segmentation fault (core dumped)
Michael Schwendt (mschwendt) wrote : | #9 |
> I didn't get any crash information
What Fedora 22 product do you use? GNOME Workstation? Or a different one?
Normally, the ABRT (Automatic Bug Reporting Tool) would intercept crashes and make it convenient to submit stacktraces in the Fedora bug tracker. Have you used ABRT before? Perhaps you use a product, where abrtd is not running?
What you've shown in comment 8 is that native GStreamer 0.10 is affected by the problem. That gst-launch command doesn't involve SoundConverter at all.
So, it's not a bug in SoundConverter. Something's bad about those FLAC files that manages to break your GStreamer version 0.10 decoder - or perhaps the Ogg Vorbis encoder.
Does running flac -t on the "All That She Wants" file turn up anything?
And what do you get for
rpm -q gstreamer-
rpm -V gstreamer-
...?
Does the following fail, too?
gst-launch-0.10 filesrc location=
Michael Schwendt (mschwendt) wrote : | #10 |
It would also be possible to run the segfaulting command within gdb and create a backtrace that way. Provided that any needed -debuginfo packages are installed (via "dnf debuginfo-install …" for the relevant gstreamer packages).
Kollins (kol-lins) wrote : | #11 |
> What Fedora 22 product do you use? GNOME Workstation? Or a different one?
Yes, I'm using Fedora 22 Workstation but I changed GNOME to MATE.
> Does running flac -t on the "All That She Wants" file turn up anything?
I got this:
-------
flac 1.3.1, Copyright (C) 2000-2009 Josh Coalson, 2011-2014 Xiph.Org Foundation
flac comes with ABSOLUTELY NO WARRANTY. This is free software, and you are
welcome to redistribute it under certain conditions. Type `flac' for details.
01. All That She Wants.flac: ok
-------
Running rpm -q gstreamer-
-------
gstreamer-
gstreamer-
-------
And rpm -V gstreamer-
Finally running gst-launch-0.10 filesrc location=
-------
Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:
Additional debug info:
gstfilesrc.c(1042): gst_file_src_start (): /GstPipeline:
No such file "file:/
Setting pipeline to NULL ...
Freeing pipeline ...
-------
Kollins (kol-lins) wrote : | #12 |
> Have you used ABRT before?
Actually, no.
I opened it and I found something about SoundConverter that says:
Sound Converter quit unexpectedly
The application encountered a problem and could not continue.
In details, the the first line (reason) says:
python2.7 killed by SIGSEGV
I reported that.
Michael Schwendt (mschwendt) wrote : | #13 |
> No such file "file:/
Sorry. "filsrc" doesn't understand URIs. Try this one, please:
gst-launch-0.10 giosrc location=
The invocation with "filesrc" would take a plain path to the file instead. Probably copying the file to a much simpler name would help for testing. It would look like:
gst-launch-0.10 filesrc location=
Both commands should play back the file. Assuming it will cause a segfault as well, the next step could be to run the command in gdb and fetch a stacktrace. Provided you're still interested.
Anyway, it's a bug in GStreamer 0.10.x (or a library used by GStreamer).
Perhaps music players based on GStreamer 0.10.x, such as "guayadeque", will also crash. It could also be interesting to test the same FLAC files in programs based on GStreamer 1.0 (which is included in Fedora 22, too), such as gnome-music, snappy-player or rhythmbox.
Michael Schwendt (mschwendt) wrote : | #14 |
An even simpler pipeline seems to me this one:
gst-launch-0.10 playbin uri=file:
Normally, Fedora ABRT would intercept any segfault caused by that command. Not sure about the Mate spin.
Kollins (kol-lins) wrote : | #15 |
All the tree commands worked the same way, playing the file with no problem:
-------
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstAudioSinkClock
Got EOS from element "pipeline0".
Execution ended after 214535132855 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
-------
Michael Schwendt (mschwendt) wrote : | #16 |
Interesting. Then the FLAC decoding in GStreamer works and some other plugin is broken.
In case you want to try creating a backtrace, this would be one way:
dnf install gdb
dnf debuginfo-install gstreamer-
Then run gdb:
gdb gst-launch-0.10
In gdb enter:
set logging on
run giosrc location=
thread apply all bt
Maybe that will give some insight in the output file gdb.txt. Letting ABRT do that automatically would be the more convenient way, but I don't know why ABRT is not working (well) on your machine.
Kollins (kol-lins) wrote : | #17 |
> Maybe that will give some insight in the output file gdb.txt
The output now was:
-------
Starting program: /usr/bin/
/bin/bash: -c: line 0: unexpected EOF while looking for matching `"'
/bin/bash: -c: line 1: syntax error: unexpected end of file
During startup program exited with code 1.
-------
I also looked at ABRT and there is nothing there.
Michael Schwendt (mschwendt) wrote : | #18 |
> /bin/bash: -c: line 0: unexpected EOF while looking for matching `"'
Then run it in gdb without '"' quote characters in the file:// uris. All space characters (%20) are escaped already, so quotes are not necessary:
run giosrc location=
Kollins (kol-lins) wrote : | #19 |
Now I got this:
-------
Starting program: /usr/bin/
ollins/
ac name=src ! decodebin name=decoder ! audiorate tolerance=10000000 ! aud
ioconvert ! audioresample ! vorbisenc quality=1.0 ! oggmux ! giosink loca
tion=file:
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/
[New Thread 0x7fffe93c1700 (LWP 8702)]
[New Thread 0x7fffec6e4700 (LWP 8123)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffe93c1700 (LWP 8702)]
0x00007fffea2fffbf in strcpy (
__src=
__dest=
89537c0>) at /usr/include/
warning: Source file is more recent than executable.
104 }
Missing separate debuginfos, use: dnf debuginfo-install gvfs-1.24.1-2.fc2
2.x86_64 libbluray-
-------
Michael Schwendt (mschwendt) wrote : | #20 |
> Missing separate debuginfos, use: dnf debuginfo-install gvfs-1.
(!)
First of all, installing them would be recommended.
And is that all you've got within gdb? Or have you not entered the command from comment 16 to create a full backtrace in file gdb.txt? The detailed output would include specific source files and line numbers.
A crash in strcpy() and a mention of "METADATA_
$ cd gstreamer-
$ grep METADATA_
gst-plugins-
gst-plugins-
gst-plugins-
gst-plugins-
gst-plugins-
gst-plugins-
gst-plugins-
gst-plugins-
gst-plugins-
gst-plugins-
So far, it looks like it crashes in gst_tag_
Kollins (kol-lins) wrote : | #21 |
I installed the missing programs and tried again, now this was the output:
-------
Starting program: /usr/bin/
ame=src ! decodebin name=decoder ! audiorate tolerance=10000000 ! audioconvert ! audioresample ! vorbisenc quality=1.0 ! oggmux ! giosink location=fil
e:///home/
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/
[New Thread 0x7fffe93c1700 (LWP 8702)]
[New Thread 0x7fffec6e4700 (LWP 8123)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffe93c1700 (LWP 8702)]
0x00007fffea2fffbf in strcpy (
__src=
__dest=
warning: Source file is more recent than executable.
104 }
Missing separate debuginfos, use: dnf debuginfo-install gvfs-1.
Starting program: /usr/bin/
ame=src ! decodebin name=decoder ! audiorate tolerance=10000000 ! audioconvert ! audioresample ! vorbisenc quality=1.0 ! oggmux ! giosink location=fil
e:///home/
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/
[New Thread 0x7fffe93c1700 (LWP 25699)]
[New Thread 0x7fffec6e4700 (LWP 25698)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffe93c1700 (LWP 25699)]
0x00007fffea2fffbf in strcpy (__src=
__dest=
warning: Source file is more recent than executable.
104 }
-------
Michael Schwendt (mschwendt) wrote : | #22 |
Where is the file gdb.txt? Are you really following my instructions? Once you've got the file, you could attach it (instead of copying from the screen).
I cannot spend time on this anymore.
I've opened https:/
Kollins (kol-lins) wrote : | #23 |
Michael Schwendt (mschwendt) wrote : | #24 |
Again, the "thread apply all bt" command at the (gdb) prompt is missing. See comment 16. You will likely get two or more screen of stacktrace output, which will be logged in file gdb.txt.
Michael Schwendt (mschwendt) wrote : | #25 |
Session likely will look like this:
$ gdb gst-launch-0.10
(gdb) set logging on
(gdb) run giosrc location=
(gdb) thread apply all bt
RETURN, RETURN, RETURN a few times probably
(gdb) quit
Michael Schwendt (mschwendt) wrote : | #26 |
And in there is the wrong " as a typo I've made previously when constructing those file paths I don't have here. ;-)
Kollins (kol-lins) wrote : | #27 |
Michael Schwendt (mschwendt) wrote : | #28 |
Thanks!
Whatever is done with that METADATA_
GautierPortet (kassoulet) wrote : | #29 |
Good catch.
Very good work from both of you, thank you very much for your help.
Merking as invalid as it's in GStreamer.
Changed in soundconverter: | |
status: | Incomplete → Invalid |
Is the file names something weird? I've had issues in the past with SoundConverter doing weird things with bad filenames.