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 742350 - Crash on saving changed file
Crash on saving changed file
Status: RESOLVED FIXED
Product: easytag
Classification: Other
Component: general
2.3.x
Other Linux
: Normal critical
: 2.2
Assigned To: EasyTAG maintainer(s)
EasyTAG maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2015-01-05 03:54 UTC by J.B. Nicholson
Modified: 2015-01-07 09:36 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description J.B. Nicholson 2015-01-05 03:54:12 UTC
EasyTAG 2.3.3 appears to crash whenever I save a file with an altered tag. The new tag value is saved, but the program dies with a segmentation fault. I've tried changing only one tag -- making the Genre different -- but I don't think it matters which tag I edit to get this result.

I can edit the file with metaflac, so I don't think I'm dealing with a corrupt FLAC file issue. I can repeat this crash no matter which file I edit.

Running the program from the command line yields:

$ easytag ~/test-easytag-crashing/

** (easytag:32054): CRITICAL **: ET_Save_File_Data_From_UI: assertion 'ETFile != NULL && ETFile->FileNameCur != NULL && ETFile->FileNameCur->data != NULL' failed

** (easytag:32054): CRITICAL **: ET_Save_File_Data_From_UI: assertion 'ETFile != NULL && ETFile->FileNameCur != NULL && ETFile->FileNameCur->data != NULL' failed

** (easytag:32054): CRITICAL **: ET_Save_File_Data_From_UI: assertion 'ETFile != NULL && ETFile->FileNameCur != NULL && ETFile->FileNameCur->data != NULL' failed

Please advise.
Comment 1 David King 2015-01-05 10:18:53 UTC
The crash is probably related to refactoring of the FLAC tagging code that happened between 2.3.2 and 2.3.3. You will need to get a stack track so that I can debug further:

https://wiki.gnome.org/Community/GettingInTouch/Bugzilla/GettingTraces/Details#Getting_Stack_Traces_--_Detailed_Version

Be sure to paste the full stack trace into this report (do not add it as an attachment).
Comment 2 J.B. Nicholson 2015-01-06 01:17:54 UTC
Thanks for the pointer to the docs on getting a stacktrace with gdb.

I'm not sure how to get you the information you need (like in Thread 1, backtrace #0 through #7 and #44) from the stacktrace I've got:

Thread 1 (Thread 0x7ffff7fbb9c0 (LWP 15112))

  • #0 ??
  • #1 ??
  • #2 ??
  • #3 ??
  • #4 ??
  • #5 ??
  • #6 ??
  • #7 g_closure_invoke
    at /build/buildd/glib2.0-2.40.2/./gobject/gclosure.c line 768
  • #8 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3551
  • #9 g_signal_emit_valist
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3307
  • #10 g_signal_emit
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3363
  • #11 g_simple_action_activate
    at /build/buildd/glib2.0-2.40.2/./gio/gsimpleaction.c line 211
  • #12 gtk_action_muxer_activate_action
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkactionmuxer.c line 375
  • #13 gtk_action_muxer_activate_action
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkactionmuxer.c line 377
  • #14 gtk_action_muxer_activate_action
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkactionmuxer.c line 377
  • #15 gtk_action_muxer_activate_action
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkactionmuxer.c line 377
  • #16 gtk_action_muxer_activate_action
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkactionmuxer.c line 377
  • #17 gtk_real_button_clicked
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkbutton.c line 2118
  • #18 g_closure_invoke
  • #19 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3621
  • #20 g_signal_emit_valist
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3307
  • #21 g_signal_emit
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3363
  • #22 gtk_real_button_released
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkbutton.c line 2106
  • #23 _g_closure_invoke_va
    at /build/buildd/glib2.0-2.40.2/./gobject/gclosure.c line 831
  • #24 g_signal_emit_valist
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3215
  • #25 g_signal_emit
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3363
  • #26 gtk_button_button_release
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkbutton.c line 1938
  • #27 _gtk_marshal_BOOLEAN__BOXEDv
    at gtkmarshalers.c line 130
  • #28 _g_closure_invoke_va
    at /build/buildd/glib2.0-2.40.2/./gobject/gclosure.c line 831
  • #29 g_signal_emit_valist
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3215
  • #30 g_signal_emit
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3363
  • #31 gtk_widget_event_internal
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkwidget.c line 7168
  • #32 gtk_widget_event
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkwidget.c line 6830
  • #33 propagate_event_up
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkmain.c line 2401
  • #34 propagate_event
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkmain.c line 2509
  • #35 gtk_main_do_event
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkmain.c line 1714
  • #36 gdk_event_source_dispatch
    at /build/buildd/gtk+3.0-3.10.8/./gdk/x11/gdkeventsource.c line 364
  • #37 g_main_dispatch
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3064
  • #38 g_main_context_dispatch
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3663
  • #39 g_main_context_iterate
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3734
  • #40 g_main_context_iteration
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3795
  • #41 g_application_run
    at /build/buildd/glib2.0-2.40.2/./gio/gapplication.c line 2115
  • #42 ??
  • #43 __libc_start_main
    at libc-start.c line 287
  • #44 ??

I installed some -dbg packages (glib-networking-dbg, libglib2.0-0-dbg, libglib2.0-0-refdbg, libdconf-dbg, libgtk-3-0-dbg) to try providing info for the other "??" traces I was getting but I don't know what else I need to install to show the full backtrace info. Suggestions welcome.
Comment 3 David King 2015-01-06 10:25:04 UTC
Thanks for the stack trace! The missing information is probably caused by missing debug symbols for easytag, as there are no EasyTAG functions in any of the traces. I just updated the Debian and PPA packages to add a easytag-dbg (and easytag-nautilus-dbg) package, which contains the debug symbols for the corresponding package. If you install those packages and then acquire another stack trace, it should have all the EasyTAG symbols included.
Comment 4 J.B. Nicholson 2015-01-06 23:57:10 UTC
Thanks for the debug version! Here's an updated stack trace using the easytag-dbg EasyTAG:

Thread 1 (Thread 0x7ffff7fbb9c0 (LWP 431))

  • #0 et_id3tag_get_tpos_from_file_tag
    at src/tags/id3_tag.c line 97
  • #1 id3tag_write_file_v24tag
    at src/tags/id3v24_tag.c line 1056
  • #2 id3tag_write_file_tag
    at src/tags/id3_tag.c line 1547
  • #3 flac_tag_write_file_tag
    at src/tags/flac_tag.c line 1237
  • #4 ET_Save_File_Tag_To_HD
    at src/file.c line 1861
  • #5 Write_File_Tag
    at src/easytag.c line 860
  • #6 Save_File
    at src/easytag.c line 502
  • #7 Save_List_Of_Files
    at src/easytag.c line 305
  • #8 Save_Selected_Files_With_Answer
    at src/easytag.c line 128
  • #9 g_closure_invoke
    at /build/buildd/glib2.0-2.40.2/./gobject/gclosure.c line 768
  • #10 signal_emit_unlocked_R
  • #11 g_signal_emit_valist
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3307
  • #12 g_signal_emit
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3363
  • #13 g_simple_action_activate
    at /build/buildd/glib2.0-2.40.2/./gio/gsimpleaction.c line 211
  • #14 gtk_action_muxer_activate_action
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkactionmuxer.c line 375
  • #15 gtk_action_muxer_activate_action
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkactionmuxer.c line 377
  • #16 gtk_action_muxer_activate_action
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkactionmuxer.c line 377
  • #17 gtk_action_muxer_activate_action
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkactionmuxer.c line 377
  • #18 gtk_action_muxer_activate_action
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkactionmuxer.c line 377
  • #19 gtk_real_button_clicked
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkbutton.c line 2118
  • #20 g_closure_invoke
    at /build/buildd/glib2.0-2.40.2/./gobject/gclosure.c line 768
  • #21 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3621
  • #22 g_signal_emit_valist
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3307
  • #23 g_signal_emit
  • #24 gtk_real_button_released
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkbutton.c line 2106
  • #25 _g_closure_invoke_va
    at /build/buildd/glib2.0-2.40.2/./gobject/gclosure.c line 831
  • #26 g_signal_emit_valist
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3215
  • #27 g_signal_emit
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3363
  • #28 gtk_button_button_release
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkbutton.c line 1938
  • #29 _gtk_marshal_BOOLEAN__BOXEDv
    at gtkmarshalers.c line 130
  • #30 _g_closure_invoke_va
    at /build/buildd/glib2.0-2.40.2/./gobject/gclosure.c line 831
  • #31 g_signal_emit_valist
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3215
  • #32 g_signal_emit
    at /build/buildd/glib2.0-2.40.2/./gobject/gsignal.c line 3363
  • #33 gtk_widget_event_internal
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkwidget.c line 7168
  • #34 gtk_widget_event
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkwidget.c line 6830
  • #35 propagate_event_up
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkmain.c line 2401
  • #36 propagate_event
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkmain.c line 2509
  • #37 gtk_main_do_event
    at /build/buildd/gtk+3.0-3.10.8/./gtk/gtkmain.c line 1714
  • #38 gdk_event_source_dispatch
  • #39 g_main_dispatch
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3064
  • #40 g_main_context_dispatch
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3663
  • #41 g_main_context_iterate
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3734
  • #42 g_main_context_iteration
    at /build/buildd/glib2.0-2.40.2/./glib/gmain.c line 3795
  • #43 g_application_run
    at /build/buildd/glib2.0-2.40.2/./gio/gapplication.c line 2115
  • #44 main
    at src/main.c line 42

Comment 5 David King 2015-01-07 09:36:30 UTC
Thanks for the updated stack trace. I fixed this on the master and easytag-2-2 branches as ebe269ac7bedf4394f57db8712f8dfd402f2d5e3 and 9244e1380bb63c00fdd205cd4d5e3c0fa0ccf660.