Gnome Shell SEGV crash - XWayland + libmutter-16 bug

Pardus 25 Gnome de geliştirdiğim ptyhon pyqt5 ile yazılmış medya player uygulaması var . Uygulama tamamen bitti fakat bir sorunu bir türlü aşamadım . Uygulama tam ekrandan çıkış yapınca yada sürükliyerek dosya eklerken Gnome-Shell çöküyor ve oturum kapanıyor . Bu Sorun X11 de yaşanmıyor Sadece wayland oturumu açınca yaşanıyor . Yapay zeka desteği ile Sorunu araştırdım . Loglardan anlaşılan Waylandaki bir bug sebep oluyormuş .

Yapay zeka cevabı (Hata loglarından elde edilen verilere göre):
Pardus 25 Gnome Wayland oturumunda XWayland üzerinde çalışan bir uygulama kapatılırken veya dosya sürüklenirken Gnome Shell SEGV ile çöküyor ve oturum tamamen kapanıyor.

Sistem bilgileri:

  • Pardus 25 Gnome Wayland oturumu
  • libmutter-16: 48.7-0+deb13u1
  • xwayland: 2:24.1.6-1

Hata logu:

org.gnome.Shell@wayland.service: Main process exited, code=killed, status=11/SEGV

XWayland üzerinde çalışan uygulama kapanırken meta_selection_unset_owner fonksiyonunda null pointer hatası oluşuyor ve Gnome Shell tamamen çöküyor. Bu Mutter’ın XWayland selection yönetiminde bilinen bir bug.

Stack trace:,

#0  0x00007f940aba3dd7 n/a (libmutter-16.so.0 + 0x1a3dd7)
#1  0x00007f940ab981e1 n/a (libmutter-16.so.0 + 0x1981e1)
#2  0x00007f940b1bcb81 n/a (libgobject-2.0.so.0 + 0x17b81)
#3  0x00007f940b1d28b8 n/a (libgobject-2.0.so.0 + 0x2d8b8)
#4  0x00007f940b1d886e g_signal_emit_by_name (libgobject-2.0.so.0 + 0x3386e)
#5  0x00007f940ab1ef69 meta_selection_unset_owner (libmutter-16.so.0 + 0x11ef69)
#6  0x00007f940aba1145 n/a (libmutter-16.so.0 + 0x1a1145)
#7  0x00007f940b1c0c67 n/a (libgobject-2.0.so.0 + 0x1bc67)

Bu sorun için bir güncelleme planlanıyor mu? Bir çözüm var mı? 1 ayı geçik test ediyorum saç baş yoldurdu artık . PyQt5’ten PyQt6’ya geçiş yaptım bir bunda deniyorum şuan . Çökme olacakmı artık kontrol ediyorum Wayland da .

Uygulamanız ek Thread kullanıyor mu? Thread kullanımlarında senkronizasyon ve erişim problemlerine de dikkat etmeniz gerekiyor. Crashi tetikleyen kodu direkt görseydik iyi olabilirdi.

Bir de Qt6 için Qt’nin kendi kütüphanesini kullanmayı deneyebilirsiniz: PySide6 · PyPI

Qt’nin Wayland desteği var aslında, XWayland kullanmaması lazım.

1 Beğeni

5200 kusur satır kodu size nasıl ulaştırabilirim Tr - Eng lang dosyası da var

Açık kaynak olarak github.com veya gitlab.org gibi bir sitede projenizi paylaşabilirsiniz isterseniz.

Debian tarafındaki paketlerin sorunlarıyla alakalı hata bildirimi için reportbug paketi var onu kullanabilirsiniz:

sudo apt install reportbug

Sonra da

reportbug

Size bug ile alakalı sorular soracak.

Hatayı mail olarak göndereceği için mail ayarlamaları da yapmanız gerekiyor. Örneğin gmail için mail ayarlarınızdan smtp izinlerini verip ilgili adresleri bu programa girmelisiniz.

1 Beğeni

