Printing Sun Java System Communications Express page caused a crash [@ moz_drawingarea_resize]

RESOLVED FIXED

Status

()

Core
Widget: Gtk
RESOLVED FIXED
9 years ago
9 years ago

People

(Reporter: Ginn Chen, Assigned: Ginn Chen)

Tracking

({fixed1.9.1, regression})

1.9.1 Branch
All
Linux
fixed1.9.1, regression
Points:
---
Bug Flags:
blocking1.9.1 +

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(2 attachments, 1 obsolete attachment)

368 bytes, application/x-gzip
Details
801 bytes, patch
roc
: review+
Details | Diff | Splinter Review
(Assignee)

Description

9 years ago
1) Log in to Sun Java System Communications Express server.
2) Print the Inbox page.
3) Firefox crashed with no output to file/printer.

Print preview is fine.
The same page works fine with Firefox 3.0.4.

Here's the output from debug build of mozilla-central.

++WEBSHELL f0ca1e80 == 16
++DOMWINDOW == 30 (f05881f0) [serial = 53] [outer = 0]
++DOMWINDOW == 31 (f05888f0) [serial = 54] [outer = f05881c0]
Trying to position a sizeless window; caller should have called sizeToContent() or sizeTo(). See bug 75649.
WARNING: Warning: tried to create a new child widget with no parent!: file /export/home/ginn/work/mozilla-central/widget/src/gtk2/nsWindow.cpp, line 3905
WARNING: Warning: tried to create a new child widget with no parent!: file /export/home/ginn/work/mozilla-central/widget/src/gtk2/nsWindow.cpp, line 3905
WARNING: Warning: tried to create a new child widget with no parent!: file /export/home/ginn/work/mozilla-central/widget/src/gtk2/nsWindow.cpp, line 3905
WARNING: Warning: tried to create a new child widget with no parent!: file /export/home/ginn/work/mozilla-central/widget/src/gtk2/nsWindow.cpp, line 3905
WARNING: Warning: tried to create a new child widget with no parent!: file /export/home/ginn/work/mozilla-central/widget/src/gtk2/nsWindow.cpp, line 3905
WARNING: Warning: tried to create a new child widget with no parent!: file /export/home/ginn/work/mozilla-central/widget/src/gtk2/nsWindow.cpp, line 3905
WARNING: Warning: tried to create a new child widget with no parent!: file /export/home/ginn/work/mozilla-central/widget/src/gtk2/nsWindow.cpp, line 3905
WARNING: Warning: tried to create a new child widget with no parent!: file /export/home/ginn/work/mozilla-central/widget/src/gtk2/nsWindow.cpp, line 3905
###!!! ASSERTION: Unexpected containers: 'SameCOMIdentity(debugDocContainer, debugDocShell)', file ../../../layout/base/nsDocumentViewer.cpp, line 2083
WARNING: Warning: tried to create a new child widget with no parent!: file /export/home/ginn/work/mozilla-central/widget/src/gtk2/nsWindow.cpp, line 3905
WARNING: Warning: tried to create a new child widget with no parent!: file /export/home/ginn/work/mozilla-central/widget/src/gtk2/nsWindow.cpp, line 3905
nsBlockReflowContext: Frameset(frameset)(1)@ef0b9998 metrics=40320,1073741824!
WARNING: Clamping huge window height: file /export/home/ginn/work/mozilla-central/widget/src/gtk2/nsWindow.cpp, line 4296
###!!! ASSERTION: Unexpected containers: 'SameCOMIdentity(debugDocContainer, debugDocShell)', file ../../../layout/base/nsDocumentViewer.cpp, line 2083
WARNING: Clamping huge window height: file /export/home/ginn/work/mozilla-central/widget/src/gtk2/nsWindow.cpp, line 4296

(dbx 1) where
current thread: t@1
  [1] _lwp_kill(0x1, 0xb, 0xb, 0xfee99f3a), at 0xfeea17c5 
  [2] thr_kill(0x1, 0xb, 0x80412e8, 0xfee4a02e), at 0xfee99f5c 
  [3] raise(0xb, 0x0), at 0xfee4a03a 
=>[4] nsProfileLock::FatalSignalHandler(signo = 11), line 212 in "nsProfileLock.cpp"
  [5] __sighndlr(0xb, 0x0, 0x80413e4, 0xfac2b760), at 0xfee9c60f 
  [6] call_user_handler(0xb), at 0xfee8fbaf 
  [7] sigacthandler(0xb, 0x0, 0x80413e4, 0xf, 0x0, 0x0), at 0xfee8fddf 
  ---- called from signal handler with signal 11 (SIGSEGV) ------
  [8] moz_drawingarea_resize(drawingarea = (nil), width = 504, height = 32767), line 236 in "mozdrawingarea.c"
  [9] nsWindow::NativeResize(this = 0xefb6e7b0, aWidth = 504, aHeight = 32767, aRepaint = 1), line 4193 in "nsWindow.cpp"
  [10] nsWindow::Resize(this = 0xefb6e7b0, aWidth = 504, aHeight = 13421670, aRepaint = 1), line 934 in "nsWindow.cpp"
  [11] nsView::DoResetWidgetBounds(this = 0xefb9c580, aMoveOnly = 0, aInvalidateChangedSize = 1), line 429 in "nsView.cpp"
  [12] nsView::ResetWidgetBounds(this = 0xefb9c580, aRecurse = 0, aMoveOnly = 0, aInvalidateChangedSize = 1), line 350 in "nsView.cpp"
  [13] nsViewManager::ProcessPendingUpdates(this = 0xeee3e8e0, aView = 0xefb9c580, aDoInvalidate = 1), line 618 in "nsViewManager.cpp"
  [14] nsViewManager::ProcessPendingUpdates(this = 0xeee3e8e0, aView = 0xefb9c4c0, aDoInvalidate = 1), line 624 in "nsViewManager.cpp"
  [15] nsViewManager::ProcessPendingUpdates(this = 0xeee3e8e0, aView = 0xefb9c2e0, aDoInvalidate = 1), line 624 in "nsViewManager.cpp"
  [16] nsViewManager::ProcessPendingUpdates(this = 0xeee3e8e0, aView = 0xefb9c220, aDoInvalidate = 1), line 624 in "nsViewManager.cpp"
  [17] nsViewManager::ProcessPendingUpdates(this = 0xeee3e8e0, aView = 0xef2ccee0, aDoInvalidate = 1), line 624 in "nsViewManager.cpp"
  [18] nsViewManager::ProcessPendingUpdates(this = 0xeee3e8e0, aView = 0xef2cce80, aDoInvalidate = 1), line 624 in "nsViewManager.cpp"
  [19] nsViewManager::ProcessPendingUpdates(this = 0xeee3e8e0, aView = 0xef2cce20, aDoInvalidate = 1), line 624 in "nsViewManager.cpp"
  [20] nsViewManager::ProcessPendingUpdates(this = 0xeee3e8e0, aView = 0xef2ccca0, aDoInvalidate = 1), line 624 in "nsViewManager.cpp"
  [21] nsViewManager::FlushPendingInvalidates(this = 0xeee3e8e0), line 2192 in "nsViewManager.cpp"
  [22] nsViewManager::EnableRefresh(this = 0xeee3e8e0, aUpdateFlags = 0), line 1911 in "nsViewManager.cpp"
  [23] nsViewManager::EndUpdateViewBatch(this = 0xeee3e8e0, aUpdateFlags = 0), line 1954 in "nsViewManager.cpp"
  [24] nsIViewManager::UpdateViewBatch::EndUpdateViewBatch(this = 0x8041970, aUpdateFlags = 0), line 383 in "nsIViewManager.h"
  [25] PresShell::DoFlushPendingNotifications(this = 0xef207400, aType = Flush_Layout, aInterruptibleReflow = 0), line 4720 in "nsPresShell.cpp"
  [26] PresShell::FlushPendingNotifications(this = 0xef207400, aType = Flush_Layout), line 4627 in "nsPresShell.cpp"
  [27] nsPrintEngine::ReflowPrintObject(this = 0xef09a200, aPO = 0xef09a340), line 2008 in "nsPrintEngine.cpp"
  [28] nsPrintEngine::ReflowDocList(this = 0xef09a200, aPO = 0xef09a340, aSetPixelScale = 0), line 1840 in "nsPrintEngine.cpp"
  [29] nsPrintEngine::ReflowDocList(this = 0xef09a200, aPO = 0xef09a2c0, aSetPixelScale = 0), line 1845 in "nsPrintEngine.cpp"
  [30] nsPrintEngine::ReflowDocList(this = 0xef09a200, aPO = 0xef09a280, aSetPixelScale = 0), line 1845 in "nsPrintEngine.cpp"
  [31] nsPrintEngine::SetupToPrintContent(this = 0xef09a200), line 1648 in "nsPrintEngine.cpp"
  [32] nsPrintEngine::DocumentReadyForPrinting(this = 0xef09a200), line 1480 in "nsPrintEngine.cpp"
  [33] nsPrintEngine::Observe(this = 0xef09a200, aSubject = (nil), aTopic = (nil), aData = (nil)), line 3227 in "nsPrintEngine.cpp"
  [34] nsPrintProgress::DoneIniting(this = 0xef2874c0), line 194 in "nsPrintProgress.cpp"
  [35] NS_InvokeByIndex_P(0xef2874c0, 0xc, 0x0, 0x80422f0, 0x0, 0x0), at 0xfeb8c361 
  [36] XPCWrappedNative::CallMethod(ccx = CLASS, mode = CALL_METHOD), line 2462 in "xpcwrappednative.cpp"
  [37] XPC_WN_CallMethod(cx = 0xeeefe800, obj = 0xf10f6020, argc = 0, argv = 0xef2f2034, vp = 0x80425f8), line 1585 in "xpcwrappednativejsops.cpp"
  [38] js_Invoke(cx = 0xeeefe800, argc = 0, vp = 0xef2f202c, flags = 2U), line 1341 in "jsinterp.cpp"
  [39] js_Interpret(cx = 0xeeefe800), line 5034 in "jsinterp.cpp"
  [40] js_Invoke(cx = 0xeeefe800, argc = 1U, vp = 0xef2f2020, flags = 0), line 1359 in "jsinterp.cpp"
  [41] js_InternalInvoke(cx = 0xeeefe800, obj = 0xf0a6d920, fval = -250648928, flags = 0, argc = 1U, argv = 0xef2a1094, rval = 0x80466c8), line 1417 in "jsinterp.cpp"
  [42] JS_CallFunctionValue(cx = 0xeeefe800, obj = 0xf0a6d920, fval = -250648928, argc = 1U, argv = 0xef2a1094, rval = 0x80466c8), line 5190 in "jsapi.cpp"
  [43] nsJSContext::CallEventHandler(this = 0xefb025b0, aTarget = 0xf05888c0, aScope = 0xf0a6d920, aHandler = 0xf10f66a0, aargv = 0xef9f5f64, arv = 0x804679c), line 2006 in "nsJSEnvironment.cpp"
  [44] nsGlobalWindow::RunTimeout(this = 0xf05888c0, aTimeout = 0xeff13380), line 7788 in "nsGlobalWindow.cpp"
  [45] nsGlobalWindow::TimerCallback(aTimer = 0xeff133c0, aClosure = 0xeff13380), line 8127 in "nsGlobalWindow.cpp"
  [46] nsTimerImpl::Fire(this = 0xeff133c0), line 428 in "nsTimerImpl.cpp"
  [47] nsTimerEvent::Run(this = 0xef299c20), line 520 in "nsTimerImpl.cpp"
  [48] nsThread::ProcessNextEvent(this = 0xf9c88a10, mayWait = 1, result = 0x8046ac4), line 510 in "nsThread.cpp"
  [49] NS_ProcessNextEvent_P(thread = 0xf9c88a10, mayWait = 1), line 230 in "nsThreadUtils.cpp"
  [50] nsBaseAppShell::Run(this = 0xf3b7dec0), line 170 in "nsBaseAppShell.cpp"
  [51] nsAppStartup::Run(this = 0xf39103a0), line 192 in "nsAppStartup.cpp"
  [52] XRE_main(argc = 1, argv = 0x80475a4, aAppData = 0xf9c010c0), line 3219 in "nsAppRunner.cpp"
  [53] main(argc = 1, argv = 0x80475a4), line 156 in "nsBrowserApp.cpp"
