Closed Bug 7902 Opened 26 years ago Closed 26 years ago

Crash switching between many preference panels

Categories

(SeaMonkey :: Preferences, defect, P1)

Tracking

(Not tracked)

VERIFIED WORKSFORME

People

(Reporter: nbaca, Assigned: matt)

References

Details

Attachments

(1 file)

Build 060909M7 for Win32/NT4, Linux and Mac 8.5.

Steps to Reproduce:
1. Open Messenger
2. Select Edit/Preferences
3. Select "Offline" and the application freezes. On Windows and the Mac the
right pane doesn't change. On Linux the right pane becomes blank.
Assignee: phil → alecf
Target Milestone: M7
Reassign to alecf for M7.
QA Contact: lchiang → laurel
*** Bug 8087 has been marked as a duplicate of this bug. ***
Bug 8087 is completely unrelated to this bug.
Status: NEW → RESOLVED
Closed: 26 years ago
Resolution: --- → WORKSFORME
This seems to work now...I think it may have been
oops, I mean it may have been a quirk of that day's build.
I'll check it again when we get today's builds, but using the jun14 builds there
is still a crash -- not at the offline main panel, but when you select Download.

(Also, I'm not able to get to preferences through Messenger, only through
Browser window.)
hmm. I'm wondering if has to do with the order you open panels, and nothing to
do with the panel itself... can you experiment some more opening and closing
panels?
Sorry, I don't mean opening and closing panels, I mean switching between
panels...
Status: RESOLVED → REOPENED
No apparent pattern, but yes I can crash fairly easily switching from panel to
panel (or subpanels) within just about any section, not just mailnews. Crashes
within two or three switches.

Here's a gdb trace from linux from one of my tries:
(gdb) where
#0  0x872d56d in ?? ()
#1  0x40218206 in NS_ShutdownINetService ()
#2  0x401f7b13 in net_CallExitRoutine ()
#3  0x401f9b50 in NET_GetURL ()
#4  0x40216f32 in nsNetlibService::OpenStream ()
#5  0x4022f987 in nsDocumentBindInfo::Bind ()
#6  0x4022ed7c in nsDocLoaderImpl::OpenStream ()
#7  0x40217ef5 in NS_OpenURL ()
#8  0x4021a524 in nsUnicharStreamLoader::nsUnicharStreamLoader ()
#9  0x4021a87d in NS_NewUnicharStreamLoader ()
#10 0x40a40a98 in HTMLContentSink::ProcessSCRIPTTag ()
#11 0x40a3e819 in HTMLContentSink::AddLeaf ()
#12 0x4025c803 in CNavDTD::AddLeaf ()
#13 0x4025c8a5 in CNavDTD::AddHeadLeaf ()
#14 0x4025aa05 in CNavDTD::HandleStartToken ()
#15 0x40258da3 in CNavDTD::Release ()
#16 0x4026531b in CTokenHandler::operator() ()
#17 0x4025989e in CNavDTD::HandleToken ()
#18 0x402594a2 in CNavDTD::BuildModel ()
#19 0x402632e9 in nsParser::BuildModel ()
#20 0x4026321d in nsParser::ResumeParse ()
#21 0x402635a1 in nsParser::OnDataAvailable ()
#22 0x4022fd46 in nsDocumentBindInfo::OnDataAvailable ()
#23 0x4021cc74 in XP_FindContextOfType ()
#24 0x40160540 in _init ()
#25 0x40160b6a in _init ()
#26 0x401f9ef3 in NET_ProcessNet ()
#27 0x401ff517 in NET_PollSockets ()
#28 0x4021806d in nsNetlibService::NetPollSocketsCallback ()
#29 0x400edff2 in TimerImpl::FireTimeout ()
#30 0x400ee324 in nsTimerExpired ()
#31 0x80e74b7 in g_main_iteration ()
#32 0x80e6a3c in g_list_length ()
#33 0x80e6eb7 in g_list_length ()
#34 0x80e6f2e in g_main_iteration ()
#35 0x400ab37b in nsAppShell::GetNativeEvent ()
#36 0x4001cd92 in nsWebShellWindow::ShowModalInternal ()
#37 0x4001ccec in nsWebShellWindow::ShowModal ()
#38 0x40e19c79 in nsPrefWindow::showWindow ()
#39 0x4007adfa in XPTC_InvokeByIndex ()
#40 0x40c4427a in nsXPCWrappedNativeClass::CallWrappedMethod ()
#41 0x40c446ec in nsXPCWrappedNativeClass::CallWrappedMethod ()
#42 0x4033b00a in js_Invoke ()
#43 0x40340c6e in js_Interpret ()
#44 0x4033b058 in js_Invoke ()
#45 0x40340c6e in js_Interpret ()
#46 0x4033b058 in js_Invoke ()
#47 0x4033b1fd in js_CallFunctionValue ()
#48 0x40326089 in JS_CallFunctionValue ()
#49 0x402cc934 in nsJSEventListener::HandleEvent ()
#50 0x409a6c79 in nsEventListenerManager::HandleEvent ()
#51 0x407bea50 in RDFElementImpl::HandleDOMEvent ()
#52 0x400b2822 in nsMenuItem::DoCommand ()
#53 0x400b2659 in nsMenuItem::MenuItemSelected ()
#54 0x400b33fe in menu_item_activate_handler ()
#55 0x80c42be in gtk_window_set_default_size ()
#56 0x809ceff in gtk_signal_connect_object ()
#57 0x809c586 in gtk_signal_connect_object ()
#58 0x809acc2 in gtk_selection_data_set ()
#59 0x80bc910 in gtk_widget_size_request ()
#60 0x808ba7d in gtk_menu_shell_append ()
#61 0x808af7e in gtk_menu_shell_append ()
#62 0x80c40a4 in gtk_window_set_default_size ()
#63 0x809c5b3 in gtk_signal_connect_object ()
#64 0x809acc2 in gtk_selection_data_set ()
#65 0x80bc7ec in gtk_widget_size_request ()
#66 0x8085e41 in gtk_get_current_event ()
#67 0x80853e2 in gtk_main_iteration_do ()
#68 0x80d3ab7 in gdk_input_add ()
#69 0x80e6a3c in g_list_length ()
#70 0x80e6eb7 in g_list_length ()
#71 0x80e6fd1 in g_main_iteration ()
#72 0x8084ef7 in gtk_main ()
#73 0x400ab2c7 in nsAppShell::Run ()
#74 0x400193ae in nsAppShellService::Run ()
#75 0x8051ca3 in main ()
(gdb)
Assignee: alecf → mcmullen
Status: REOPENED → NEW
Summary: Edit/Preferences/Offline and application freezes → crash switching between many preference panels
ugh, this doesn't sound like it's me then. Reassigning to mcmullen...I'll bet he
knows about this though, and it doesn't really look like his area of expertise
anyway..
Resolution: WORKSFORME → ---
I wonder what alecf thinks my "area of expertise" is?



