Closed Bug 433800 Opened 16 years ago Closed 16 years ago

master password and Save File modal dialog boxes show simultaneously and hang firefox in a deadlock

Categories

(Toolkit :: Password Manager, defect)

PowerPC
macOS
defect
Not set
critical

Tracking

()

RESOLVED DUPLICATE of bug 436473

People

(Reporter: kae, Unassigned)

References

()

Details

(Keywords: qawanted)

User-Agent:       Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14
Build Identifier: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14

I have the Foxmarks add-on installed (version 2.0.45). Foxmarks was setup to automatically synchronize my bookmarks. I was trying to download the "ScanSnap Manager for Mac ScanSnap_V22L11.dmg" from the Fujitsu site here at:

http://www.fujitsu.com/us/services/computing/peripherals/scanners/support/scansnap_mac.html

When I clicked on the link, I got a dialog box asking me if I wanted to save the file.  I clicked the "Save File" button and then another dialog box popped up asking me where I wanted to save the file (I have "always ask me where to save files" selected on the FireFox Main preference page).  At the same time, Foxmarks must have started to automatically sync.  While the Save File dialog box was up, I got another dialog box asking me to enter my master password (I have a FireFox master password and the Foxmarks login information is stored there along with other web passwords).  I don't know what the modality is on those dialog boxes, but I suspect that they were both application modal dialog boxes.

At that point I couldn't click on any of the two dialog boxes.  I also was unable to click on cancel.  FireFox was pretty much locked up.  I had to force quit FireFox. There seems to be a deadlock between these two modal dialog boxes in FireFox. I suspect that the two modal dialog boxes are started from different threads and since they are application modal cause FireFox to lock up.

I've seen this in Firefox 2.0.0.14, but I think there must be a timing issue because it's not easily reproducable; however, I talked to the Foxmarks people and they said that this is very reproducable in FireFox version 3.



Reproducible: Sometimes

Steps to Reproduce:
FireFox setup:
Set "Always ask me where to save files" in the Main Preference Page
Check the "Use a Master Password" and then set a Master Password in the Security Preference Page and check "Remember passwords for sites"

Foxmarks setup:
Download and install Foxmarks add-on  from the URL
setup Foxmarks user account. Open up Tools/Foxmarks/Settings...
Under the Synchronization area, check the "Enable Automatic Synchronization" flag.

Shutdown FireFox.

Now you are ready to begin the test.

1. Startup FireFox

2. Go to the URL(http://www.fujitsu.com/us/services/computing/peripherals/scanners/support/scansnap_mac.html)

3. Select the dmg file under the "Download" link (Opening File.dmg dialog pops up)

4) Choose "Save to Disk" if not already selected and press "Save File" button.

5) A new dialog should pop up requesting the name of file to save and the folder location.

At this point the automatic Foxmarks synchronization should have started, Foxmarks will need the FireFox information located in the master password table and since you have just started FireFox, you will need to enter the master password to access Foxmarks. The use of a password from the master password table will require FireFox to request the user to enter the master password and it will do so by popping up an application modal dialog box.  This will conflict with the application modal dialog box that is brought up by the "Save File"

At this point FireFox will be in a deadlock. I was able to re-create this in FireFox version 2.0.0.14, but the timing must be just right; however,  it is very easily reproduced in FireFox version 3 which demostrates the problem consistently.
I should add that this bug occurred on Max OS X 10.5.2 (Leopard).
(In reply to comment #0)

> I've seen this in Firefox 2.0.0.14, but I think there must be a timing issue
> because it's not easily reproducable; however, I talked to the Foxmarks people
> and they said that this is very reproducable in FireFox version 3.

Hmm. I would have expected it to work better in FF3.

Can someone who can reproduce this attach a stack from when it's hung? [Or sample, if it's pegging the CPU] Ideally with a debug build of FF, so the symbols are not bogus, but even from a normal official build might be useful.
Stack trace in official build; speak out if you need it from the debugging version instead:

