Freeze detection 64bit

contains all delphi packages mentioned below
Post Reply
SSchaefer
Posts: 7
Joined: Thu Dec 12, 2019 4:00 pm

Freeze detection 64bit

Post by SSchaefer »

I have noticed multiple times that the freeze detection (including MadTraceProcess) will sometimes not show the main thread for 64bit builds.
The callstacks of all other threads are shown (I think), but the main thread (the one that is actually frozen) is not contained. Is this maybe a known issue?
Attachments
freeze.jpg
freeze.jpg (13.29 KiB) Viewed 8204 times
madshi
Site Admin
Posts: 10403
Joined: Sun Mar 21, 2004 5:25 pm

Re: Freeze detection 64bit

Post by madshi »

Not that I'm aware of. Are you sure the main thread still "exists"? It could be crashed and then gone, which would also explain the detected freeze. Windows doesn't stop a process just because the main thread is done. Actually, Windows doesn't even know the concept of a "main" thread. There are just a bunch of threads. And as long as any thread is still running, and nobody calls ExitProcess(), the process lives on.

P.S: Of course if the main thread actually crashes, madExcept should have reported that, though. So maybe not that likely a scenario? I'm not sure...
obl918
Posts: 23
Joined: Thu Sep 03, 2015 8:33 pm

Re: Freeze detection 64bit

Post by obl918 »

For what it's worth, I have seen this, too. I have a user who uploaded 5 bug reports with no main thread and they were all freeze detection. What's more, she was able to continue using the application without any problems -- except that when the freeze detection interval elapsed, she would get another prompt to upload a bug report.
madshi
Site Admin
Posts: 10403
Joined: Sun Mar 21, 2004 5:25 pm

Re: Freeze detection 64bit

Post by madshi »

That sounds so weird! I assume it's a VCL (GUI) application? So even though freeze detection complained and the bug reports contained no main thread, all the VCL forms still continued to work fine?
SSchaefer
Posts: 7
Joined: Thu Dec 12, 2019 4:00 pm

Re: Freeze detection 64bit

Post by SSchaefer »

I'm very sorry for replying so late! I totally forgot to keep looking into the forum and haven't thought about it until now.

It is a VCL / GUI application, correct. I don't think the main thread has actually crashed, the UI still continues to work. To make it even more weird, If I retry to retrieve a report for a frozen application using MadTraceProcess a few times, then eventually it will be able to list the main thread as well. Just not the first few times.

I did a quick test again just now using the 64bit version of our software TreeSize + MadTraceProcess. Even when the main thread is not actually frozen, the report sometimes does not contain the main thread. You might have to try a few times until its reproducible, but after ~5-7 retries, I recieved a report without main thread.
madshi
Site Admin
Posts: 10403
Joined: Sun Mar 21, 2004 5:25 pm

Re: Freeze detection 64bit

Post by madshi »

Can you reproduce the problem in a simple new (almost empty) test project? If so, can you send that test project to me?
SSchaefer
Posts: 7
Joined: Thu Dec 12, 2019 4:00 pm

Re: Freeze detection 64bit

Post by SSchaefer »

Unfortunately not. I tried creating a sample project and applied all kinds of settings and parameters, but was not able to reproduce it there, sorry
madshi
Site Admin
Posts: 10403
Joined: Sun Mar 21, 2004 5:25 pm

Re: Freeze detection 64bit

Post by madshi »

Too bad, not sure how to fix the problem without being able to reproduce it... :(
SSchaefer
Posts: 7
Joined: Thu Dec 12, 2019 4:00 pm

Re: Freeze detection 64bit

Post by SSchaefer »

I finally managed to reproduce it. I was thinking that maybe the ribbon framework has to do with it, so I added a ribbon menu to the sample application. It still takes quite a few retries until it occurs, but as a repro, I did the following:

- Compile and start the application
- Make sure that the application stays in the foreground, so that the OnUpdate code of the action keeps getting triggered (I think that might have to do with it).
- Run MadTraceProcess64 and select the process Project1.exe
- Check trace report. Retry a few times if necessary (Max ~10 times did it for me. I know that's not ideal, but maybe you can work with this anyway)

Note: You can check "callstack crc" in the first tab to see at first glance if it occured. It will show "$00000000" in that case:
callstack crc : $00000000, $00000000, $d88e605a
SSchaefer
Posts: 7
Joined: Thu Dec 12, 2019 4:00 pm

Re: Freeze detection 64bit

Post by SSchaefer »

I can't get the upload to work..
Could you maybe download from our fileshare and attach the file?
https://fileshare.jam-software.de/share ... cedownload
SSchaefer
Posts: 7
Joined: Thu Dec 12, 2019 4:00 pm

Re: Freeze detection 64bit

Post by SSchaefer »

The issue is still present, unfortunately. Any chance you can have another look at this? I still have the sample project that I could send you.
Post Reply