Anyway, this stack trace is wrong, if it comes from switching panels after the

window opens, and it is my bug. showWindow should not be called a second time.

Since it is, the crash is unsurprising.
Component: Front End → Pref UI
OS: Windows NT → All
Priority: P3 → P1
Product: MailNews → Browser
*** Bug 8089 has been marked as a duplicate of this bug. ***
Whiteboard: want for m7
Summary: crash switching between many preference panels → Crash switching between many preference panels
Whiteboard: want for m7 → Hold for fix in M7
Whiteboard: Hold for fix in M7 → Have fix, need perm. to check in.
I have fixed the crashes/freezes switching between panels (except that the panels
sometimes don't redraw until you resize the window. But that would not be my
bug.)
Whiteboard: Have fix, need perm. to check in. → Fix is ready and approved (pending review)
Status: NEW → RESOLVED
Closed: 26 years ago26 years ago
Resolution: --- → FIXED
Whiteboard: Fix is ready and approved (pending review) → Checked in (a=chofmann, r=davidm)
Approved fix checked in (reviewed by davidm
Status: RESOLVED → REOPENED
Using the jun19 m7 builds on Linux, Mac and NT, there is still a problem with
crashing.

Switching most panels seems to be better, but I can consistently crash in these
cases:
   1.  selecting the Download panel under Offline (NT & Linux & Mac)
   2.  selecting the Colors panel under Appearance (NT & linux & mac)
   3.  selecting Smart Update panel under Advanced (linux)
   4.  Generally selecting a subpanel before its parent panel when switching
across pref areas. (linux & mac)
Resolution: FIXED → ---
Whiteboard: Checked in (a=chofmann, r=davidm) → Re-opened because of remaining cases
These panels may have malformed xul. If so, this is similar to, but not
necessarily a duplicate of #8185. cc: matt.
Whiteboard: Re-opened because of remaining cases → Checked in (a=chofmann, r=davidm)
Got a Talkback incident on Mac:  Incident 10183902
 Call Stack:    (Signature = RDFLibrary.shlb + 0x72848 (0x0b466948) dee448bd)

   RDFLibrary.shlb + 0x72848 (0x0b466948)


   RDFLibrary.shlb + 0x425a0 (0x0b4366a0)


   RDFLibrary.shlb + 0x2826c (0x0b41c36c)


   RDFLibrary.shlb + 0x270c0 (0x0b41b1c0)


   RDFLibrary.shlb + 0x256a8 (0x0b4197a8)
I'm starting to realize that changing the pref panels from html to XUL was a bit
premature. XUL may not yet be ready for the bigtime.
Status: REOPENED → ASSIGNED
Whiteboard: Checked in (a=chofmann, r=davidm) → Malformed XUL.
My hunch was right. Case 1 was caused by an extra </html:table> closing tag.
Investigating the remaining cases now...
Case (2) was title = &window.label; (an undefined entity) when it should have
been &window.title;

Moving on to case (3)
Case (3) had an extra </table> tag, a bad style sheet URL (that was not updated
when we converted to the chrome directories), and a sequence
<table><form></table></form>.

Moving on to case (4)
Whiteboard: Malformed XUL. → Malformed XUL. Ready to check in.
There is no case (4). After fixing these three specific cases, it doesn't crash
any more.
Fixes checked in to M8 (didn't quite make M7). There's another bug that bites if
you DOUBLE-click the preference topics, filed by chofmann (#8608).
Status: ASSIGNED → RESOLVED
Closed: 26 years ago26 years ago
Resolution: --- → FIXED
Target Milestone: M7 → M8
Fixed in M8
Status: RESOLVED → REOPENED
Using the jun22 m8 build, I'm still able to crash using my scenario of
alternating subpanels to panels of a different area heading (crash below).

The specific panels which crashed in m7 seem to be ok now.

Will report findings for Mac and Windows with m8 later.

Linux rh5.2 crash:
(gdb) where
#0  0x406e327a in RDFElementImpl::AddScriptEventListener ()
#1  0x406e30a1 in RDFElementImpl::SetAttribute ()
#2  0x406f69a8 in RDFXULBuilderImpl::AddAttribute ()
#3  0x406f5e60 in RDFXULBuilderImpl::CreateXULElement ()
#4  0x406f4f1b in RDFXULBuilderImpl::CreateOrReuseElement ()
#5  0x406f2253 in RDFXULBuilderImpl::CreateRootContent ()
#6  0x406fb57a in XULDocumentImpl::SetRootResource ()
#7  0x4070fab3 in XULContentSinkImpl::OpenTag ()
#8  0x4070e20e in XULContentSinkImpl::OpenContainer ()
#9  0x4026d38e in CWellFormedDTD::HandleToken ()
#10 0x4026d04a in CWellFormedDTD::BuildModel ()
#11 0x40267c69 in nsParser::BuildModel ()
#12 0x40267b9d in nsParser::ResumeParse ()
#13 0x40267464 in nsParser::EnableParser ()
#14 0x409e3f9f in CSSLoaderImpl::Cleanup ()
#15 0x409e42a6 in CSSLoaderImpl::SheetComplete ()
#16 0x409e43ed in CSSLoaderImpl::ParseSheet ()
#17 0x409e453f in CSSLoaderImpl::DidLoadStyle ()
#18 0x409e3e3a in DoneLoadingStyle ()
#19 0x4021f7fe in nsUnicharStreamLoader::OnStopBinding ()
#20 0x4023527e in nsDocumentBindInfo::OnStopBinding ()
#21 0x40221ba8 in stub_complete ()
#22 0x40167bfb in net_ProcessFile ()
#23 0x401fef93 in NET_ProcessNet ()
#24 0x402045b7 in NET_PollSockets ()
#25 0x4021d0fd in nsNetlibService::NetPollSocketsCallback ()
#26 0x400f50a2 in TimerImpl::FireTimeout ()
#27 0x400f53d4 in nsTimerExpired ()
#28 0x80e755b in g_timeout_dispatch (source_data=0x890ccc8,
    current_time=0xbfffe8b0, user_data=0x8987700) at gmain.c:1147
#29 0x80e6ae0 in g_main_dispatch (current_time=0xbfffe8b0) at gmain.c:647
#30 0x80e6f5b in g_main_iterate (block=1, dispatch=1) at gmain.c:854
#31 0x80e6fd2 in g_main_iteration (block=1) at gmain.c:884
#32 0x400b1bab in nsAppShell::GetNativeEvent ()
#33 0x4001e346 in nsWebShellWindow::ShowModalInternal ()
#34 0x4001e2a0 in nsWebShellWindow::ShowModal ()
#35 0x40c29df5 in nsPrefWindow::showWindow ()
#36 0x4007fb16 in XPTC_InvokeByIndex ()
#37 0x40bb0482 in nsXPCWrappedNativeClass::CallWrappedMethod ()
#38 0x40bb08f0 in WrappedNative_CallMethod ()
#39 0x4034000a in js_Invoke ()
#40 0x40345c6e in js_Interpret ()
#41 0x40340058 in js_Invoke ()
#42 0x40345c6e in js_Interpret ()
#43 0x40340058 in js_Invoke ()
#44 0x403401fd in js_CallFunctionValue ()
#45 0x4032b089 in JS_CallFunctionValue ()
#46 0x402d0b1c in nsJSEventListener::HandleEvent ()
#47 0x4090c1ad in nsEventListenerManager::HandleEvent ()
#48 0x406e3d78 in RDFElementImpl::HandleDOMEvent ()
#49 0x400b910e in nsMenuItem::DoCommand ()
#50 0x400b8f45 in nsMenuItem::MenuItemSelected ()
#51 0x400b9cea in menu_item_activate_handler ()
#52 0x80c4362 in gtk_marshal_NONE__NONE (object=0x833de60,
    func=0x400b9c74 <menu_item_activate_handler(_GtkWidget *, void *)>,
    func_data=0x8780b30, args=0xbffff3d0) at gtkmarshal.c:363
#53 0x809cfa3 in gtk_handlers_run (handlers=0x880bb08, signal=0xbffff38c,
    object=0x833de60, params=0xbffff3d0, after=0) at gtksignal.c:1909