(gdb) bt
#0  0x0179544a in JSD_GetValueForObject ()
#1  0x0176b22e in JSD_GetValueForObject ()
#2  0x017f1f9a in NS_GetComponentRegistrar_P ()
#3  0x017bcac1 in GetSecurityContext ()
#4  0x016250e0 in XRE_GetFileFromPath ()
#5  0x015fc855 in XRE_GetFileFromPath ()
#6  0x015fd43a in XRE_GetFileFromPath ()
#7  0x015fdcb0 in XRE_GetFileFromPath ()
#8  0x015fffc5 in XRE_GetFileFromPath ()
#9  0x015f74f0 in XRE_GetFileFromPath ()
#10 0x01661130 in XRE_GetFileFromPath ()
#11 0x002ea86d in PK11_IsLoggedIn ()
#12 0x01671975 in XRE_GetFileFromPath ()
#13 0x01671602 in XRE_GetFileFromPath ()
#14 0x017fd6ad in NS_InvokeByIndex_P ()
#15 0x0104ffc6 in XRE_GetFileFromPath ()
#16 0x0105430c in XRE_GetFileFromPath ()
#17 0x0023f7d5 in js_Invoke ()
#18 0x002334b4 in JS_CompareValues ()
#19 0x0023f840 in js_Invoke ()
#20 0x0104caba in XRE_GetFileFromPath ()
#21 0x01047885 in XRE_GetFileFromPath ()
#22 0x017fd742 in NS_InvokeByIndex_P ()
#23 0x017fdae3 in NS_InvokeByIndex_P ()
#24 0x017fd6ad in NS_InvokeByIndex_P ()
#25 0x0104ffc6 in XRE_GetFileFromPath ()
#26 0x0105430c in XRE_GetFileFromPath ()
#27 0x0023f7d5 in js_Invoke ()
#28 0x002334b4 in JS_CompareValues ()
#29 0x0023f840 in js_Invoke ()
#30 0x0104caba in XRE_GetFileFromPath ()
#31 0x01047885 in XRE_GetFileFromPath ()
#32 0x017fd742 in NS_InvokeByIndex_P ()
#33 0x017fda6f in NS_InvokeByIndex_P ()
#34 0x017fd6ad in NS_InvokeByIndex_P ()
#35 0x0104ffc6 in XRE_GetFileFromPath ()
#36 0x0105430c in XRE_GetFileFromPath ()
#37 0x0023f7d5 in js_Invoke ()
#38 0x002334b4 in JS_CompareValues ()
#39 0x0023f840 in js_Invoke ()
#40 0x0023ef96 in js_FreeStack ()
#41 0x0023fa11 in js_Invoke ()
#42 0x00247548 in JSLL_MinInt ()
#43 0x0024c70b in js_LookupProperty ()
#44 0x00234007 in JS_CompareValues ()
#45 0x0023f840 in js_Invoke ()
#46 0x0023ef96 in js_FreeStack ()
#47 0x0023fa11 in js_Invoke ()
#48 0x00247548 in JSLL_MinInt ()
#49 0x0024c70b in js_LookupProperty ()
#50 0x00234007 in JS_CompareValues ()
#51 0x0023f840 in js_Invoke ()
#52 0x0104caba in XRE_GetFileFromPath ()
#53 0x01047885 in XRE_GetFileFromPath ()
#54 0x017fd742 in NS_InvokeByIndex_P ()
#55 0x017fd89f in NS_InvokeByIndex_P ()
#56 0x01085998 in XRE_GetFileFromPath ()
#57 0x010dd123 in XRE_GetFileFromPath ()
#58 0x0106ea1e in XRE_GetFileFromPath ()
#59 0x0106ef07 in XRE_GetFileFromPath ()
#60 0x0199ed97 in JNIEnv_::CallStaticObjectMethod ()
#61 0x017f1ff7 in NS_GetComponentRegistrar_P ()
#62 0x017bcb67 in GetSecurityContext ()
#63 0x017950dd in JSD_GetValueForObject ()
#64 0x0176bb27 in JSD_GetValueForObject ()
#65 0x9082cefa in CFRunLoopRunSpecific ()
#66 0x9082ca36 in CFRunLoopRunInMode ()
#67 0x92df5878 in RunCurrentEventLoopInMode ()
#68 0x92df4f82 in ReceiveNextEventCommon ()
#69 0x92df4dd9 in BlockUntilNextEventMatchingListInMode ()
#70 0x9329c0e5 in _DPSNextEvent ()
#71 0x9329bcd7 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
#72 0x93366d9d in -[NSApplication _realDoModalLoop:peek:] ()
#73 0x93365c34 in -[NSApplication runModalForWindow:] ()
#74 0x9348b958 in -[NSSavePanel(NSSavePanelRuntime) runModalForDirectory:file:types:] ()
#75 0x9354f770 in -[NSSavePanel(NSSavePanelRuntime) runModalForDirectory:file:] ()
#76 0x01766213 in JSD_GetValueForObject ()
#77 0x017670c3 in JSD_GetValueForObject ()
#78 0x017fd6ad in NS_InvokeByIndex_P ()
#79 0x0104ffc6 in XRE_GetFileFromPath ()
#80 0x0105430c in XRE_GetFileFromPath ()
#81 0x0023f7d5 in js_Invoke ()
#82 0x002334b4 in JS_CompareValues ()
#83 0x0023f840 in js_Invoke ()
#84 0x0104caba in XRE_GetFileFromPath ()
#85 0x01047885 in XRE_GetFileFromPath ()
#86 0x017fd742 in NS_InvokeByIndex_P ()
#87 0x017fd8d9 in NS_InvokeByIndex_P ()
#88 0x015e1644 in XRE_GetFileFromPath ()
#89 0x015e39c8 in XRE_GetFileFromPath ()
#90 0x017fd6ad in NS_InvokeByIndex_P ()
#91 0x0104ffc6 in XRE_GetFileFromPath ()
#92 0x0105430c in XRE_GetFileFromPath ()
#93 0x0023f7d5 in js_Invoke ()
#94 0x002334b4 in JS_CompareValues ()
#95 0x0023f840 in js_Invoke ()
#96 0x0023ef96 in js_FreeStack ()
#97 0x002093e1 in JS_CallFunctionValue ()
#98 0x0143546a in XRE_GetFileFromPath ()
#99 0x01442167 in XRE_GetFileFromPath ()
#100 0x014425d1 in XRE_GetFileFromPath ()
#101 0x017f4305 in NS_GetComponentRegistrar_P ()
#102 0x017f43cc in NS_GetComponentRegistrar_P ()
#103 0x017f1ff7 in NS_GetComponentRegistrar_P ()
#104 0x017bcb67 in GetSecurityContext ()
#105 0x017950dd in JSD_GetValueForObject ()
#106 0x0176bb27 in JSD_GetValueForObject ()
#107 0x9082cefa in CFRunLoopRunSpecific ()
#108 0x9082ca36 in CFRunLoopRunInMode ()
#109 0x92df5878 in RunCurrentEventLoopInMode ()
#110 0x92df4eb9 in ReceiveNextEventCommon ()
#111 0x92df4dd9 in BlockUntilNextEventMatchingListInMode ()
#112 0x9329c0e5 in _DPSNextEvent ()
#113 0x9329bcd7 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
#114 0x93295a64 in -[NSApplication run] ()
#115 0x0176af6d in JSD_GetValueForObject ()
#116 0x0163af21 in XRE_GetFileFromPath ()
#117 0x01010413 in XRE_main ()
#118 0x00001d25 in start ()
(gdb) 
A stack from a debug build would be best, since otherwise most of the symbols are bogus. Is the process consuming CPU while this is going on?

(And please add stacks as an attachment, instead of in comments)
Ah yes, *attach* a stack; missed that, my apologies.

Where do I download the debug build from?  Or do I just build my own?  (shudder)

The Firefox process is consuming 100% CPU while this is going on.  I have no problem whatsoever replicating it under Firefox 3 on Mac OS 10.4.11 using the instructions in this report.  The Foxmarks client is downloadable from http://beta.foxmarks.com/
A correction to the steps to reproduce. I forgot to put in the URL for the foxmarks download (this is the official download not the beta):

Foxmarks setup:
Download and install Foxmarks add-on from the URL

should be changed to read as:

Foxmarks setup:
Download and install Foxmarks add-on  from the URL https://addons.mozilla.org/en-US/firefox/search?q=foxmarks&cat=all
or https://addons.mozilla.org/en-US/firefox/downloads/file/24763/foxmarks_bookmark_synchronizer-2.0.45-fx.xpi
For testing Firefox 3 use the http://beta.foxmarks.com/ URL as specified in Comment #5.
Product: Firefox → Toolkit
Stack and STR here matches the problem in bug 436473, so duping.
Status: UNCONFIRMED → RESOLVED
Closed: 16 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.