Removing the only world entry freezes the application
This is a silly one I just stumbled into. (Sorry!)
Reproduction steps:
-
On the World screen, I clicked the green [+] at the bottom left to add something to my new project.
-
Subsequently, I pressed the red [-] in order to get rid of it.
The program was fully hung. I waited a few minutes to see if it would unhang, or whether it might throw an error or something... but nothing new was written to the console.
Edit: This is kind of awkward... but I can't reproduce it anymore. (I wanted to amend my report because I realized I did click around on the fields and tabs of the newly created item a bit, and I figured those actions might have an effect I forgot to account for in my reproduction steps.)
I have been unable to reproduce the issue. I tested on Kubuntu 16.04 and Windows 10 and the application continued to function.
If you also are unable to recreate the issue then we should close it as invalid. The issue can be re-opened if you discover the steps to reproduce the problem.
I did some more tests, and I reproduced it a second time on my first attempt. Yet not a third time despite like 10 attempts. And it confuses me greatly because I did the exact same thing as before.
For the sake of clarity, I'll list the steps I took once more:
- Closed down my existing project, and then closed down Manuskript.
- I opened Manuskript.
- I created a new Empty Fiction. No settings were changed, and I saved it somewhere.
- I went to the World screen, created a thing, and then removed a thing.
- It hung.
... and now I tried it one final time, following these exact instructions, and it hung again. (My theory was that restarting the application quickly somehow messed with timings, whereas my writing this for a while might get it paged out or something. Not sure if that is the case but I surely got lucky!)
A quick check with Process Explorer on the stack shows me nothing of interest; the main thread seems to be hovering around 14%. After setting the affinity of the process to one particular core, I can confirm that one is being completely maxed out. The Stack option in the Threads screen doesn't show me anything remotely useful; it is all over the place, most typically within some Qt5 code.
I'll keep the application suspended for the next few hours; if you have any tools or tests you want me to run against the live process, let me know. For now, I have included a minidump created through Process Explorer in case that is of any use.
No need to keep the application in a hung state for me.
The random nature of the issue makes me suspect something other than the application itself. Often random issues are hardware related.
One other thought. Are you running Windows with an Antivirus program?
If so then it is possible that an Antivirus program is seeing a false positive with Manuskript and is halting the program.
If possible can you add in an exclusion for Manuskript if you are running an Antivirus program?
Otherwise another way around such an issue is to Run Manuskript from Source Code.
No non-standard antivirus for me; just the half-baked builtin solution that comes default with Windows 10. I had a glance through the options and don't see a way to exclude things for it. At best I can turn it all off. (But I might be missing something in my sleepy state.)
There are no messages of threats being detected in the logs.
So far I have been unable to reproduce the hang issue with creating and deleting the only World item.
If you discover a series of steps that reliably reproduces the issue then please post the steps here.
Weirdly enough I was able to reproduce a freeze of the application (version 0.14.0+) by removing one random world item, clicking multiple times on the [-] button. However it does not freeze consistently... so I would assume this is either an issue with asynchronous processing of the changing data in the background or some kind of soft lock (dead lock or life lock) which you can encounter by chance.
I think it's best for future refactoring efforts to avoid multi-threading... such issues are close to impossible to fix. ^^'
Weirdly enough I was able to reproduce a freeze of the application (version 0.14.0+) by removing one random world item, clicking multiple times on the [-] button. However it does not freeze consistently... so I would assume this is either an issue with asynchronous processing of the changing data in the background or some kind of soft lock (dead lock or life lock) which you can encounter by chance.
I think it's best for future refactoring efforts to avoid multi-threading... such issues are close to impossible to fix. ^^'
I have this hang occur frequently when deleting any World item. So far I believe it has only happened when the program has been running for a while it is the first delete to occur in a while. The program freezes completely; a SIGTERM causes the window to vanish but the command line I launch from does not return. Only SIGKILL causes it to return. I'm running with -v now and will see if I can get more info.
Manuskript 0.16.1 on NixOS 24.05.
INFO> Hardware: x86_64 /
INFO> Running from unpackaged source code.
INFO> Manuskript 0.16.1 (Python 3.11.10)
INFO> * PyQt 5.15.9 (compiled against Qt 5.15.14)
INFO> * Qt 5.15.14 (runtime)
INFO> * lxml.etree 5.1.0.0
INFO> * libxml 2.12.9 (compiled: 2.12.9)
INFO> * libxslt 1.1.39 (compiled: 1.1.39)
INFO> * pyEnchant 3.2.2 (libenchant: 2.6.9)
INFO> * pySpellChecker N/A
INFO> * Symspellpy N/A
INFO> * Markdown N/A
INFO> Web rendering engine: QTextEdit