bu hatayı rapor ettim GNOME Shell SEGV crash in meta_selection_unset_owner - XWayland + libmutter-16 bug (#4690) · Issues · GNOME / mutter · GitLab Birçok şey denedim ama benim elimden bukadar geldi . Yapay zeka ile biryere kadar :frowning: birçok şey denedik

mpv embed için XWayland şart . mpv embed kullandığımız sürece XWayland kullanmak lazım . Wayland yapınca Videolarda görüntü yeni pencerede açılıyor .

Kodun kapanış sırası:

Tam ekrandan çık
Timer'ları durdur
XWayland clipboard temizle + mpv durdur
GIF worker durdur
Son oturumu kaydet
Cursor geri yükle
Observer devre dışı bırak
mpv → pause → stop → 0.15s bekle → terminate → 0.1s bekle → del
Visualizer durdur
Kilit dosyası temizle
Son clipboard temizliği → 0.1s bekle → çık


böyle yaptığım halde (YZ Önerisi) Sonuç org.gnome.Shell@wayland.service: Main process exited, code=killed, status=11/SEGV

mpv yerine Qt’nin multimedia modüllerini kullanmayı denediniz mi?

Qt kendisi de ses ve video oynatabiliyor. mpv’ye ihtiyacınız kalmayabilir.

PyQt örneği de buldum:

1 Beğeni

çok büyükkkk bir değişiklik demek bu :frowning: değişiklik sonrası neler ile karşılaşırım bilmiyorum .

YZ’den destek alırsanız 1-2 günde değiştirebilirsiniz. Ama uyarıyorum: YZ’ye güvenmeyin ve hep yedek alın.

Değişiklik sonrası şununla kesinlikle karşılaşırsınız: Qt’nin multimedia kütüphaneleriyle bir video ya da ses oynatacağınız zaman, play’a ilk bastığınızda bazen birkaç saniye bekletiyor ve geç başlıyor. Qt5’de bununla karşılaşmıştım, ama Qt6’da düzeltmişler mi diye hiç denemedim. Bunun dışına hiçbir sorun yok, güzel çalışıyor.

Konuyla ilgili mi, sorunu çözer mi bilmiyorum. Ben kodumun başına hep şunu yapıştırıyorum (import satırlarının bittiği yere, ilk class satırının üstüne):

# Linux/Debian tabanlı sistemler için X11 zorlaması
os.environ["QT_QPA_PLATFORM"] = "xcb" # GNOME ortamında sıkıntısız açılması için. 

Geçenlerde bir uygulamamda YZ şunu kullanmamı önerdi:

# Wayland ve modern masaüstü ortamları için uyumluluk ayarları
if "GNOME" in os.environ.get("XDG_CURRENT_DESKTOP", ""):
    os.environ["QT_QPA_PLATFORM"] = "wayland;xcb"

Çok bildiğimden değil. Eğer uygulamıyorsanız bir deneyin diye yazdım.

Media Player’ınızda sadece ses oynatacaksanız pygame de deneyebilirsiniz. (bağımlılık boyutunu büyütür).

Geçmişte libvlc kütüphanelerini de test ettim, iyi çalışıyordu ama şimdi hatırlayamadığım sorunlar yüzünden kullanmadım.

Kolay gelsin.

Değildir. Sorunu çözmelisiniz. Beta olarak yayınlayıp issues kısmında ve readme içeriğinde sorununu belirtin yapamayacaksanız.

Tek bir py dosyası ise müsait bir zamanda ben de bakmak isterdim.

Sorunun neyin sebep olduğunu çözdüm . Çalma listesine dosya sürükliyerek medyaları ekleyip .Sonra çalma listesindeki medyaların yerini fare ile değiştirip sliderı sona kadar sarıp medya geçişi yaptırıp uygulama penceresinin X işaretinden çıkış yapınca istisnasız Gnome-Shell çöküğünü çözdüm . Aylardır denediğim halde çözememiştim tam olarak ne yapınca çöktüğünü . Sorun nokta atışı olunca çözüm de nokta atışı oldu . Şuan uygulama sorunsuz deneme aşamasında halen. Yanlız bu sıkıntı yinede uygulamadaki kod hatası değil . Gnome nin işleri düzgün yürütememesinden kaynaklı .

Bu konu son yanıttan 10 gün sonra otomatik olarak kapatıldı. Yeni yanıtlara artık izin verilmiyor.