|
Vijilante SubAdmin
Joined: 18 Nov 2001 Posts: 5182
|
Posted: Sat Oct 20, 2007 6:18 pm
[2.07] Critical Section lock |
This one seems to be uncovered by a culmination of other bugs, and the use of my bad package. I am going to upload that package for testing. I have seen a few different behaviors with this including a crash. The only thing that is replicatable is the lock
Procedure
1. Launch CMud
2. Close Sessions Window (ESC)
3. Enter #CLASS test;#CLASS test|test1;#ALARM *2 {bad alarm};#CLASS 0;#T- test1 at the command line
4. Open Package Editor (CTRL-G)
5. Select File|New package from the PE menu
6. Provide a name for your new package
7. Switch to the untitled tab in the PE
8. Move the test class to your new package (drag to tab and right-click Move To both work)
9. Select File|Open from the PE menu
10. Navigate to my bad package and open it
11 Once the bad package is loaded click on one of the odd trigger states
The crash I managed to get once when hitting ESC to break the lock seems to be caused by whatever number of things I clicked on to confirm CMud had locked. I haven't been able to replicate the crash.
Code: |
date/time : 2007-10-20, 14:21:22, 959ms
operating system : Windows XP Service Pack 2 build 2600
system language : English
system up time : 1 day 6 hours
program up time : 1 minute 18 seconds
processor : AMD Athlon(tm) Processor
physical memory : 92/383 MB (free/total)
free disk space : (C:) 13.97 GB
display mode : 1024x768, 32 bit
process id : $d24
allocated memory : 27.05 MB
executable : cMUD.exe
exec. date/time : 2007-10-19 18:25
version : 2.7.0.0
madExcept version : 3.0b
callstack crc : $fd0c0ebe, $c741b807, $c741b807
count : 2
exception number : 1
exception class : EAccessViolation
exception message : Access violation at address 005AE198 in module 'cMUD.exe'. Read of address 00000030.
Main ($8e4):
005ae198 +000 cMUD.exe cxCustomData 9214 +0 TcxDataSummary.GetOptions
005a9377 +137 cMUD.exe cxCustomData 6217 +24 TcxCustomDataControllerInfo.DoChangeFocusedRow
005ab2c1 +02d cMUD.exe cxCustomData 7368 +4 TcxCustomDataControllerInfo.SetFocusedRowIndex
005b17f0 +06c cMUD.exe cxCustomData 11260 +8 TcxCustomDataController.ChangeFocusedRowIndex
007ef0ef +03b cMUD.exe cxInplaceContainer 5354 +3 TcxCustomControlController.SetFocusedRecordIndex
00801465 +01d cMUD.exe cxTL 8016 +2 TcxTreeListController.SetFocusedRecordIndex
007ef481 +049 cMUD.exe cxInplaceContainer 5472 +5 TcxCustomControlController.SetFocusedRecordItem
00803543 +01f cMUD.exe cxTL 8848 +2 TcxTreeListController.SetFocusedRecordItem
007eea29 +10d cMUD.exe cxInplaceContainer 5097 +20 TcxCustomControlController.DoMouseDown
0080258b +06f cMUD.exe cxTL 8456 +8 TcxTreeListController.DoMouseDown
007f152b +077 cMUD.exe cxInplaceContainer 6800 +9 TcxEditingControl.MouseDown
005062cd +091 cMUD.exe Controls 4728 +7 TControl.DoMouseDown
00506330 +054 cMUD.exe Controls 4737 +5 TControl.WMLButtonDown
00561408 +0d8 cMUD.exe cxControls 2441 +15 TcxControl.WndProc
007f1732 +01e cMUD.exe cxInplaceContainer 6861 +3 TcxEditingControl.WndProc
00509894 +034 cMUD.exe Controls 6237 +3 TWinControl.MainWndProc
0047fef8 +014 cMUD.exe Classes 10966 +8 StdWndProc
77d4bcc7 +00a USER32.dll DispatchMessageA
0052ee48 +0ac cMUD.exe Forms 6873 +13 TApplication.ProcessMessage
0052ee8f +00f cMUD.exe Forms 6892 +1 TApplication.HandleMessage
0052f12a +0a6 cMUD.exe Forms 6976 +16 TApplication.Run
00dba9f4 +088 cMUD.exe CMUD 344 +18 initialization
7c91312f +069 ntdll.dll RtlUnicodeStringToAnsiString
7c812907 +0b6 kernel32.dll GetVersionExA |
|
|
_________________ The only good questions are the ones we have never answered before.
Search the Forums |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Mon Oct 22, 2007 7:41 pm |
If the "bad package" is the one with the trigger conditions stuck at the root level then yes, loading that package will cause all sorts of troubles.
|
|
|
|
Vijilante SubAdmin
Joined: 18 Nov 2001 Posts: 5182
|
Posted: Mon Oct 22, 2007 8:30 pm |
Yes I am sure it will cause all sorts of bad things. The main point of this particular report is just to let you know that it uncovers a replicatable critical section failure that may not be replicatable in any other fashion.
|
|
_________________ The only good questions are the ones we have never answered before.
Search the Forums |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Mon Oct 22, 2007 8:58 pm |
I understand. What I need to do, however, is to prevent this situation from ever happening in the first place. What I was saying is that once you end up with settings at the root level like this, the code simply isn't designed to handle it at all. There are literally hundreds of routines that will fail when this happens. And I'm not planning to change all of those routines to handle this case, since this case isn't supposed to ever happen. I just need to find any situation that causes settings to appear at the root level and fix them.
If it's a critical section lockup, then ESC will not work. It's only a critical section lock if ESC doesn't work and it's using 0% CPU. |
|
|
|
|
|