(Assignee)

Comment 1

9 years ago
The regression happens between Firefox 3.1 beta 2 and beta 3.
(Assignee)

Comment 2

9 years ago
It is caused by the patch of bug 467881.

http://hg.mozilla.org/releases/mozilla-1.9.1/rev/5ce32275362a

A null check works, but I don't know if it is the right fix.
Component: Printing: Output → Widget: Gtk
OS: OpenSolaris → Linux
QA Contact: printing → gtk
Hardware: x86 → All
(Assignee)

Updated

9 years ago
Flags: blocking1.9.1?
Flags: blocking1.9.1? → blocking1.9.1+
(Assignee)

Comment 3

9 years ago
Created attachment 369462 [details]
test case
(Assignee)

Updated

9 years ago
Assignee: nobody → dbaron
(Assignee)

Comment 4

9 years ago
Created attachment 369466 [details]
testcase

It seems I could not recreate the bug with a single file. I was fooled by browser cache.

This tarball should work.
Usage:
On Linux or Solaris, untar the file, open test.html in browser. Press Ctrl+P, select a printer of print to file.
Click Print button, it will crash.
Attachment #369462 - Attachment is obsolete: true
Assignee: dbaron → nobody
(Assignee)

Comment 5

9 years ago
I've no access bug 467881.
Please help on fixing this blocking bug.
Keywords: helpwanted
(Assignee)

Comment 6

9 years ago
Created attachment 369656 [details] [diff] [review]
null check patch

We don't have mDrawingarea because we got:
WARNING: Warning: tried to create a new child widget with no parent!: file
/export/home/ginn/work/mozilla-central/widget/src/gtk2/nsWindow.cpp, line 3905

So the null check is necessary anyway.
I checked nsWindow.cpp, it seems it is the only missing null check for mDrawingarea.
(mIsTopLevel/mContainer guarantees mDrawingarea)

For the assertion
###!!! ASSERTION: Unexpected containers: 'SameCOMIdentity(debugDocContainer,
debugDocShell)', file ../../../layout/base/nsDocumentViewer.cpp, line 2083

it happens on all platform, I will file a separate bug.

Although bug 467881 is landed for Firefox 3.0.8, I didn't reproduce this bug with current Firefox 3.0.8pre.
Assignee: nobody → ginn.chen
Status: NEW → ASSIGNED
Attachment #369656 - Flags: review?(roc)
(Assignee)

Comment 7

9 years ago
Filed Bug 485893 for assertions.
(Assignee)

Comment 8

9 years ago
Pushed
http://hg.mozilla.org/mozilla-central/rev/7074d91a795a

http://hg.mozilla.org/releases/mozilla-1.9.1/rev/ae775a236e26
Status: ASSIGNED → RESOLVED
Last Resolved: 9 years ago
Keywords: helpwanted → fixed1.9.1
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.