Comment 7 for bug 1121254

Revision history for this message
Michael Schwendt (mschwendt) wrote : Re: Race between TagReader and start of conversion

Reproducible with Fedora 19 development. Especially glib2 is much newer there:

  $ rpm -q glib2 gtk2 pygtk2
  glib2-2.35.7-1.fc19.x86_64
  gtk2-2.24.14-1.fc19.x86_64
  pygtk2-2.24.0-5.fc18.x86_64

For comparison, Fedora 18 is at glib2-2.34.2, gtk2-2.24.13, pygtk2-2.24.0.

One can observe that with Fedora 18, the tag reading is not race-free either. The last pending idle callbacks may add tasks to the converter queue after it has been started already. With regard to the task queue implementation, that's okay because it's an array "append", and the queue uses "pop" to retrieve waiting tasks. But if the tasks are added too late via idle calls, processing of the queue would have stopped already. That's easy to reproduce with Fedora 19 when converting a single audio file.

Other symptoms: Where with Fedora 18, any of the modal dialogs (such as "file exists - what to do?" or "missing plugin search") seem to block the main loop -- so if I close the first dialog, the next one is displayed -- with Fedora 19 only the first dialog is displayed and all other ones are ignored.

If this is not just temporary, it might be that something has changed to the gobject idle call behaviour and hence affects SoundConverter, where even the background tasks use idle calls.