Closed Bug 244549 Opened 21 years ago Closed 7 years ago

crash [@ gtk_widget_style_get] (was: Roaming Profiles not publishing to server)

Categories

(Core :: Web Painting, defect)

x86
Linux
defect
Not set
major

Tracking

()

RESOLVED WONTFIX

People

(Reporter: jmccabe, Assigned: zhayupeng)

References

Details

(Keywords: crash)

Crash Data

Attachments

(4 files, 1 obsolete file)

User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8a2) Gecko/20040524 Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8a2) Gecko/20040524 Edit | Preferences | Roaming User X Enable remote profile storage HTTP / FTP Base URL ftp://ftp.machine.com/moz_roaming/ Username qwe X Save password Password ********** My proxy server shows no FTP activity, and no files appear in the subdirctory "moz_roaming" directory of user "qwe" on ftp.machine.com. A relaunch of Mozilla throws a error about unable to retrieve an empty file, then the startup proceeds using the local copies of the profile. Reproducible: Always Steps to Reproduce:
Depends on: roamingtracking
I'll need a bit more info than 'it doesn't work'. Do you see a crash during shutdown when it should upload? If so, in which function? Which theme are you using? Classic? Can you try Modern? I saw a crash in layout, but didn't have time to file it yet.
I realize that detail is light here. Unfortunately it's everything I have. I had not noticed a crash at shutdown, but now that I look I see that cores were being generated. Rather long stack trace will be attached to bug, but the top of it looks like: (gdb) where #0 0x40752671 in kill () from /lib/i686/libc.so.6 #1 0x400d9afd in pthread_kill () from /lib/i686/libpthread.so.0 #2 0x400d9e9b in raise () from /lib/i686/libpthread.so.0 #3 0x416b437d in NSGetModule () from /usr/local/mozilla/components/libprofile.so #4 0x400dc67e in __pthread_sighandler () from /lib/i686/libpthread.so.0 #5 <signal handler called> #6 0x402a370b in gtk_widget_style_get () from /usr/lib/libgtk-x11-2.0.so.0 #7 0x40f40689 in moz_gtk_get_scrollbar_metrics () from /usr/local/mozilla/components/libgfx_gtk.so #8 0x40f73ace in nsNativeThemeGTK::GetGtkWidgetAndState(unsigned char, nsIFrame*, GtkThemeWidgetType&, GtkWidgetState*, int*) () from /usr/local/mozilla/components/libgfx_gtk.so #9 0x413179f4 in nsIBox::AddCSSMinSize(nsBoxLayoutState&, nsIBox*, nsSize&) () from /usr/local/mozilla/components/libgklayout.so #10 0x4131fab2 in nsContainerBox::CheckBoxOrder(nsBoxLayoutState&) () from /usr/local/mozilla/components/libgklayout.so #11 0x4131a4f4 in nsBoxFrame::IsInitialReflowForPrintPreview(nsBoxLayoutState&, int&) () from /usr/local/mozilla/components/libgklayout.so #12 0x4131fa29 in nsContainerBox::CheckBoxOrder(nsBoxLayoutState&) () from /usr/local/mozilla/components/libgklayout.so [...] There are no accesses to the Proxy Server or to the remote FTP server. Currently using the theme "Smoke." Will try "Modern."
Switching to theme "Modern" makes for different failure. Upon exit Moz throws a dialog box with this text: Transfer error with file "undefined": NS_ERROR_ILLEGAL_VALUE Moz also throws this dialog on startup with the roaming profile.
Thanks a lot. That's very useful. That's exactly the same stacktrace I saw. Doesn't seem to be caused, only triggered, by roaming. Esp. given that the code didn't change much since a year and it worked before. Over to layout.
Status: UNCONFIRMED → NEW
Ever confirmed: true
-> layout
Assignee: nobody → roc
Severity: normal → major
Component: Profile Manager BackEnd → Layout: View Rendering
QA Contact: core.profile-manager-backend → ian
Nifty. One other update - After switching to "Modern" a crash still happens. The only real difference seems to be that we're able to throw a dialog before we crash out, unlike when I use the "Smoke" theme. The stack of this crash looks much the same as the previous stack.
Severity: major → normal
Component: Layout: View Rendering → Profile Manager BackEnd
You accidently stomped over my changes. > After switching to "Modern" a crash still happens. The only > real difference seems to be that we're able to throw a dialog before > we crash out Just what I saw. With Modern, the upload worked though, IIRC.
Severity: normal → major
Component: Profile Manager BackEnd → Layout: View Rendering
No longer depends on: roamingtracking
Hmm. A little poking got me the results you saw. Will file new bugs.
Can you track down a regression window?
Evidently the Roaming Profile checkin tickled this issue, but otherwise the regression window is unknown.
Hasn't the roaming profile code been in use for a while?
The Roaming code was checked in 2004-05-24 09:55 and 2004-05-24 10:13.
Not really in use. I wrote it beginning of 2003 and don't remember to have seen the bug, waited for reviews, didn't use it myself. So, I can't tell you a better regression window, I'd have to do a binary search myself.
Summary: Roaming Profiles not publishing to FTP server → crash @gtk_widget_style_get (was: Roaming Profiles not publishing to server)
That binary search would help a lot.
Unfortunately, there are no binaries in the meantime. I'd have to cvs checkout and build every one from source, this would take a whole day or so, and I don't have time for that. All I have is a build based on Mozilla 1.4, and it doesn't show the bug, but I guess that doesn't help much. Sorry.
(roughly Mozilla 1.4.2 actually, in case that makes a difference.)
oh, I thought there was a roaming XPI. Oh well.
*** Bug 244813 has been marked as a duplicate of this bug. ***
Pete Zha says in dup bug: "This is probably because we want to show a modal dialog after gtk_main loop finished."
Attached patch patch to fix it (obsolete) — Splinter Review
We should set global variables' value to 0 after destroy them
Assignee: roc → pete.zha
Status: NEW → ASSIGNED
Attachment #149405 - Flags: superreview?(blizzard)
Attachment #149405 - Flags: review?(caillon)
Thanks Pete, for fixing this! :-) Good catch. I applied the patch, did the same for GTK1, removed a duplicated line. I'll attach a patch. I no longer see a crash during the upload, using both Classic and Modern, and roaming seems to work just fine. However, I still do see a crash occasionally, using both Classic and Modern. Stacktrace: #7 <signal handler called> #8 0x4026175b in gtk_widget_unref () from /opt/gnome/lib/libgtk-1.2.so.0 #9 0x411e969f in nsDragService::Observe (this=0x82a67f0, aSubject=0x0, aTopic=0x41f5c880 "quit-application", aData=0x0) at ../../../../mozilla/widget/src/gtk/nsDragService.cpp:134 #10 0x4078f6ae in nsObserverService::NotifyObservers (this=0x81ff3f0, aSubject=0x0, aTopic=0x41f5c880 "quit-application", someData=0x0) at ../../../mozilla/xpcom/ds/nsObserverService.cpp:208 #11 0x41f43606 in nsAppShellService::Quit (this=0x827f1d8, aFerocity=3) at ../../../../mozilla/xpfe/appshell/src/nsAppShellService.cpp:655 #12 0x41f32c9c in nsXULWindow::Destroy (this=0x8869730) at ../../../../mozilla/xpfe/appshell/src/nsXULWindow.cpp:543 #13 0x41f51840 in nsWebShellWindow::Destroy (this=0x8869730) at ../../../../mozilla/xpfe/appshell/src/nsWebShellWindow.cpp:1651 #14 0x41f28b6a in nsChromeTreeOwner::Destroy (this=0x85901b0) at ../../../../mozilla/xpfe/appshell/src/nsChromeTreeOwner.cpp:345 #15 0x4196915b in GlobalWindowImpl::ReallyCloseWindow (this=0x8826f40) at ../../../../mozilla/dom/src/base/nsGlobalWindow.cpp:3582 #16 0x4196cede in GlobalWindowImpl::CloseWindow (aWindow=0x8826f44) at ../../../../mozilla/dom/src/base/nsGlobalWindow.cpp:4640 #17 0x41957dc9 in nsJSContext::ScriptEvaluated (this=0x84ceed0, aTerminated=1) at ../../../../mozilla/dom/src/base/nsJSEnvironment.cpp:1780 #18 0x41956f2d in nsJSContext::CallEventHandler (this=0x84ceed0, aTarget=0x83007d0, aHandler=0x848ff20, argc=1, argv=0x83cd030, rval=0xbfffe2d8) at ../../../../mozilla/dom/src/base/nsJSEnvironment.cpp:1266 #19 0x4196dd53 in GlobalWindowImpl::RunTimeout (this=0x8826f40, aTimeout=0x83ccfe8) at ../../../../mozilla/dom/src/base/nsGlobalWindow.cpp:4977 #20 0x4196e87b in GlobalWindowImpl::TimerCallback (aTimer=0x83cd080, aClosure=0x83ccfe8) at ../../../../mozilla/dom/src/base/nsGlobalWindow.cpp:5338 [...]
Attachment #149405 - Attachment is obsolete: true
Attachment #149405 - Flags: superreview?(blizzard)
Attachment #149405 - Flags: review?(caillon)
Attachment #149687 - Flags: superreview?(blizzard)
Attachment #149687 - Flags: review?(caillon)
Compare stack in bug 244564 with last stack.
Comment on attachment 149687 [details] [diff] [review] Fix, v2. Incl. GTK1 r=me if you assign NULL instead of 0.
Attachment #149687 - Flags: review?(caillon) → review+
*** Bug 259981 has been marked as a duplicate of this bug. ***
I still occasionally get a crash. When I use roaming with a local FTP daemon, it works. When I setup a remote server for my roaming profile, I get a segfault: #0 0x4082452c in nanosleep () from /lib/tls/libc.so.6 #1 0x40824368 in sleep () from /lib/tls/libc.so.6 #2 0x0806c69d in ah_crap_handler (signum=11) at nsSigHandlers.cpp:133 #3 0x42b48460 in nsProfileLock::FatalSignalHandler (signo=11) at nsProfileLock.cpp:208 #4 <signal handler called> #5 0x4053363c in g_type_check_instance_cast () from /usr/lib/libgobject-2.0.so.0 #6 0x431af115 in setup_widget_prototype (widget=0x86be8d0) at gtk2drawing.c:109 #7 0x431af211 in ensure_radiobutton_widget () at gtk2drawing.c:139 #8 0x431afcac in moz_gtk_radio_get_metrics (indicator_size=0xbfffa674, indicator_spacing=0xbfffa670) at gtk2drawing.c:447 ... I'll attach the full trace.
Summary: crash @gtk_widget_style_get (was: Roaming Profiles not publishing to server) → crash [@ gtk_widget_style_get] (was: Roaming Profiles not publishing to server)
Comment on attachment 149687 [details] [diff] [review] Fix, v2. Incl. GTK1 I'll bet we're still going to have problems in other places.
Attachment #149687 - Flags: superreview?(blizzard) → superreview+
If we don't destroy, it will not happen... But I'm not sure this is acceptable. Please advise. And some problem in DragService should be fixed since the mHiddenWidget should be set to NULL to make sure it will not crash when we come back to use it again. Anyway, the root cause is the roaming dialog popup after graphics toolkit shutdown. And I don't have a good idea about how to improve it. Because it has to be popup when after browser write profile. Otherwise it will not upload correct profile to server...
Attachment #161934 - Attachment description: patch → patch which need advice
*** Bug 272584 has been marked as a duplicate of this bug. ***
Keywords: crash
Attachment #161934 - Flags: superreview?(blizzard)
Attachment #161934 - Flags: review?(caillon)
Comment on attachment 161934 [details] [diff] [review] patch which need advice Not sure I like this approach, and anyway, we need to remove, not comment out lines. The dragservice change looks good though. Out of curiosity, why has the first patch not landed? It should definitely help, if not completely resolve the problem...
Attachment #161934 - Flags: review?(caillon) → review-
file/copy works fine with both classic and modern theme ftp falied in either classic or modern thems with different core stack
test based on GTK2, co on Fri Feb 4 11:36:26 CST 2005
We can use observer to improve moz_gtk_shutdown. Once roaming download, we notity nsNativeThemeGTK an upload of roaming will happen when quit, then nsNativeThemeGTK set a sign, let's see mWaitingForRoamDone to true. When "quit-application" is received, nsNativeThemeGTK will first judge whether sign is set true. If not, do as before; If yes, wait for roaming upload done, then do as before.
Christopher and Ben, can either of you check in Pete's patch(pls. also add nsDragService part)? I myself, unfortunelly, don't have the authority to check in in community
Comment on attachment 149687 [details] [diff] [review] Fix, v2. Incl. GTK1 I just checked this in, with s/0/NULL/ and also made sure to NULL out gCheckMenuItemWidget which got added since the patch was created.
en, test on HTTP met same core stack as comment#2
Comment on attachment 161934 [details] [diff] [review] patch which need advice Maybe catching a "real" shutdown signal so you know when to release those widgets?
Attachment #161934 - Flags: superreview?(blizzard) → superreview-
(In reply to comment #40) > did bug 257196 fix this? with latest seamonkey trunk, roaming itself doesn't work with error message "some silly ok handler"
QA Contact: ian → layout.view-rendering
Crash Signature: [@ gtk_widget_style_get]
Component: Layout: View Rendering → Layout: Web Painting
Closing because no crash reported since 12 weeks.
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: