Привет всем!

Пишу приложение на Python+GTK. Наблюдаю очень странный баг, который не проявляется на одном компе и проявляется на другом. На втором он не сразу стал проявляться, а появился только недавно. При этом код моего приложения не менялся, обновлений систем не было. На обоих машинах одинаковая Ubuntu 18.04.

Из приложения надо открыть обычный диалог выбора файла:

dialog = Gtk.FileChooserDialog("Dialog", self._gui_main_window, action=Gtk.FileChooserAction.OPEN)
print("New dialog!"
response = dialog.run()
...
При этом выполнение программы наглухо вешается на первой строке, т.е. ещё до вызова response = dialog.run() и даже print не отрабатывает. Через секунд 30 в консоль выводится сообщение:
Error creating proxy: Error calling StartServiceByName for org.gtk.vfs.UDisks2VolumeMonitor: Timeout was reached (g-io-error-quark, 24)
И всё... Дальше глухо висит, диалог так и не показывается, основное окно перестаёт перерисовывать себя при изменении размеров. Если нажать Ctrl+C, то главное окно продолжает висеть, хотя консоль освобождается. Убивается через обычный kill.

Что интересно, если приложение запускать без всякой сессии, просто xterm и Xorg, то всё работает как надо, диалог открывается. А в полноценной сессии (пробовал GNOME и XFCE) случается описанный выше зависон.

Я погуглил и нашёл отдалённо похожее поведение: https://gitlab.gnome.org/GNOME/gtk/issues/1066 тут в консоль выводится аналогичное сообщение. Но, у меня этот баг срабатывает только в одном приложении (на Python, которое я пишу), в других приложениях всё нормально. /etc/fstab не содержит сетевых монтирований.

Куда копать?








 , ,






URL записи