Closed Bug 260961 Opened 20 years ago Closed 20 years ago

Crash if I print the page [@ nsCOMPtr<nsIRenderingContext>::get]

Categories

(Core :: Printing: Output, defect)

x86
Linux
defect
Not set
critical

Tracking

()

RESOLVED FIXED

People

(Reporter: jf.rameau, Assigned: roc)

References

()

Details

(Keywords: crash, regression, testcase)

Crash Data

Attachments

(3 files)

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.2) Gecko/20040803 Epiphany/1.4.0
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.2) Gecko/20040803 Epiphany/1.4.0

Crashes Epiphany/Mozilla 1.7.2 but also Firefox 0.9.3 (Linux Fedora Core 2)

Reproducible: Always
Steps to Reproduce:
1.Load the page http://iwedia.com/En/Emploi.php
2.Print it
3.

Actual Results:  
Crash

Expected Results:  
Print the page :)
Attached file stacktrace
(gdb) frame 6
#6  0x01a6d205 in nsEPSObjectPS::EPSFFgets (this=0xfefa3d80,
aBuffer=@0xfefa3ca0) at nsEPSObjectPS.cpp:97
97	    int ch = *mCurrPos++;
(gdb) p mCurrPos
$2 = 0x0
That's an interesting stack trace, but moz 1.7x and firefox don't include the
EPS printing support.

I can reproduce this with a trunk build from Sept. 19 (before EPS was checked
in). In my case it's a problem in nsViewManager:

(gdb) bt 15
#0  0x407e6006 in nanosleep () from /lib/i686/libc.so.6
#1  0xffffffa0 in ?? ()
#2  0x407e5e37 in sleep () from /lib/i686/libc.so.6
#3  0x0806d38e in ah_crap_handler (signum=1082554784)
    at /extra/kherron/moz/mozilla/xpfe/bootstrap/nsSigHandlers.cpp:133
#4  0x41c5b20c in nsProfileLock::FatalSignalHandler (signo=11)
    at
/extra/kherron/moz/mozilla/profile/dirserviceprovider/src/nsProfileLock.cpp:208
#5  0x4011c4ec in __pthread_clock_settime () from /lib/i686/libpthread.so.0
#6  <signal handler called>
#7  0x4148bea6 in nsCOMPtr<nsIRenderingContext>::get (this=0x95547b0)
    at nsCOMPtr.h:693
#8  0x4148bd1d in nsCOMPtr<nsIRenderingContext>::operator
nsDerivedSafe<nsIRenderingContext>* (this=0x95547b0) at nsCOMPtr.h:705
#9  0x4182f61d in nsViewManager::RenderViews (this=0x9087db0,
    aRootView=0x95547b0, aRC=@0x984acd8, aRegion=@0xbfffee40, aRCSurface=0x0,
    aDisplayList=@0xbfffee90)
    at /extra/kherron/moz/mozilla/view/src/nsViewManager.cpp:1291
#10 0x41834429 in nsViewManager::Display (this=0x9087db0, aView=0x9071358,
    aX=0, aY=-1073746368, aClipRect=@0xbfffef80)
    at /extra/kherron/moz/mozilla/view/src/nsViewManager.cpp:3297
#11 0x4147c95b in nsSimplePageSequenceFrame::PrintNextPage (this=0x974d358,
    aPresContext=0x9071358)
    at /extra/kherron/moz/mozilla/layout/html/base/src/nsSimplePageSequence.cpp:872
#12 0x415b0ed3 in nsPrintEngine::PrintPage (this=0x905aec0,
    aPresContext=0x9231630, aPrintSettings=0x9231630, aPO=0x9066a20,
    aInRange=@0xbffff038)
    at /extra/kherron/moz/mozilla/content/base/src/nsPrintEngine.cpp:3539
#13 0x415bac64 in nsPagePrintTimer::Notify (this=0x93c1fc0, timer=0x93a36b8)
    at /extra/kherron/moz/mozilla/content/base/src/nsPagePrintTimer.cpp:91
#14 0x40a67740 in nsTimerImpl::Fire (this=0x93a36b8)
    at /extra/kherron/moz/mozilla/xpcom/threads/nsTimerImpl.cpp:386
(More stack frames follow...)
(gdb) frame 9
#9  0x4182f61d in nsViewManager::RenderViews (this=0x9087db0,
    aRootView=0x95547b0, aRC=@0x984acd8, aRegion=@0xbfffee40, aRCSurface=0x0,
    aDisplayList=@0xbfffee90)
    at /extra/kherron/moz/mozilla/view/src/nsViewManager.cpp:1291
1291        nsIRenderingContext* RCs[2] = { buffers->mBlackCX, buffers->mWhiteCX };
(gdb) p buffers
$2 = (BlendingBuffers *) 0x0

The last bit printed before the crash is as follows. The OS2 table assertion is
pretty common and should be unrelated to this crash.

###!!! ASSERTION: unable to get OS2 table: 'tt_os2', file
/extra/kherron/moz/mozilla/gfx/src/ps/nsFontMetricsPS.cpp, line 1346
Break: at file /extra/kherron/moz/mozilla/gfx/src/ps/nsFontMetricsPS.cpp, line 1346
###!!! ASSERTION: Cannot support translucent elements with doublebuffering
disabled: 'aRCSurface', file
/extra/kherron/moz/mozilla/view/src/nsViewManager.cpp, line 1298
Break: at file /extra/kherron/moz/mozilla/view/src/nsViewManager.cpp, line 1298

Program /extra/kherron/moz/gtk2/dist/bin/mozilla-bin (pid = 12222) received
signal 11.
Andrew Schultz wrote:
> Created an attachment (id=159732)
> stacktrace
>
> (gdb) frame 6
> #6  0x01a6d205 in nsEPSObjectPS::EPSFFgets (this=0xfefa3d80,
> aBuffer=@0xfefa3ca0) at nsEPSObjectPS.cpp:97
> 97          int ch = *mCurrPos++;
> (gdb) p mCurrPos
> $2 = 0x0

Erm... which plugins do you have installed ?
Andrew Schultz wrote:
> (gdb) p mCurrPos
> $2 = 0x0

What is the value of |mData| in this case ?
Attached file testcase
printing this testcase crashes linux trunk 2004092204.	the stack is as in
comment 2
this regressed between linux trunk 2004022308 and 2004022407
Status: UNCONFIRMED → NEW
Ever confirmed: true
Summary: Crash if I print the page → Crash if I print the page [@ nsCOMPtr<nsIRenderingContext>::get]
Is someone trying to use -moz-opacity on this page?
BTW: Printing SVG now crashes in a similar way... ;-(
> Is someone trying to use -moz-opacity on this page?

testcase (attachment 159803 [details]):

    <div style="height:20px; opacity:0.4;"></div>
oh, the original URL also does -moz-opacity (and MozOpacity via DOM), but it's
not needed to crash
see http://iwedia.com/En/menu_core.js and http://iwedia.com/En/menu_data.js (not
that they're readable)
Attached patch fixSplinter Review
Okay, this fixes the crash. The core problem is that printing doesn't support
opacity, but this will work for now.
Assignee: core.printing → roc
Status: NEW → ASSIGNED
Comment on attachment 160095 [details] [diff] [review]
fix

Simple crash avoidance
Attachment #160095 - Flags: superreview?(bzbarsky)
Attachment #160095 - Flags: review?(bzbarsky)
Comment on attachment 160095 [details] [diff] [review]
fix

r+sr=bzbarsky, but please make sure there is a bug on the underlying printing
issue...
Attachment #160095 - Flags: superreview?(bzbarsky)
Attachment #160095 - Flags: superreview+
Attachment #160095 - Flags: review?(bzbarsky)
Attachment #160095 - Flags: review+
Robert O'Callahan wrote:
> Okay, this fixes the crash. The core problem is that printing doesn't support
> opacity,

... yet. Windows GDI may be able to support transparency and Xprint will get
support for that next year... :)

> but this will work for now.
*** Bug 61674 has been marked as a duplicate of this bug. ***
Checked in.

Bug 262019 filed on printing not working with -moz-opacity.
fixed
Status: ASSIGNED → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
*** Bug 281789 has been marked as a duplicate of this bug. ***
*** Bug 286489 has been marked as a duplicate of this bug. ***
Crash Signature: [@ nsCOMPtr<nsIRenderingContext>::get]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: