-
-
Notifications
You must be signed in to change notification settings - Fork 123
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ctrl+Q while reading directories leads to segfault crash #122
Comments
I would really appreciate at least some context information. From the backtrace of that attached file (what format is this? generated by some crash reporting tool?) I can guess that you terminated the program while it was still reading directories. In general, the log file (`/tmp/qdirstat-$USER/qdirstat.log) is needed to do anything useful. In this case we can do without it, but for future bug reports, please add it. Looks like i can reproduce this. Investigating. |
Backtrace:
|
Apologies if that appeared short. Probably I should phrase it differently, but that is the context: Maybe this
should be
that
Apologies, I forgot to mention that. I've worked so far by "just" providing those files, so I forgot that they are not "just" core dumps. It's an Apport-crash file (from Xenial)
They don't appear very informative, but you are right: qdirstat-logs-122.tar.gz There you go
|
This must have been a long-standing bug: It was a chicken-egg problem while shutting down everything properly while directory reading was still in progress. The Then it was the turn of the The fix was to check the tree first if it is in the process of being destroyed and not do the finishing work for each For a short while I had thought about reversing the order of cleanup work in the |
Stavros, this was a good catch. I wonder why nobody reported this before; this must go back a long time. |
😄 thank you. I like to break things, and share my findings / ideas |
So, now it doesn't crash alright; but close experience is "a bit weird" still. Can you make it:
|
Well, if reading directories takes so long that you might even wish to terminate the program before it's finished, it reads a lot of directories, so it creates a lot of objects. Shutting down means to free all those objects, calling each one's destructor in the process that in turn does some cleaning up. It's just some few instructions for each one, but when you have hundreds of thousands of them, this also accumulates. How long does this shutdown take for you? Are we talking about some few seconds or longer? What is your estimate how long it takes? |
Scratch that, I cannot replicate it anymore :/ Maybe I confused executed versions, or there were weird I/O calls that were slugging, idk ... |
_usr_bin_qdirstat.1000.crash.tar.gz
I don't know if it's actionable, your call
The text was updated successfully, but these errors were encountered: