GNOME Bugzilla – Bug 752827
rss: sigsegv if I'm trying to add second channel without waiting to finish first
Last modified: 2015-07-26 17:41:00 UTC
+ Trace 235296
Thread 5 (Thread 0x7fffe5d75700 (LWP 21561))
Thread 1 (Thread 0x7ffff7f0d900 (LWP 21513))
I have not looked into backtrace yet, so probably bug in libgrss
I can guess the issue is about missing clearing of the GCancellable in grss_feed_channel_fetch_cancel(), but how can I replicate this issue?
(In reply to Roberto Guido from comment #1) > I can guess the issue is about missing clearing of the GCancellable in > grss_feed_channel_fetch_cancel(), but how can I replicate this issue? Run tracker RSS miner from master. Add channel via miner utility, when you see that it fetching feeds - add another channel. You will see crash.
How do I: $ tracker reset -r && tracker control -s && killall tracker-miner-rss && ~/jhbuild/install/libexec/tracker-miner-rss -v 3 [snipped] (tracker-miner-rss:9694): Tracker-DEBUG: Miner:'RSS' noticed store availability has changed to AVAILABLE In another terminal: $ ~/jhbuild/install/libexec/tracker-miner-rss -a https://planet.gnome.org/atom.xml miner gets: (tracker-miner-rss:9694): Tracker-DEBUG: Indexing channel 'https://planet.gnome.org/atom.xml' Tracker-Message: '(null)' (https://planet.gnome.org/atom.xml) - update interval of 20 minutes Tracker-Message: Retrieving and scheduling feeds... Again in another terminal (don't wait while grss will fetch items): $ ~/jhbuild/install/libexec/tracker-miner-rss -a https://planet.fedoraproject.org/atom.xml miner gets: (tracker-miner-rss:9694): Tracker-DEBUG: Indexing channel 'https://planet.fedoraproject.org/atom.xml' Tracker-Message: '(null)' (https://planet.fedoraproject.org/atom.xml) - update interval of 20 minutes Segmentation fault (core dumped)
Created attachment 308183 [details] [review] feed-channel: Clear cancellable pointer after cancelling Otherwise the pointer will be left pointing to the previous cancellable location, and crash if we try grss_feed_channel_fetch_all_finish() again, because it will try to cancel all previous operations first.
Attachment 308183 [details] pushed as 192d664 - feed-channel: Clear cancellable pointer after cancelling