#54 0x809c62a in gtk_signal_real_emit (object=0x833de60, signal_id=89,
    params=0xbffff3d0) at gtksignal.c:1469
#55 0x809ad66 in gtk_signal_emit (object=0x833de60, signal_id=89)
    at gtksignal.c:552
#56 0x80bc9b4 in gtk_widget_activate (widget=0x833de60) at gtkwidget.c:2810
#57 0x808bb21 in gtk_menu_shell_activate_item (menu_shell=0x877f240,
    menu_item=0x833de60, force_deactivate=1) at gtkmenushell.c:834
#58 0x808b022 in gtk_menu_shell_button_release (widget=0x877f240,
    event=0x8184510) at gtkmenushell.c:497
#59 0x80c4148 in gtk_marshal_BOOL__POINTER (object=0x877f240,
    func=0x808aeb8 <gtk_menu_shell_button_release>, func_data=0x0,
#60 0x809c657 in gtk_signal_real_emit (object=0x877f240, signal_id=21,
    params=0xbffff734) at gtksignal.c:1484
#61 0x809ad66 in gtk_signal_emit (object=0x877f240, signal_id=21)
    at gtksignal.c:552
#62 0x80bc890 in gtk_widget_event (widget=0x877f240, event=0x8184510)
    at gtkwidget.c:2784
#63 0x8085ee5 in gtk_propagate_event (widget=0x833de60, event=0x8184510)
    at gtkmain.c:1295
#64 0x8085486 in gtk_main_do_event (event=0x8184510) at gtkmain.c:752
#65 0x80d3b5b in gdk_event_dispatch (source_data=0x0, current_time=0xbffffa7c,
    user_data=0x0) at gdkevents.c:2086
#66 0x80e6ae0 in g_main_dispatch (current_time=0xbffffa7c) at gmain.c:647
#67 0x80e6f5b in g_main_iterate (block=1, dispatch=1) at gmain.c:854
#68 0x80e7075 in g_main_run (loop=0x81ad218) at gmain.c:912
#69 0x8084f9b in gtk_main () at gtkmain.c:475
#70 0x400b1aff in nsAppShell::Run ()
#71 0x4001a65e in nsAppShellService::Run ()
#72 0x8051e73 in main ()
(gdb)
Resolution: FIXED → ---
Using jun22 m8 am able to crash on Mac OS 8.51. Don't have a Talkback report
since today's commercial build (with Talkback) doesn't launch but have attached
Macsbug log.
Can't seem to reproduce using NT 4.0 with jun22 m8.
We have to be absolutely clear on one thing. Double-clicking on topics creates a
known fatal bug. The present bug only covers behavior when you single-click.

Rapidly clicking (before a previous panel has loaded) will probably cause the
same problem as double-clicking a single panel. Let's be sure the stack trace
below was not caused by double-clicking.
I was careful not to double-click, but I did move through lots of panels
quickly. So it may be similar results to the double-click as you've suggested.
M9, giving to don for re-assigning.
Assignee: don → matt
Whiteboard: Malformed XUL. Ready to check in.
Matt, this is one of John's old bugs that is probably no longer an issue ...
Status: NEW → RESOLVED
Closed: 26 years ago26 years ago
Resolution: --- → WORKSFORME
Status: RESOLVED → VERIFIED
Build 1999080408M9/Necko: Win32/NT4, Linux/Redhat 5.2, Mac 8.5.1
Marking Verified. I quickly switched between a variety of preference panels and
a crash did not occur.
Bulk move of all Pref UI component bugs to new Preferences component.  Pref UI 
component will be deleted.
Component: Pref UI → Preferences
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: