Description of problem: nautilus-cd-burner crashes if you try to burn a CD but forget to insert it first. Version-Release number of selected component (if applicable): nautilus-cd-burner-2.7.6-1 How reproducible: 100%
Created attachment 103802 [details] backtrace
Bastien, this is due to you change to cd-recorder.c version 1.42: @@ -270,10 +278,7 @@ cdrecord_stdout_read (GIOChannel *sour percent); } else if (g_str_has_prefix (line, "Re-load disk and hit <CR>") || g_str_has_prefix (line, "send SIGUSR1 to continue")) { - g_signal_emit (G_OBJECT (cdrecorder), - cd_recorder_table_signals[INSERT_CD_REQUEST], 0, - TRUE); - cdrecorder->priv->send_return = (*line == 'R'); + g_assert_not_reached (); } else if (g_str_has_prefix (line, "Fixating...")) { g_signal_emit (G_OBJECT (cdrecorder), cd_recorder_table_signals[ACTION_CHANGED], 0, It just asserts if it gets the re-load request.
Bastien: Do you know why this change was made?
This change was made because the codepath before this forces a medium to be present in the drive. It seems that there is a bug in that part of the code... See upstream: http://bugzilla.gnome.org/show_bug.cgi?id=151986
The new codepath doesn't work on my box at least (see bug 132645), so I've made a patch that makes the old way work too. This should be safe, and allow this to work on these machines too. I'll attach the patch i have so far, which fixes this and some other small details.
Created attachment 103906 [details] Fixes the assertions
I already fixed this (properly) in nautilus-cd-burner 2.8.1.
I'm sure your proper fix helped some people, but it still crashes on my machine in the exact same assert.
What about the obviously correct parts of the patch? (the fixing of the signal return value and the is_reaload part in the insert cd handler) They should probably go upstream immediately.
The patch is in nautilus-cd-record 2.8.1-1 in rawhide soon. It will fix the crashes, but bug 132645 is still there.