Open ludovicaelbrecht opened 1 year ago
Are your auto sync options enabled? If so, you could try to disable all the options about auto sync temprarily, and see if it happens still.
I had auto sync on startup & shutdown & every 15 mins enabled. (But those were also enabled on 2.1.8, when it exited cleanly).
I've disabled all 3 of those auto sync settings, and the issue is still there.
This is the output I get now:
ludovic@x1 /u/s/l/nixnote2 (develop)> ./appdir/usr/bin/nixnote2
INFO 2023-07-31 14:44:45.457 src/utilities/crossmemorymapper.cpp:62 Shared memory segment allocated, instance key: "foo"
INFO 2023-07-31 14:44:45.458 src/main.cpp:313 NixNote 2.1.10-42acd76f, build at Jul 3 2023 at 12:00:27, with Qt 5.15.10 running on 5.15.10
INFO 2023-07-31 14:44:45.458 src/main.cpp:316 To get more detailed startup logging use --logLevel=1
qt.qpa.wayland: Wayland does not support QWindow::requestActivate()
QThread: Destroyed while thread is still running
fish: Job 1, './appdir/usr/bin/nixnote2' terminated by signal SIGABRT (Abort)
The only message that no longer appears is this one:
QPainter::setBackgroundMode: Painter not active
You could run nixnote with --logLevel=1, and see what happens.
ps: I noticed that your shared memory segment key is 'foo', instead of a random string, did you do any changes and some of them may change the exiting process of nixnote?
Hi boo-yee
Thanks for your help.
When running the develop branch with "--logLevel=1", here's the output I get when all auto syncs are disabled and exiting through Ctrl+Q:
DEBUG 2023-08-01 13:07:46.304 src/nixnote.cpp:1153 quitNixNote
DEBUG 2023-08-01 13:07:46.304 src/nixnote.cpp:1313 closeEvent
DEBUG 2023-08-01 13:07:46.304 src/nixnote.cpp:1177 saveOnExit()
DEBUG 2023-08-01 13:07:46.304 src/nixnote.cpp:1179 saveOnExit: Saving contents
DEBUG 2023-08-01 13:07:46.304 src/nixnote.cpp:1182 saveOnExit: Shutting down threads
DEBUG 2023-08-01 13:07:46.305 src/nixnote.cpp:1192 Saving window states
DEBUG 2023-08-01 13:07:46.324 src/nixnote.cpp:1302 saveOnExit: Closing threads
DEBUG 2023-08-01 13:07:46.324 src/nixnote.cpp:1306 Exiting saveOnExit()
DEBUG 2023-08-01 13:07:46.325 src/nixnote.cpp:1350 closeEvent: quitting
DEBUG 2023-08-01 13:07:46.340 src/nixnote.cpp:1177 saveOnExit()
DEBUG 2023-08-01 13:07:46.341 src/nixnote.cpp:1179 saveOnExit: Saving contents
DEBUG 2023-08-01 13:07:46.341 src/nixnote.cpp:1182 saveOnExit: Shutting down threads
DEBUG 2023-08-01 13:07:46.341 src/nixnote.cpp:1192 Saving window states
DEBUG 2023-08-01 13:07:46.358 src/nixnote.cpp:1302 saveOnExit: Closing threads
DEBUG 2023-08-01 13:07:46.358 src/nixnote.cpp:1306 Exiting saveOnExit()
DEBUG 2023-08-01 13:07:46.358 src/utilities/crossmemorymapper.cpp:109 Shared memory segment detach, instance key: "foo", result: true
DEBUG 2023-08-01 13:07:46.359 src/main.cpp:380 main: deleting NixNote instance
QThread: Destroyed while thread is still running
fish: Job 1, './appdir/usr/bin/nixnote2 --lo…' terminated by signal SIGABRT (Abort)```
Regarding the instance key: no I didn't change anything in the codebase; I just obscured the key in my posts since I didn't know whether this was a nixnote key or an actual Evernote API key. I assumed it was nothing but erred on the side of caution.
If so, then in NixNote::saveOnExit(), comment out from line 1302 to 1304, like this:
//QLOG_DEBUG() << "saveOnExit: Closing threads";
//indexThread.quit();
//counterThread.quit();
(or you can apply the patch I upload below) and build again. I tested about 10 times, and found no core dump under bash. You could have a try and see if it can exit normally.
Here's the output I get with the patch applied:
DEBUG 2023-08-02 12:25:28.373 src/nixnote.cpp:1153 quitNixNote
DEBUG 2023-08-02 12:25:28.373 src/nixnote.cpp:1313 closeEvent
DEBUG 2023-08-02 12:25:28.373 src/nixnote.cpp:1177 saveOnExit()
DEBUG 2023-08-02 12:25:28.373 src/nixnote.cpp:1179 saveOnExit: Saving contents
DEBUG 2023-08-02 12:25:28.373 src/nixnote.cpp:1182 saveOnExit: Shutting down threads
DEBUG 2023-08-02 12:25:28.373 src/nixnote.cpp:1192 Saving window states
DEBUG 2023-08-02 12:25:28.387 src/nixnote.cpp:1306 Exiting saveOnExit()
DEBUG 2023-08-02 12:25:28.388 src/nixnote.cpp:1350 closeEvent: quitting
DEBUG 2023-08-02 12:25:28.396 src/nixnote.cpp:1177 saveOnExit()
DEBUG 2023-08-02 12:25:28.396 src/nixnote.cpp:1179 saveOnExit: Saving contents
DEBUG 2023-08-02 12:25:28.396 src/nixnote.cpp:1182 saveOnExit: Shutting down threads
DEBUG 2023-08-02 12:25:28.396 src/nixnote.cpp:1192 Saving window states
DEBUG 2023-08-02 12:25:28.412 src/nixnote.cpp:1306 Exiting saveOnExit()
DEBUG 2023-08-02 12:25:28.412 src/utilities/crossmemorymapper.cpp:109 Shared memory segment detach, instance key: "foo", result: true
DEBUG 2023-08-02 12:25:28.412 src/main.cpp:380 main: deleting NixNote instance
QThread: Destroyed while thread is still running
fish: Job 1, './appdir/usr/bin/nixnote2 --lo…' terminated by signal SIGABRT (Abort)
To be complete, it's ~the same when running in bash:
DEBUG 2023-08-02 12:27:26.314 src/nixnote.cpp:1153 quitNixNote
DEBUG 2023-08-02 12:27:26.314 src/nixnote.cpp:1313 closeEvent
DEBUG 2023-08-02 12:27:26.314 src/nixnote.cpp:1177 saveOnExit()
DEBUG 2023-08-02 12:27:26.314 src/nixnote.cpp:1179 saveOnExit: Saving contents
DEBUG 2023-08-02 12:27:26.314 src/nixnote.cpp:1182 saveOnExit: Shutting down threads
DEBUG 2023-08-02 12:27:26.314 src/nixnote.cpp:1192 Saving window states
DEBUG 2023-08-02 12:27:26.334 src/nixnote.cpp:1306 Exiting saveOnExit()
DEBUG 2023-08-02 12:27:26.335 src/nixnote.cpp:1350 closeEvent: quitting
DEBUG 2023-08-02 12:27:26.342 src/nixnote.cpp:1177 saveOnExit()
DEBUG 2023-08-02 12:27:26.342 src/nixnote.cpp:1179 saveOnExit: Saving contents
DEBUG 2023-08-02 12:27:26.342 src/nixnote.cpp:1182 saveOnExit: Shutting down threads
DEBUG 2023-08-02 12:27:26.342 src/nixnote.cpp:1192 Saving window states
DEBUG 2023-08-02 12:27:26.355 src/nixnote.cpp:1306 Exiting saveOnExit()
DEBUG 2023-08-02 12:27:26.355 src/utilities/crossmemorymapper.cpp:109 Shared memory segment detach, instance key: "foo", result: true
DEBUG 2023-08-02 12:27:26.355 src/main.cpp:380 main: deleting NixNote instance
QThread: Destroyed while thread is still running
Aborted (core dumped)
If so, it should be syncThread, indexThread, counterThread or browserThread.
Apply this new patch, and try again please. It may work this time.
Thanks for all your help.
No SIGABRT this time:
DEBUG 2023-08-02 14:55:07.382 src/nixnote.cpp:1156 quitNixNote
DEBUG 2023-08-02 14:55:07.382 src/nixnote.cpp:1316 closeEvent
DEBUG 2023-08-02 14:55:07.382 src/nixnote.cpp:1180 saveOnExit()
DEBUG 2023-08-02 14:55:07.382 src/nixnote.cpp:1182 saveOnExit: Saving contents
DEBUG 2023-08-02 14:55:07.382 src/nixnote.cpp:1185 saveOnExit: Shutting down threads
DEBUG 2023-08-02 14:55:07.383 src/nixnote.cpp:1195 Saving window states
DEBUG 2023-08-02 14:55:07.404 src/nixnote.cpp:1309 Exiting saveOnExit()
DEBUG 2023-08-02 14:55:07.405 src/nixnote.cpp:1353 closeEvent: quitting
DEBUG 2023-08-02 14:55:07.411 src/nixnote.cpp:1180 saveOnExit()
DEBUG 2023-08-02 14:55:07.411 src/nixnote.cpp:1182 saveOnExit: Saving contents
DEBUG 2023-08-02 14:55:07.411 src/nixnote.cpp:1185 saveOnExit: Shutting down threads
DEBUG 2023-08-02 14:55:07.412 src/nixnote.cpp:1195 Saving window states
DEBUG 2023-08-02 14:55:07.424 src/nixnote.cpp:1309 Exiting saveOnExit()
DEBUG 2023-08-02 14:55:07.425 src/utilities/crossmemorymapper.cpp:109 Shared memory segment detach, instance key: "foo", result: true
DEBUG 2023-08-02 14:55:07.425 src/main.cpp:380 main: deleting NixNote instance
DEBUG 2023-08-02 14:55:07.425 src/nixnote.cpp:250 !syncThread.isFinished()
DEBUG 2023-08-02 14:55:07.425 src/nixnote.cpp:252 !indexThread.isFinished()
DEBUG 2023-08-02 14:55:07.425 src/nixnote.cpp:254 !counterThread.isFinished()
DEBUG 2023-08-02 14:55:07.426 src/gui/nbrowserwindow.cpp:309 ~NBrowserWindow()
DEBUG 2023-08-02 14:55:07.426 src/gui/nbrowserwindow.cpp:311 quit()
DEBUG 2023-08-02 14:55:07.426 src/gui/nbrowserwindow.cpp:313 isIdle()
DEBUG 2023-08-02 14:55:07.426 src/gui/nbrowserwindow.cpp:315 isFinished()
DEBUG 2023-08-02 14:55:07.426 src/gui/nbrowserwindow.cpp:319 delete thread()
DEBUG 2023-08-02 14:55:07.428 src/gui/nbrowserwindow.cpp:360 ~NBrowserWindow() finished
DEBUG 2023-08-02 14:55:07.432 src/main.cpp:382 main: quitting application instance
DEBUG 2023-08-02 14:55:07.432 src/main.cpp:384 main: deleting application instance
INFO 2023-08-02 14:55:07.447 src/main.cpp:386 main: Exit: retcode=0
(FYI I did have to change while (!browserThread.isFinished());
in the patch to while (!browserThread->isFinished());
for it to compile)
Thanks for all your help.
No SIGABRT this time:
That's OK. I'll create a pr for this issue later.
(FYI I did have to change while (!browserThread.isFinished()); in the patch to while (!browserThread->isFinished()); for it to compile)
I forgot to update the patch. My bad.
Thanks for fixing it, much appreciated.
You contributed too. Thank both of us.
@robert7 should I close this bug report or do you want to wait for the fix to reach the master branch? You already merged the PR to the develop branch.
I just merged develop to master
This issue should be closed. The fix from PR #209 was merged to master.
Expected vs. actual behavior
Up until 2.1.8, when I exit nixnote (File->Quit or Ctrl+Q) it terminates cleanly. Since 2.1.9 it gets terminated by a SIBABRT signal when I exit it.
Running nixnote2 on Linux (Fedora 38).
Here's what it looks line on 2.1.8:
What it looks like on the develop branch and on 2.1.9:
When I run it using the bash shell, it also tells me it did a coredump:
Happy to do a debug build or anything else you want me to look at, if you can point me to instructions.
Thanks, Ludovic