PR# 12485 EiffelStudio hangs after typing Ctrl+Tab
Problem Report Summary
Submitter: peter_gummer
Category: EiffelStudio
Priority: High
Date: 2007/04/16
Class: Bug
Severity: Critical
Number: 12485
Release: 6.0.6.7849
Confidential: No
Status: Closed
Responsible:
Environment: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3
Synopsis: EiffelStudio hangs after typing Ctrl+Tab
Description
I launched EiffelStudio 6.0.6.7849 for the first time and selected a 5.7 .NET project. When I clicked the Open button, it automatically started recompiling the project, as normal. There were some errors at degree 4, caused by our override of INTEGER_32. I realised that I would have to remove or correct this and a few other overrides of basic classes, so I started with our override of INTERNAL. From the Clusters tool, I opened our INTERNAL and then your INTERNAL in two separate tabs. I then typed Ctrl+Tab to view our INTERNAL again. The Ctrl+Tab pop-up window appeared, but remained when I released the Ctrl key. Pressing Esc had no effect. I Alt+Tabbed to another application, and then back to EiffelStudio, but it did not display itself. It has hung! Process Explorer shows that ec.exe is using ~80% CPU, and that the window title is SD_ZONE_NAVIGATION_DIALOG_IMP. It's been like this for at least ten minutes, so I'm going to kill it now.
To Reproduce
Problem Report Interactions
Thanks Larry. Reviewing the change, lines 933 and 934 have a comment that no longer applies: -- Note that if a word is contained that is longer than the width of the label, -- this will probable lead to problems. No attempt to prevent this is made in the code. I'm also a little worried about the use of temp_string at line 974. It remains Void if the inner loop (lines 953 to 968) is never entered. It looks like the other variables prevent this from happening, but it's far from explicit. I would initialise temp_string at line 954.
Hi, Peter, I have compiled your project, reproduced the bug. Now the bug is fixed in revision#68101. The bug is caused by infinite text wrapping calculation. Thank you for your report. Sorry for the trouble.
Thank you very much! I'll terminate this bug in this week.
This is still happening in 6.0.6.8021. As before, it happened the first time I tried Ctrl+Tab. I've attempted to reproduce this with a new simple project, but it doesn't happen. Yet it always happens in the real project that I'm working on! I think the easiest way to demonstrate the problem would be if you download and build our project from our Subversion repository: http://svn.openehr.org/ref_impl_eiffel/TRUNK The project is "apps\adl_workbench\app\adl_workbench.ecf" (the "adl_workbench" target). Once you've downloaded the source, simply open adl_workbench in EiffelStudio and compile it. Then open a couple of classes. Classes like ANY and STRING don't seem to exhibit the problem, but DADL2_VALIDATOR and YY_PARSER_SKELETON hang every time!
Yes, Larry, it looks as bad as the previous release. Today was the first time I tried browsing classes in 6.0.6.7948. I had four editor tabs open. I used Ctrl+Tab once or twice with no problem, not thinking about it much because I knew you had fixed it. (Ctrl+Tab is a reflex with me; I've been using it in various IDEs since 1995, so I do it without thinking.) Then I hit Ctrl+Tab to go to another class and it froze, exactly like the previous release. (Note that the previous release didn't freeze the first time either: it was usually the second or third time.) Because it's still broken, I've been using the mouse since then. But, because you asked, I switched to EiffelStudio and hit Ctrl+Tab once. It froze. It is definitely still broken.
Does it happens constantly? In Eiffel Studio version 67948, I don't have this problem so far.
This is still happening in revision 6.0.6.7948.
Hi, Peter, Sorry for the troubles. This bug is fixed in revision#67885. Thank you very much for your report. Larry Liu
It's happened yet again! I - must - not - type - Ctrl - Tab I - must - not - type - Ctrl - Tab I - must - not - type - Ctrl - Tab
This has just happened to me again. This time it was in a different project (a classic Vision2 project) with two different classes. Neither of the classes was an override. One of them was not part of the system however. The system had been fully compiled this time.