Unknown Crash, TC was in Background

The behaviour described in the bug report is either by design, or would be far too complex/time-consuming to be changed

Moderators: white, Hacker, petermad, Stefan2

Post Reply
User avatar
Balderstrom
Power Member
Power Member
Posts: 2148
Joined: 2005-10-11, 10:10 UTC

Unknown Crash, TC was in Background

Post by *Balderstrom »

Was surfing in Opera (10.10 Stable) on a non-flash site; TC was in background (minimized). And Opera shutdown then I got a TC Crash report.
This never occured before in any other TC (or Opera) versions.

Code: Select all

---------------------------
Total Commander 7.55rc3
---------------------------
Access violation at address 7701876C. Read of address 00000004.
Access violation at address 7701876C. Read of address 00000004
Windows 2000 SP4 5.0 (Build 2195)

Please report this error to the Author, with a description
of what you were doing when this error occurred!

Windows exception: C0000005
Stack trace:
7701876C
442E3D  444411  444D8E  >414564  44434F  414564
442E3D  444D8E  414564  44434F  414564  419B82
419CC8  6BEBC9  
Raw:
4442BD  414564  445107  4454C4  4348F7  442E3D
44505D  434699  444411  444D8E  414564  44434F
414564  5559DE  402E36  442E3D  44505D  416240
444411  444D8E  414564  44434F  414564  419B82
419CC8  419E82  6BEBC9  
Press Ctrl+C to copy this report!
Continue execution?
---------------------------
Yes   No   
---------------------------
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48231
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Unfortunately the error is not in Total Commander itself, sorry. Did you use any Lister plugins?
Author of Total Commander
https://www.ghisler.com
User avatar
fenix_productions
Power Member
Power Member
Posts: 1979
Joined: 2005-08-07, 13:23 UTC
Location: Poland
Contact:

Post by *fenix_productions »

2Balderstrom
I think it's something wrong with Opera. In the past I had many TC errors while mentioned Opera version was running longer than an hour. I've used to test TC without this browser running because it was making whole process problematic. For now it's quiet somehow. You'll need to get used to it like I did* ;)

*) I am still running 10.10 because this is the last version with changes I agree with. Newer versions have never had such issues but they are to crappy to be used…
"When we created the poke, we thought it would be cool to have a feature without any specific purpose." Facebook...

#128099
User avatar
Balderstrom
Power Member
Power Member
Posts: 2148
Joined: 2005-10-11, 10:10 UTC

Post by *Balderstrom »

@Fenix,
Agree, I can't stand the 10.5 branch in the least.
So guess I'll deal ;-)
*BLINK* TC9 Added WM_COPYDATA and WM_USER queries for scripting.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48231
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Maybe Opera is broadcasting some Windows messages >=WM_USER to all programs? This is very bad programming style which can lead to strange crashes in other programs. The right way to broadcast messages would be to request a message id via RegisterWindowMessage(). But this is just a guess.
Author of Total Commander
https://www.ghisler.com
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48231
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

I have installed the latest Opera (10.53 Stable) now, but I cannot reproduce any crashes. I opened it with various web pages, also multiple tabs, and then closed it - no crash.

Can you reproduce the error with a specific web site? What about version 10.53, maybe they fixed the problem?
Author of Total Commander
https://www.ghisler.com
User avatar
Balderstrom
Power Member
Power Member
Posts: 2148
Joined: 2005-10-11, 10:10 UTC

Post by *Balderstrom »

Well I've found one thing that Opera 10+ doesn't like at least

Code: Select all

