SigSegv beim Schliessen von Qt Anwendung mit OpenDialog.

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
Antworten
Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

SigSegv beim Schliessen von Qt Anwendung mit OpenDialog.

Beitrag von theo »

Der Titel sagt schon fast alles.
Getestet an lazarus/tools/jsonviewer/
Man muss den OpenDialog einmal ausgeführt haben. Es muss keine Datei geöffnet werden.
Könnt ihr das bestätigen oder gibt es dazu bereits Erkenntnisse?

Meine Version:
Lazarus 2.1.0 r62571M FPC 3.0.4 x86_64-linux-gtk2 auf OpenSUSE Leap 15.1

Innerhalb der IDE findet das im Bereich _ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent statt und zwar reproduzierbar.

Tritt aber auch außerhalb des Debuggers auf.

Der KDE "Käfer" meint:

Code: Alles auswählen

Application: jsonviewer (jsonviewer), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7ff2bfa3c8c0 (LWP 22118))]
 
Thread 4 (Thread 0x7ff295031700 (LWP 22121)):
#0  0x00007ff2bc1a78ad in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007ff295cd79ab in ?? () from /usr/lib64/dri/i965_dri.so
#2  0x00007ff295cd76b7 in ?? () from /usr/lib64/dri/i965_dri.so
#3  0x00007ff2bc1a1569 in start_thread () from /lib64/libpthread.so.0
#4  0x00007ff2bebb59ef in clone () from /lib64/libc.so.6
 
Thread 3 (Thread 0x7ff2a4a45700 (LWP 22120)):
#0  0x00007ff2bebab19b in poll () from /lib64/libc.so.6
#1  0x00007ff2b9bd01a9 in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007ff2b9bd02bc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#3  0x00007ff2bce7296b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#4  0x00007ff2bce1790a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQt5Core.so.5
#5  0x00007ff2bcc35daa in QThread::exec() () from /usr/lib64/libQt5Core.so.5
#6  0x00007ff2b51859e5 in ?? () from /usr/lib64/libQt5DBus.so.5
#7  0x00007ff2bcc3aced in ?? () from /usr/lib64/libQt5Core.so.5
#8  0x00007ff2bc1a1569 in start_thread () from /lib64/libpthread.so.0
#9  0x00007ff2bebb59ef in clone () from /lib64/libc.so.6
 
Thread 2 (Thread 0x7ff2b21e3700 (LWP 22119)):
#0  0x00007ff2bebab19b in poll () from /lib64/libc.so.6
#1  0x00007ff2bc3c5307 in ?? () from /usr/lib64/libxcb.so.1
#2  0x00007ff2bc3c6f3a in xcb_wait_for_event () from /usr/lib64/libxcb.so.1
#3  0x00007ff2b567b939 in ?? () from /usr/lib64/libQt5XcbQpa.so.5
#4  0x00007ff2bcc3aced in ?? () from /usr/lib64/libQt5Core.so.5
#5  0x00007ff2bc1a1569 in start_thread () from /lib64/libpthread.so.0
#6  0x00007ff2bebb59ef in clone () from /lib64/libc.so.6
 
Thread 1 (Thread 0x7ff2bfa3c8c0 (LWP 22118)):
[KCrash Handler]
#6  0x00007ff2bce1982a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib64/libQt5Core.so.5
#7  0x00007ff2bce4f3a8 in QObjectPrivate::setParent_helper(QObject*) () from /usr/lib64/libQt5Core.so.5
#8  0x00007ff2a8cab4ad in ?? () from /usr/lib64/libKF5Solid.so.5
#9  0x00007ff2beaf5d78 in __run_exit_handlers () from /lib64/libc.so.6
#10 0x00007ff2beaf5dca in exit () from /lib64/libc.so.6
#11 0x00007ff2beaddf91 in __libc_start_main () from /lib64/libc.so.6
#12 0x0000000000000000 in ?? ()
[Inferior 1 (process 22118) detached]
 

pjensen
Beiträge: 77
Registriert: Fr 27. Jul 2007, 08:43
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Nahe Flensburg

Re: SigSegv beim Schliessen von Qt Anwendung mit OpenDialog.

Beitrag von pjensen »

Ja, kann ich bestätigen

Bei mir:
OpenSuse 15.1 - KDE 3.5.10
FPC 3.0.4 - Lazarus 1.8.4
(Kürzlich 15.1 installiert, vorher 42.3 ohne diese Errors.)

Ich habe das gleiche mit vielen meinen selbst geschriebene Anwendungen. Da diese alle mit der heißen Nadel gestrickt sind, dachte ich dass es an meinem code liegt.

Ich habe jetzt mit lazarus/tools/jsonviewer/ getestet.

Bei mir:
Prog starten (F9) , beenden, alles gut _> reproduzierbar, immer ohne Error

Prog starten (F9), Datei - open - Cancel => Alles gut
Prog starten (F9), Datei - open - Cancel => Projekt JSON Data viewer hat Exception-Klasse »External: SIGSEGV« ausgelöst. Bei Adresse 7FFFF388869A

Wenn ich die IDE neu starte, geht es beim ersten mal (Datei-open-cancel) ohne Fehler. Danach führt Datei-open-cancel regelmäßig zu o.g. SIGSEGV.


Wenn man das ganze gegen GTK2 kompiliert, kommt der Fehler nicht.

Gruß, P. Jensen

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: SigSegv beim Schliessen von Qt Anwendung mit OpenDialog.

Beitrag von theo »

Danke.

Ich habe eine andere KDE Version (siehe Screenshot).
Kann das ein Problem von openSUSE sein, oder kommt das auf anderen Distributionen auch vor?
Dateianhänge
leap15_1.png
leap15_1.png (45.25 KiB) 4160 mal betrachtet

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: SigSegv beim Schliessen von Qt Anwendung mit OpenDialog.

Beitrag von theo »

Es passiert unabhängig vom JSONViewer. Ein Formular mit OpenDialog reicht um das SigSegv auszulösen.

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: SigSegv beim Schliessen von Qt Anwendung mit OpenDialog.

Beitrag von theo »

Ist schon gemeldet.
https://bugs.freepascal.org/view.php?id=35057

Es stimmt, dass so das Problem nicht besteht:

Code: Alles auswählen

XDG_SESSION_DESKTOP=Plasma ./jsonviewer 

pjensen
Beiträge: 77
Registriert: Fr 27. Jul 2007, 08:43
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Nahe Flensburg

Re: SigSegv beim Schliessen von Qt Anwendung mit OpenDialog.

Beitrag von pjensen »

OK, danke fürs Melden

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: SigSegv beim Schliessen von Qt Anwendung mit OpenDialog.

Beitrag von theo »

pjensen hat geschrieben:OK, danke fürs Melden

Ich habe den nicht gemeldet. Der Report ist schon bald ein Jahr alt.
Aber es ist wohl ein KDE Problem.

pjensen
Beiträge: 77
Registriert: Fr 27. Jul 2007, 08:43
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Nahe Flensburg

Re: SigSegv beim Schliessen von Qt Anwendung mit OpenDialog.

Beitrag von pjensen »

Ach so, alles klar.

BtW:
Wenn man das Programm mit Halt beendet, kommt der Fehler nicht.
(Menu - Start - Halt, bzw. den Button dazu im Menü)


Gruß,
P. Jensen

Antworten