Closed Bug 47393 Opened 24 years ago Closed 23 years ago

Possible to get multiple instances launching; may crash in some cases

Categories

(SeaMonkey :: UI Design, defect, P3)

x86
Windows 98
defect

Tracking

(Not tracked)

RESOLVED FIXED
Future

People

(Reporter: devotip, Assigned: law)

References

Details

(Keywords: crash, Whiteboard: [nsbeta3-])

From Bugzilla Helper:
User-Agent: Mozilla/5.0 (Windows; U; Win98; en-US; m18) Gecko/20000802
BuildID:    2000080208

If you put a link to mozilla in the win98 taskbar you can start it with a single
click. randomly clicking on that link you get a crash
With the provided steps I get a crash 1 out of four attempts.
Note that the bug 47379 I filed is not related to this.
This one is after the browser opened the other one has only the splash screen in
view.

Reproducible: Sometimes
Steps to Reproduce:
1.Have a way to start mozilla with a single click (eg:win98 taskbar)
2.continue to click on the icon until the browser is open and the mozilla page
loaded
3.If you do not get a crash close the browser and repeat 2

Actual Results:  A dialog telling that the app had an error and the choice
between close or ignore. if you close crash

Expected Results:  no crash

MOZILLA caused a general protection fault
in module DDEML.DLL at 0002:00004c3b.
Registers:
EAX=16973c86 CS=1697 EIP=00004c3b EFLGS=00000246
EBX=000206e0 SS=4caf ESP=00008c24 EBP=00008c38
ECX=000104cc DS=168f ESI=000006e0 FS=19df
EDX=04cc0000 ES=3aae EDI=0000006c GS=0000
Bytes at CS:EIP:
26 8b 35 26 8b 55 02 89 56 f6 66 83 7f 36 00 74
Stack dump:
0a1006e0 00000000 00000000 02a50000 00008c66 06358c66 06e01697 19df0167 060c0167
000004cc 168f0a10 00493f75 03ed00c2 19df0167 0000c218 bff70a10
Checking the list of active tasks there are a lot of mozilla but no mozilla's 
windows in view. If is useful to collect more crash dumps let me know.
Still happening with (win98 2000080408)

MOZILLA caused an invalid page fault in
module DDEML.DLL at 0002:00004c3b.
Registers:
EAX=1697319e CS=1697 EIP=00004c3b EFLGS=00000246
EBX=00020420 SS=3fdf ESP=00008c24 EBP=00008c38
ECX=000104cc DS=168f ESI=00000420 FS=3caf
EDX=04cc0000 ES=3aae EDI=0000006c GS=0000
Bytes at CS:EIP:
26 8b 35 26 8b 55 02 89 56 f6 66 83 7f 36 00 74
Stack dump:
05600420 00000000 00000000 02a50000 00008c66 06358c66 04201697 3caf0167 06d80167
000004cc 168f0560 0004ec3c 03fa00c4 3caf0167 0000c234 bff70560 
unable to reproduce this crash with mozilla 080408 M18 build on 98 or NT
Some more considerations.
It happen only when you start the fast random click and there are no mozillas 
open. It seems that the first instance is attempting to lock and publish a 
resource but starting a some browsers almost together makes the sistem to go low 
on resource and the "arbitered" access to fail.
The dialog is in the style you get when the system is low on resource, two 
buttons Close and Ignore and the following message
"Mozilla
An error has occurred in your program. To keep working anyway,
click ignore and save your work in a new file. To quit this program click close.
You will lose information you entered sice your last save"

any button leads to a crash, after closing the crash dump window mozilla opens 
the home page wich is set to mozilla.org
In nsNativeAppSupportWin.cpp you can find a reference (large comment point 3) to 
the risks of startup errors that are supposed to be silent. Perhaps the issue is 
the fact that there is no silent handling of the expected error condition.
over to toolkit for further triage.  I'm not sure here.
Assignee: asa → trudelle
Component: Browser-General → XP Toolkit/Widgets
QA Contact: doronr → jrgm
This requires multiple rapid clicks of the button? Even then, it only happens
~25% of the time?  Does it ever happen with just 2-3 clicks?  Has anyone ever
encountered this in real-world use?
I can't reproduce this on win98, although there does appear to be a small
window ... on win95, with a little scheming, I was able to get three instances 
of netscp6.exe running concurrently (basically by starting with none running, 
and then clicking rapidly to get several instances "queued up" and killing
the first to come up -- the remaining ones "in the queue" all completed 
separate startups. However, I didn't crash). 

This is really Bill Law's territory. There is some DDE code that tries
to prevent more than one instance from running. Bill can decide whether this
needs revisiting/bulletproofing. 

However, the question still stands -- has anyone really hit this in a normal
use scenario, or only by rapidly clicking on the mouse to get multiple 
concurrent instances all trying to start? If this is not something that people
can hit on a day-to-day basis, then this is probably not something that needs
any attention before RTM.
Assignee: trudelle → law
Status: UNCONFIRMED → NEW
Component: XP Toolkit/Widgets → XP Apps
Ever confirmed: true
Changing summary from "Crash, no full circle" to something a little more 
descriptive.
Summary: Crash, no full circle → Possible to get multiple instances launching; may crash in some cases
About the real world use I can only tell that It happened to me the first time 
with two clicks described in bug 47379 and the in the attempt of making that one 
repeatable I landed on this. I can't tell if this bug and the other one are the 
same one but as a bottom line if you do two clicks and you have your lucky star 
in a bad mood mozilla gets a twin.

Since is not easy to get there is probably enought to widen the locked window 
and avoid that race condition.
Adding crash keyword to all open crash bugs that don't already have it...
Keywords: crash
nav triage team:
nsbeta3-
Difficult to reproduce, difficult to fix, won't happen to many people (this 
specfic scenario), so nsbeta3-.
Whiteboard: [nsbeta3-]
The following code fragment allows to detect a previous instance of an app
This can be used to know if mozilla is running before running the current code
and avoid the timeout based current detection.
For details look at win32 docs
{
HANDLE hMapping;

   hMapping = CreateFileMapping( (HANDLE) 0xffffffff,
					 NULL,
					 PAGE_READONLY,
					 0,
					 32,
					 "MozillaServerMap" );
  if( hMapping )
   {
	  if( GetLastError() == ERROR_ALREADY_EXISTS )
	  {
	  //
	  // Do something that tells 
	  // the app is already running.
	  //
	  }
   }
   else
   {
   //
   // Some other error; handle error.
   //
   }
}
nav triage team:

We didn't hold old beta3 for this, we won't hold up beta1 for this. Marking 
nsbeta1-
Keywords: nsbeta1-
Marking nsbeta1- bugs as future to get off the radar
Target Milestone: --- → Future
*** Bug 73765 has been marked as a duplicate of this bug. ***
nav triage team:

Bill checked in DDE code, so now, on launch, the app looks for an currently 
running instance of mozilla and sends a DDE open window message. Also, this is 
how the -turbo mode works. So we're marking this fixed.
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Product: Core → Mozilla Application Suite
You need to log in before you can comment on or make changes to this bug.