ComboBox1Path( activeWin )
{
	WinWaitActive, ahk_id %activeWin%
	ControlGet, List, List,, ComboBox1, ahk_id %activeWin%
	StringReplace, path, List, `n, \, UseErrorLevel
	if( !RegExMatch( path, "\((\w\:)\) [^\\]+(.*)", pwd ))
		RegExMatch( path, ".*\\(.*)$", pwd )
return pwd1 . pwd2
}

...
	WinGet, aWin, ID, A
	pwd := ComboBox1Path( aWin )
	StringSplit, aPwd, pwd, \
	if(  err := (( aPwd1 != iDrive ) ? "Error: Invalid Drive" : (( aPwd2 != iDir ) ? "Error: Invalid Folder" : "" )) )
		Error(-1, err)
	ControlFocus, SysListView321, ahk_id %aWin%
	Loop, % aPwd0 - 2
		Send, {BackSpace}
	if( SubStr(cPath := ComboBox1Path( aWin ), 4) != iDir )
	{
		MsgBox, cPath: %cPath%, iDir: %iDir%
		Error( -1, "Error: Invalid Root Path")
	}
	savePath := iDrive . "\" . iDir . "\" . opUploadName . "\" . opFolderName
...
I could get Opera to crash randomly after focusing on the ComboBox control (dropdown of the Save Dialog) with AHK and querying it's contents. I was able to cause this crash 4 or 5 times in the last couple days. Of which 2 of those caused an exception in Total Commander.

I rewrote the above to not require accessing the comboBox to query "where it is" and instead figured I can just force it to go where I want by pasting a quoted path into the Edit1 control (Filename field) -- i.e. "J:\A\Slash\Delimitted\Path\" and Enter.

Code: Select all

	savePath := iDrive . "\" . iDir . "\" . opUploadName . "\" . opFolderName
	FileCreateDir, %savePath%
	ControlFocus, Edit1, ahk_id %aWin%
	Clipboard := savePath . "\"
	ClipWait
	Send, ^v{Enter}
As well right now I am back on Opera 9.64, the 10.x branch is excessively unstable and the 10.5x branch is even worse than 10.1 Final. From 9.x to 10.x to 10.5x Opera has gotten ever more memory hungry: Where 9.64 or 10.1 can open hundreds of Tabs and use less than 800MB of Ram - the 10.5 branch will consume all available system ram (over 1400MB for the same tabs) and cause Windows/OS itself to become unstable -- thus impacting every other program running.

The Opera Dev's in the 10.x branch have consistently released "stable/final" versions that have memory leaks -- bugs that have taken 6 months to be fixed, and just when you think it actually has been fixed (since it was in a previous beta) they'll release a final/stable that brings it back.
Two bugs that I am intimately aware of, the Save-As dialog memory leak and the DNS/Cookie error have been around in all versions since 10.1 and almost everytime you get a Beta that fixes it -- a stable or another Beta comes along that brings it back.

They are also ignoring what many people want from the Browser; removing features that have been around since version 6 or 7 (maybe even 5). Breaking User Javascript without so much as a peep that they have done so aside from a blog from over a year ago that mentioned "window.addEventListener and document.addEventListener"... yet don't proceed to actually do what's listed in that blog for another 6 months. And no answers on the boards to all the questions about how to fix the broken UserJS since 10.5 --- and the whole thing is caused by the Dev's removing features and not letting anyone know at all.
It took 6-9 months or more for shortcuts Ctrl+B, Ctrl+H to get fixed: broken since 10.0 betas and finals, fixed at some point around 10.52.

I'm definitely not looking forward to 11.x as I might not leave 9.64 at this point -- which will mean I'll need to find a new browser and that is depressing.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48231
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

So can you give me some instructions on how to reproduce the crash? Can you send me a complete script which causes the crash if I run it for some time?
Author of Total Commander
https://www.ghisler.com
User avatar
Balderstrom
Power Member
Power Member
Posts: 2148
Joined: 2005-10-11, 10:10 UTC

Post by *Balderstrom »

I don't know if you'll be able to get it to crash or not, I've run it for 10-15 mins with Opera 10.10 and it just keeps looping through:
  1. Opening the Save As dialog,
  2. Querying the path from the ComboBox,
  3. changing directory, then
  4. ESC'ing from the Save As dialog
Script Repeats 1-4.

Though Opera 10.10 only has < 10 tabs open, and thus memory usage is down around 250MB. Instead of 50-100+ Tabs and memory usage in the 800-1000MB range.

Code: Select all

/*
	For the purposes of below, create a folder level like:
		C:\Temp\TC\SubDir1\SubDir2
	And save a download, image or a page .mht (ctrl+s) to there --
 	to set the last used save location to somewhere that is within the path we are testing for "C:\Temp"
	Then the script will run, and check if the "Save As" dialog is within the correct Path.
	
	To activate, launch the script, put Opera into Foreground (active Window) and press Win+S. 
*/

Error( retval, msg )
{
	if( retval == -1 )
	{
		MsgBox, ,,%msg%, 1
		Exit
	}
return retval
}

ComboBox1Path( activeWin )
{
	WinWaitActive, ahk_id %activeWin%
	ControlGet, List, List,, ComboBox1, ahk_id %activeWin%
	StringReplace, path, List, `n, \, UseErrorLevel
	if( !RegExMatch( path, "\((\w\:)\) [^\\]+(.*)", pwd ))
		RegExMatch( path, ".*\\(.*)$", pwd )
return pwd1 . pwd2
}


CheckIFPath()
{
	; global iDrive, iDir, opUploadName, opFolderName

	iDir := "Temp"
	iDrive := "C:"
	opUploadName := "Ghisler"
	opFolderName := "Temporary Folder"

	WinGet, aWin, ID, A

	pwd := ComboBox1Path( aWin )
	StringSplit, aPwd, pwd, \

	if(  err := (( aPwd1 != iDrive ) ? "Error: Invalid Drive" : (( aPwd2 != iDir ) ? "Error: Invalid Folder" : "" )) )
		Error(-1, err)

	ControlFocus, SysListView321, ahk_id %aWin%

	; tmpB := aPwd0 - 2
	; MsgBox, Will Backspace %tmpB% times.
	Loop, % aPwd0 - 2
		Send, {BackSpace}
	if( SubStr(cPath := ComboBox1Path( aWin ), 4) != iDir )
	{
		MsgBox, ,, cPath: %cPath%, iDir: %iDir%, 1
		Error( -1, "Error: Invalid Root Path")
	}
	savePath := iDrive . "\" . iDir . "\" . opUploadName . "\" . opFolderName
	FileCreateDir, %savePath%
	
	ControlFocus, Edit1, ahk_id %aWin%
	
	Clipboard := opUploadName . "\" . opFolderName
	Send, ^v{Enter}
	
	if( ComboBox1Path( aWIn ) != savePath )
		Error(-1, "Error: Invalid savePath")
return
}

#ifWinActive ahk_class OpWindow
{
	;; Win+S
	#s::
	{
		LoopSaveAs:
		Send, ^{s}		; To Open the SaveAs Dialog
	
		WinWaitActive Save As ahk_class #32770

		CheckIFPath()
		Sleep, 200
		Send, {ESC}	;; Close the "Save As" Dialog
		Goto, LoopSaveAs
	return
	}	
return
}
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48231
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

I will try that, thanks!
Author of Total Commander
https://www.ghisler.com
Post Reply