Jump to content
RaelB

IDE hangs for a few seconds every couple of minutes

Recommended Posts

Hi,

I recently upgraded to 15.0.33. Every few minutes the IDE hangs for a few seconds. I'm mostly working with small to medium sized units.

Delphi 10.3.2

Not sure if this is related to MMX, or perhaps to the IDE updating the number of days left to update subscription..

 

Thanks

Rael

Share this post


Link to post

I think I have the same issue on Delphi 10.4 Update 1.

 

I'm using a 32" 4K screen with both Structure and MMX panels visible. The IDE sometimes freeze when I change focus or press a tab to display another unit. When I hide the MMX panel I'm no longer able to reproduce the freeze.

 

The IDE springs to life after a minute or so each time it happens.

 

I tried to see what's going on using Process Explorer. I've posted a call stack below (it doesn't seem to be very helpful though...).

 

It happened using MMX 15.0.32 as well.

 

0x0000000000000000
rtl270.bpl!@System@@BeforeDestruction$qqrxp14System@TObjectzc
0x0000000000000000
rtl270.bpl!@System@@BeforeDestruction$qqrxp14System@TObjectzc
vcl270.bpl!@Vcl@Themes@StyleServices$qqrp21Vcl@Controls@TControl+0xf9
vcl270.bpl!@Vcl@Themes@TStyleHook@StyleServices$qqrv+0x8
vcl270.bpl!@Vcl@Themes@TStyleManager@HandleMessage$qqrp24Vcl@Controls@TWinControlr24Winapi@Messages@TMessageynpqqrr24Winapi@Messages@TMessage$v+0x56
vcl270.bpl!@Vcl@Controls@TWinControl@DoHandleStyleMessage$qqrr24Winapi@Messages@TMessage+0x14
vcl270.bpl!@Vcl@Comctrls@TToolBar@WndProc$qqrr24Winapi@Messages@TMessage+0x249
vcl270.bpl!@Vcl@Controls@TControl@Perform$qqruiuii+0x27
vcl270.bpl!@Vcl@Comctrls@TToolButton@CMEnabledChanged$qqrr24Winapi@Messages@TMessage+0x4b
vcl270.bpl!@Vcl@Controls@TControl@WndProc$qqrr24Winapi@Messages@TMessage+0x2c1
vcl270.bpl!@Vcl@Controls@TControl@Perform$qqruiuii+0x27
vcl270.bpl!@Vcl@Controls@TControl@SetEnabled$qqro+0x16
vcl270.bpl!@Vcl@Comctrls@TToolBar@CanAutoSize$qqrrit1+0x5
vcl270.bpl!@Vcl@Controls@TWinControl@AdjustSize$qqrv+0x31
vcl270.bpl!@Vcl@Comctrls@TToolButton@CMVisibleChanged$qqrr24Winapi@Messages@TMessage+0x78
vcl270.bpl!@Vcl@Controls@TControl@WndProc$qqrr24Winapi@Messages@TMessage+0x2c1
vcl270.bpl!@Vcl@Controls@TControl@SetVisible$qqro+0x2b
vcl270.bpl!@Vcl@Comctrls@TToolButton@SetButtonState$qqruc+0x35
vcl270.bpl!@Vcl@Comctrls@TToolBar@UpdateButtonState$qqri+0x2a
vcl270.bpl!@Vcl@Comctrls@TToolBar@UpdateButtonStates$qqrv+0x3b
vcl270.bpl!@Vcl@Comctrls@TToolBar@WrapButtons$qqrrit1+0x1cd
vcl270.bpl!@Vcl@Comctrls@TToolBar@CanAutoSize$qqrrit1+0x5
vcl270.bpl!@Vcl@Controls@TWinControl@AdjustSize$qqrv+0x31
vcl270.bpl!@Vcl@Comctrls@TToolButton@CMVisibleChanged$qqrr24Winapi@Messages@TMessage+0x78
vcl270.bpl!@Vcl@Controls@TControl@WndProc$qqrr24Winapi@Messages@TMessage+0x2c1
vcl270.bpl!@Vcl@Controls@TControl@SetVisible$qqro+0x2b
vcl270.bpl!@Vcl@Comctrls@TToolButton@SetButtonState$qqruc+0x35
vcl270.bpl!@Vcl@Comctrls@TToolBar@UpdateButtonState$qqri+0x2a
vcl270.bpl!@Vcl@Comctrls@TToolBar@UpdateButtonStates$qqrv+0x3b
vcl270.bpl!@Vcl@Comctrls@TToolBar@WrapButtons$qqrrit1+0x1cd
vcl270.bpl!@Vcl@Comctrls@TToolBar@CanAutoSize$qqrrit1+0x5
vcl270.bpl!@Vcl@Controls@TWinControl@AdjustSize$qqrv+0x31
vcl270.bpl!@Vcl@Comctrls@TToolButton@CMVisibleChanged$qqrr24Winapi@Messages@TMessage+0x78
vcl270.bpl!@Vcl@Controls@TControl@WndProc$qqrr24Winapi@Messages@TMessage+0x2c1
vcl270.bpl!@Vcl@Controls@TControl@SetVisible$qqro+0x2b
vcl270.bpl!@Vcl@Comctrls@TToolButton@SetButtonState$qqruc+0x35
vcl270.bpl!@Vcl@Comctrls@TToolBar@UpdateButtonState$qqri+0x2a
vcl270.bpl!@Vcl@Comctrls@TToolBar@UpdateButtonStates$qqrv+0x3b
vcl270.bpl!@Vcl@Comctrls@TToolBar@WrapButtons$qqrrit1+0x1cd
vcl270.bpl!@Vcl@Comctrls@TToolBar@CanAutoSize$qqrrit1+0x5
vcl270.bpl!@Vcl@Controls@TWinControl@AdjustSize$qqrv+0x31
vcl270.bpl!@Vcl@Comctrls@TToolButton@CMVisibleChanged$qqrr24Winapi@Messages@TMessage+0x78
vcl270.bpl!@Vcl@Controls@TControl@WndProc$qqrr24Winapi@Messages@TMessage+0x2c1
vcl270.bpl!@Vcl@Controls@TControl@SetVisible$qqro+0x2b
vcl270.bpl!@Vcl@Comctrls@TToolButton@SetButtonState$qqruc+0x35
vcl270.bpl!@Vcl@Comctrls@TToolBar@UpdateButtonState$qqri+0x2a
vcl270.bpl!@Vcl@Comctrls@TToolBar@UpdateButtonStates$qqrv+0x3b
vcl270.bpl!@Vcl@Comctrls@TToolBar@WrapButtons$qqrrit1+0x1cd
vcl270.bpl!@Vcl@Comctrls@TToolBar@CanAutoSize$qqrrit1+0x5
vcl270.bpl!@Vcl@Controls@TWinControl@AdjustSize$qqrv+0x31
vcl270.bpl!@Vcl@Comctrls@TToolButton@CMVisibleChanged$qqrr24Winapi@Messages@TMessage+0x78
vcl270.bpl!@Vcl@Controls@TControl@WndProc$qqrr24Winapi@Messages@TMessage+0x2c1
vcl270.bpl!@Vcl@Controls@TControl@SetVisible$qqro+0x2b
vcl270.bpl!@Vcl@Comctrls@TToolButton@SetButtonState$qqruc+0x35
vcl270.bpl!@Vcl@Comctrls@TToolBar@UpdateButtonState$qqri+0x2a
vcl270.bpl!@Vcl@Comctrls@TToolBar@UpdateButtonStates$qqrv+0x3b
vcl270.bpl!@Vcl@Comctrls@TToolBar@WrapButtons$qqrrit1+0x1cd
vcl270.bpl!@Vcl@Comctrls@TToolBar@CanAutoSize$qqrrit1+0x5
vcl270.bpl!@Vcl@Controls@TWinControl@AdjustSize$qqrv+0x31
vcl270.bpl!@Vcl@Comctrls@TToolButton@CMVisibleChanged$qqrr24Winapi@Messages@TMessage+0x78
vcl270.bpl!@Vcl@Controls@TControl@WndProc$qqrr24Winapi@Messages@TMessage+0x2c1
vcl270.bpl!@Vcl@Controls@TControl@SetVisible$qqro+0x2b
vcl270.bpl!@Vcl@Comctrls@TToolButton@SetButtonState$qqruc+0x35
vcl270.bpl!@Vcl@Comctrls@TToolBar@UpdateButtonState$qqri+0x2a
vcl270.bpl!@Vcl@Comctrls@TToolBar@UpdateButtonStates$qqrv+0x3b
vcl270.bpl!@Vcl@Comctrls@TToolBar@WrapButtons$qqrrit1+0x1cd
vcl270.bpl!@Vcl@Comctrls@TToolBar@CanAutoSize$qqrrit1+0x5
vcl270.bpl!@Vcl@Controls@TWinControl@AdjustSize$qqrv+0x31
vcl270.bpl!@Vcl@Comctrls@TToolButton@CMVisibleChanged$qqrr24Winapi@Messages@TMessage+0x78
vcl270.bpl!@Vcl@Controls@TControl@WndProc$qqrr24Winapi@Messages@TMessage+0x2c1
vcl270.bpl!@Vcl@Controls@TControl@SetVisible$qqro+0x2b
vcl270.bpl!@Vcl@Comctrls@TToolButton@SetButtonState$qqruc+0x35
vcl270.bpl!@Vcl@Comctrls@TToolBar@UpdateButtonState$qqri+0x2a
vcl270.bpl!@Vcl@Comctrls@TToolBar@UpdateButtonStates$qqrv+0x3b
vcl270.bpl!@Vcl@Comctrls@TToolBar@WrapButtons$qqrrit1+0x1cd
vcl270.bpl!@Vcl@Comctrls@TToolBar@CanAutoSize$qqrrit1+0x5
vcl270.bpl!@Vcl@Controls@TWinControl@AdjustSize$qqrv+0x31
vcl270.bpl!@Vcl@Comctrls@TToolButton@CMVisibleChanged$qqrr24Winapi@Messages@TMessage+0x78
vcl270.bpl!@Vcl@Controls@TControl@WndProc$qqrr24Winapi@Messages@TMessage+0x2c1
vcl270.bpl!@Vcl@Controls@TControl@SetVisible$qqro+0x2b
vcl270.bpl!@Vcl@Comctrls@TToolButton@SetButtonState$qqruc+0x35
vcl270.bpl!@Vcl@Comctrls@TToolBar@UpdateButtonState$qqri+0x2a
vcl270.bpl!@Vcl@Comctrls@TToolBar@UpdateButtonStates$qqrv+0x3b
vcl270.bpl!@Vcl@Comctrls@TToolBar@WrapButtons$qqrrit1+0x1cd
vcl270.bpl!@Vcl@Comctrls@TToolBar@CanAutoSize$qqrrit1+0x5
vcl270.bpl!@Vcl@Controls@TWinControl@AdjustSize$qqrv+0x31
vcl270.bpl!@Vcl@Comctrls@TToolButton@CMVisibleChanged$qqrr24Winapi@Messages@TMessage+0x78
vcl270.bpl!@Vcl@Controls@TControl@WndProc$qqrr24Winapi@Messages@TMessage+0x2c1
vcl270.bpl!@Vcl@Controls@TControl@SetVisible$qqro+0x2b
vcl270.bpl!@Vcl@Comctrls@TToolButton@SetButtonState$qqruc+0x35
vcl270.bpl!@Vcl@Comctrls@TToolBar@UpdateButtonState$qqri+0x2a
vcl270.bpl!@Vcl@Comctrls@TToolBar@UpdateButtonStates$qqrv+0x3b
vcl270.bpl!@Vcl@Comctrls@TToolBar@WrapButtons$qqrrit1+0x1cd
vcl270.bpl!@Vcl@Comctrls@TToolBar@CanAutoSize$qqrrit1+0x5
vcl270.bpl!@Vcl@Controls@TWinControl@AdjustSize$qqrv+0x31
vcl270.bpl!@Vcl@Comctrls@TToolButton@CMVisibleChanged$qqrr24Winapi@Messages@TMessage+0x78
vcl270.bpl!@Vcl@Controls@TControl@WndProc$qqrr24Winapi@Messages@TMessage+0x2c1
vcl270.bpl!@Vcl@Controls@TControl@SetVisible$qqro+0x2b
vcl270.bpl!@Vcl@Comctrls@TToolButton@SetButtonState$qqruc+0x35
vcl270.bpl!@Vcl@Comctrls@TToolBar@UpdateButtonState$qqri+0x2a
vcl270.bpl!@Vcl@Comctrls@TToolBar@UpdateButtonStates$qqrv+0x3b

 

Edited by Rickard Johansson

Share this post


Link to post

I am unable to spot any change between 15.0.30 and 15.0.32 that may be responsible fot that. I need more info (yeah, I know that may be difficult)

Share this post


Link to post

1. When using MMX 15.0.33 I tried creating a tab group with the MMX explorer panel and the structure panel, to test if I could reproduce the freeze when the MMX explorer panel was hidden behind the structure panel (structure tab selected). I couldn't. I just assumed it was because the panel was hidden. But maybe it worked because the panel was in a tab group? The changes between 15.0.32 and 15.0.30 include: "fix: sometimes a tabbed Explorer window was empty".

 

2. I've only seen this issue when the explorer panel is docked and not in a tab group.

 

3. When reverting back to 15.0.30 I noticed a difference in explorer panel updates. It seems quicker than in 15.0.33 when switching unit tabs (I'm using default delay settings).

Share this post


Link to post
30 minutes ago, Rickard Johansson said:

2. I've only seen this issue when the explorer panel is docked and not in a tab group. 

Not sure what you mean by tab group? I think that's what I have (and still have the issue)

 

My layout is as follows:

 

image.thumb.png.a646c0119395e139bff09ffa396d733c.png

 

You got any "Update Subscription" countdown in your ide?

Share this post


Link to post

After some testing I finally found out why the IDE was behaving the way it did.

 

Ever since I bought my 4K 32" screen I've been experimenting with different high DPI settings to make the development environment as pleasing to use as possible inside my VM. I ended up with using:

 

Windows scale setting: 150%

High DPI scale scaling override: Application

 

I may have updated MMX to 15.0.32 at the same time. 

 

Changing Windows scale to 100% seems to solve all issues. No more hangs, or strange refresh/resize issues, or strange large fonts in some settings pages. I can even run GExperts now (it crashed the IDE before after a few minutes)...

 

Share this post


Link to post

Very interesting topic!  I also have been getting 10.4.1 IDE instability, and in 10.4 too.  Not quite enough to stop work and try to track it down, but annoying.  After reading the start of this topic I looked at my MMX version, and found it was 15.0.29, so I experimentally upgraded to 15.0.32 and the instability and hangs got much worse.  I dropped back to 15.0.30 and no IDE problems yet.  I run my IDE on a 4k screen at 200%, and dropping to 100% is not an option.

Share this post


Link to post

How long does this "IDE hang" takes?

Can you attach the hanging IDE process to a debugger like OllyDbg and step through until user code

and track it down what part of the IDE / Module it causes?

 

Share this post


Link to post
23 minutes ago, timfrost said:

I run my IDE on a 4k screen at 200%, and dropping to 100% is not an option.

I am running different Delphi versions together with the latest MMX on two 4k monitors with scaling set to 150% and I don't experience any problems.

 

Inspecting the MMX changes between 15.0.29 and 15.0.30 I cannot spot anything causing spurious delays.

Share this post


Link to post
2 minutes ago, Uwe Raabe said:

latest MMX on two 4k monitors with scaling set to 150%

How do you do that? Using it in blurry mode? Because MMX forms are broken in DPI Aware App mode.

Share this post


Link to post

Maybe a long shot...I have this happen from time to time and the problem is TestInsight, for no reason the 'run tests continually when idle' gets selected. IDE will seem to hang because tests are running. Drove me crazy until I found it.

Share this post


Link to post
1 hour ago, Attila Kovacs said:

How do you do that? Using it in blurry mode? Because MMX forms are broken in DPI Aware App mode.

This is a screenshot of the 10.4.1 IDE with MMX 15.0.33 (no DPI overrides):  https://www.dropbox.com/s/ij71pobp9kebxn1/07-02-_2021_14-13-21.png?dl=0

There are some glitches with labels being too long, which come from scaling fonts to the next Integer size. Whenever I see those I try to adjust that with the next update.

 

Can you elaborate a bit on the problems you see? (Perhaps in a separate topic)

Share this post


Link to post

@Uwe Raabe Yeah ok, I see, this is blurry mode, an eye killer. I'm switching to dpi awareness handled by application.

(Yeah I know, there are several other problems, but I'm doing the same like you, when I find time I'm patching the IDE)

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×