GNOME Bugzilla – Bug 690993
segfault in rb_track_transfer_batch_check_profiles()
Last modified: 2013-01-02 14:13:50 UTC
Have what appears to be a pretty reproducible segfault here in 2.96. If you need any more info, please don't hesitate to ask.
+ Trace 231333
Thread 1 (Thread 0xb28918c0 (LWP 29012))
This was fixed some time after 2.96, probably in commit 7b362a4
(In reply to comment #1) > This was fixed some time after 2.96, probably in commit 7b362a4 Ahhh. Thanks much for that info. 7b362a4 didn't apply to cleanly to 2.96. I ended up massaging it as such: --- a/shell/rb-track-transfer-batch.c 2012-03-10 05:22:26.000000000 -0500 +++ b/shell/rb-track-transfer-batch.c 2013-01-02 07:38:45.021949538 -0500 @@ -817,7 +817,7 @@ rb_track_transfer_batch_class_init (RBTr "encoding target", "GstEncodingTarget", GST_TYPE_ENCODING_TARGET, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); /** * RBTrackTransferBatch:source * --- a/sources/rb-transfer-target.c 2012-03-10 05:22:26.000000000 -0500 +++ b/sources/rb-transfer-target.c 2013-01-02 07:43:49.871109600 -0500 @@ -392,18 +392,16 @@ rb_transfer_target_transfer (RBTransferT GList *l; RhythmDBEntryType *our_entry_type; RBTrackTransferBatch *batch; - GstEncodingTarget *encoding_target; gboolean start_batch = FALSE; g_object_get (target, /* hrm */ "shell", &shell, "entry-type", &our_entry_type, - "encoding-target", &encoding_target, NULL); g_object_get (shell, "track-transfer-queue", &xferq, NULL); g_object_unref (shell); - batch = rb_track_transfer_batch_new (encoding_target, NULL, G_OBJECT (target)); + batch = rb_track_transfer_batch_new (NULL, NULL, G_OBJECT (target)); gst_encoding_target_unref (encoding_target); g_signal_connect_object (batch, "get-dest-uri", G_CALLBACK (get_dest_uri_cb), target, 0); @@ -433,6 +431,11 @@ rb_transfer_target_transfer (RBTransferT g_object_unref (our_entry_type); if (start_batch) { + GstEncodingTarget *encoding_target; + g_object_get (target, "encoding-target", &encoding_target, NULL); + g_object_set (batch, "encoding-target", encoding_target, NULL); + gst_encoding_target_unref (encoding_target); + rb_track_transfer_queue_start_batch (xferq, batch); } else { g_object_unref (batch); Does that look about right? The patch to rb-track-transfer-batch.c is pretty straightforward as is the first hunk of the patch to rb-transfer-target.c, but it's the second hunk in that file I am less sure about. Thanks again.
I don't think it's a good idea to cherry pick fixes back to older releases. Why not upgrade to 2.98?
Well, it's the same-old-same-old distro run-around where they (Ubuntu -- which I'm nearing the end of my patience with -- probably jump to Fedora for any future installs) don't want to do full version package upgrades in a maintenance cycle and want to just backport patches for known issues, and I don't want to jump ahead and have to locally maintain yet another package.