Closed Bug 193499 Opened 22 years ago Closed 22 years ago

Xprint print/print preview crashes Mozilla

Categories

(Core Graveyard :: Printing: Xprint, defect)

Sun
Solaris
defect
Not set
blocker

Tracking

(Not tracked)

VERIFIED FIXED
mozilla1.4alpha

People

(Reporter: chithanh, Assigned: roland.mainz)

Details

(Keywords: crash)

Attachments

(2 files, 1 obsolete file)

User-Agent:       Mozilla/5.0 (X11; U; SunOS sun4u; de-AT; rv:1.3b) Gecko/20030211
Build Identifier: Mozilla/5.0 (X11; U; SunOS sun4u; de-AT; rv:1.3b) Gecko/20030211

When trying to work around bug 181213 as described in bug 181213 comment 11
Mozilla will crash.

Reproducible: Always

Steps to Reproduce:
(Unfortunately, I cannot find the package "GISWxprintglue" mentioned in the
Xprint FAQ anywhere on http://xprint.mozdev.org/ )

1. $/usr/openwin/bin/Xprt :12345
2. $export XPSERVERLIST="$HOST:12345"
3. $mozilla
4. select Print or Print preview

Actual Results:  
crash

Expected Results:  
show print dialog or print preview

xdpyinfo -display :12345 | grep -i "vendor string"
returns:
vendor string:    Sun Microsystems, Inc.

dbx output:
t@1 (l@1) signal SEGV (no mapping at the fault address) in strlen at 0xff2331b4
0xff2331b4: strlen+0x0080:      ld      [%o1], %o2
(/usr/lang/bin/../WS6U2/bin/sparcv9/dbx) where
current thread: t@1
=>[1] strlen(0x0, 0x0, 0xff2bc000, 0x7efefeff, 0x81010100, 0x8f99c0), at 0xff2331b4
  [2] 0xfcba35b4(0x8f9240, 0x2e0, 0x8f99c0, 0x37, 0x5a, 0x5c), at 0xfcba35b3
  [3] 0xfcbaa85c(0x400, 0xfdfe5fb8, 0x46a4c, 0x915568, 0x4e5d8, 0xfcbf122c), at
0xfcbaa85b
  [4] 0xfcbaaa6c(0x6f0, 0xffbec198, 0xfcbf3118, 0x1, 0xfcbf122c, 0x400), at
0xfcbaaa6b
  [5] 0xfcba98fc(0xfcbf3110, 0xffbec198, 0x3aee8, 0x47994, 0x1c348, 0x0), at
0xfcba98fb
  [6] nsPrintOptions::GetDefaultPrinterName(0x805798, 0xffbec198, 0xfcba988c,
0x1d7e8, 0xfcbf1a40, 0xfcbf346c), at 0xfe022360
  [7] XPTC_InvokeByIndex(0x917474, 0x5, 0x1, 0xffbec198, 0x4f0, 0x0), at 0xfdf7b3c0
  [8] 0xfdd50ee4(0xffbec28c, 0x11, 0xffbec198, 0x80000000, 0x0, 0xd8808), at
0xfdd50ee3
  [9] 0xfdd593c0(0x183e58, 0x71a3d0, 0x0, 0x797b4c, 0xffbec394, 0x1d884), at
0xfdd593bf
  [10] js_Invoke(0x183e58, 0x0, 0xc4790, 0xfdd59244, 0x129fa8, 0x797ab0), at
0xfe63e6c8
  [11] js_InternalInvoke(0x183e58, 0x71a3d0, 0x71a710, 0x0, 0x0, 0x0), at 0xfe63e934
  [12] js_GetProperty(0x183e58, 0x71a3d0, 0x268818, 0xffbec84c, 0x71a3d0,
0x79c510), at 0xfe6554dc
  [13] js_Interpret(0x0, 0x80000000, 0x183e58, 0x268818, 0x797b30, 0xfe693554),
at 0xfe6458c8
  [14] js_Invoke(0x183e58, 0x71a2f8, 0xc4790, 0x0, 0x129fa8, 0xffbec990), at
0xfe63e724
  [15] js_InternalInvoke(0x183e58, 0x71a310, 0x71a308, 0x0, 0x1, 0xffbece78), at
0xfe63e934
  [16] JS_CallFunctionValue(0x183e58, 0x71a2f8, 0x71a308, 0x1, 0xffbece74,
0xffbecaa8), at 0xfe6173b4
  [17] 0xfca9c184(0x12e4b0, 0x71a2f8, 0x71a308, 0x1, 0xffbece74, 0xffbecb3c), at
0xfca9c183
  [18] 0xfcae4eb4(0x32b4a0, 0x6a1948, 0x161918, 0x1, 0xfcb1fb30, 0x80000000), at
0xfcae4eb3
  [19] 0xfd2cad24(0x5db8, 0x31d158, 0x6a1948, 0x7c23f0, 0x80000000, 0xffbecf00),
at 0xfd2cad23
  [20] 0xfd2cdd04(0x32c540, 0x31d158, 0xffbedb7c, 0xffbed9d0, 0x7c23f0, 0x7), at
0xfd2cdd03
  [21] 0xfd4be484(0x32c508, 0xfd4bd6ec, 0xffbedb7c, 0xffbed9d0, 0x7, 0x0), at
0xfd4be483
  [22] 0xfd155608(0x52c780, 0x32c508, 0xffbedb7c, 0xffbedbc4, 0xfd8c0544,
0x80000000), at 0xfd155607
  [23] 0xfd25464c(0x914544, 0xfd8e6084, 0xffbedbc8, 0xfd8bce20, 0x0,
0xffbedadc), at 0xfd25464b
  [24] 0xfd24f2a4(0x914544, 0x12d, 0xffbee2c8, 0xffbee01c, 0x457784,
0xfd4be6f0), at 0xfd24f2a3
  [25] 0xfd155524(0x52c780, 0xffbee2c8, 0x916af8, 0x1, 0xffbee01c, 0x0), at
0xfd155523
  [26] 0xfd155128(0x52c780, 0x916af8, 0xffbee2c8, 0xffbee01c, 0x32e518,
0xffbedf14), at 0xfd155127
  [27] 0xfc561524(0x50c4d0, 0x31bf68, 0xffbee2c8, 0x0, 0x0, 0x0), at 0xfc561523
  [28] 0xfc5609ac(0x50c4d0, 0xffbee2c8, 0xffbee194, 0xfc55ff34, 0xc4e, 0x0), at
0xfc5609ab
  [29] 0xfc553020(0xffbee2c8, 0x8e7ac8, 0xfc55ff3c, 0xfcfb7680, 0xfc552ff0,
0xfc579768), at 0xfc55301f
  [30] 0xfcfb76dc(0x311b20, 0xffbee2c8, 0xffbee25c, 0x311b20, 0xfc552ff0,
0x8e7ac8), at 0xfcfb76db
  [31] 0xfcfb75bc(0x311b20, 0xffbee2c8, 0xfcfb766c, 0xfcfb8278, 0x378f0,
0xfcff27bc), at 0xfcfb75bb
  [32] 0xfcfb8284(0xd2, 0x311b20, 0x0, 0x44, 0x44, 0xfcfed01c), at 0xfcfb8283
  [33] 0xfcfad164(0x2ed958, 0xfe297a34, 0x8e7ac8, 0xfffffdf0, 0xfcfacf04,
0xfcfacd3c), at 0xfcfad163
  [34] gdk_event_dispatch(0x2ed958, 0xffbee550, 0x0, 0x0, 0x0, 0xffbee4a8), at
0xfe269cf4
  [35] g_main_dispatch(0x470, 0x470, 0x4d4, 0xac0, 0xfe5fbb90, 0x4d4), at 0xfe5d5cf4
  [36] g_main_iterate(0xfe5fbc24, 0xfe5fbb90, 0xfe5fbb68, 0x4d4, 0xac0, 0x4d4),
at 0xfe5d6574
  [37] g_main_run(0x2e9820, 0xfe297af8, 0x121ad8, 0x0, 0x4e5d8, 0x0), at 0xfe5d6788
  [38] gtk_main(0x2c00, 0xfdfe7158, 0x109ed0, 0x80000000, 0xc2c78, 0x0), at
0xfe4bfae0
  [39] 0xfcfa1f3c(0xc2c70, 0x2, 0xfcfa1efc, 0x21d18, 0x32fa8, 0x0), at 0xfcfa1f3b
  [40] 0x21d18(0xffbee734, 0x8b704, 0xfd98bac4, 0xfd98c458, 0xffbee7ec,
0xffbee800), at 0x21d17
  [41] main(0x1, 0xffbee93c, 0xffbee944, 0x89400, 0x0, 0x106a38), at 0x22680
Keywords: crash
> (Unfortunately, I cannot find the package "GISWxprintglue" mentioned in the
> Xprint FAQ anywhere on http://xprint.mozdev.org/ )

The package nor the announcement aren't out yet (looks I accidently sync'ed the
Web copy of the FAQ with the CVS version... :)
Anyway - the first public version of "GISWxprintglue" should be out tomorrow...
Mhhh, I can't reproduce the problem with 2003-02-07-08-trunk...

... reporter, can you run Mozilla like this...
-- snip --
% export
NSPR_LOG_MODULES="DeviceContextSpecGTK:5,nsDeviceContextXp:5,nsXPrintContext:5"
% ./mozilla
-- snip --
... and attach the output as a text file to this bug, please ?
Before crashing, Mozilla outputs the single line:
1[b1dd8]: nsPrinterEnumeratorGTK::GetDefaultPrinterName()

However, if I manually add a printer to ${XPCONFIGDIR}/C/print/Xprinters Mozilla
will not crash. It looks like I somehow managed to start Xprt without any
printers, while Mozilla assumes that there exists at least one.
This is getting increasingly weird.
Apparently, Xprt does see all printers if I let it augment the list on its own.
I am not sure whether this is important, but the same Xprt server that crashes
Mozilla, will also crash xplsprinters if run without any arguments.

dbx output:
signal SEGV (no mapping at the fault address) in strlen at 0xff2b31b4
0xff2b31b4: strlen+0x0080:      ld      [%o1], %o2
Current function is XpuGetPrinterList
  815               s = (char *)malloc(strlen(list[i].name)+display_len+4);
(/usr/lang/bin/../WS6U2/bin/sparcv9/dbx) where
  [1] strlen(0x0, 0x0, 0xff33c000, 0x7efefeff, 0x81010100, 0x2bef8), at 0xff2b31b4
=>[2] XpuGetPrinterList(printer = (nil), res_list_count = 0xffbeea28), line 815
in "xprintutil.c"
  [3] main(argc = 1, argv = 0xffbeeaa4), line 287 in "xplsprinters.c"


xplsprinters -p (some printer)
works fine though.
Reporter:
Can you attach the output of % lpstat -v # , please (e.g. redirect the output to
a file and attach it, please do _not_ use copy&paste) ?
Attached file output of lpstat -v
Attachment #114777 - Attachment mime type: application/octet-stream → text/plain
OT: First prototype version of "GISWxprintglue" (see Xprint FAQ for details) is
out - see http://xprint.mozdev.org/ (todays snapshot is
http://puck.informatik.med.uni-giessen.de/download/GISWxprintglue-sparc-2003-02-18-trunk.tar.gz)
Chi-Thanh Christopher Nguyen wrote:
> Created an attachment (id=114777)
> output of lpstat -v

Piping that to the filter list Solaris Xprt uses to build the list of printers
automatically (that's "(LANG=C lpstat -v | nawk ' $2 == "for"    {       x =
match($3, /
:/);       print substr($3, 1, x-1)   }' | sort)" returns many blank lines at
the beginning of the output... ;-(

----

Taking bug myself...
Assignee: katakai → Roland.Mainz
Status: UNCONFIRMED → NEW
Ever confirmed: true
QA Contact: Roland.Mainz → katakai
Workaround:
1. Create a small script /usr/openwin/bin/Xprt_printer_lookup with the following
content:
-- snip --
#!/bin/ksh
# workaround for http://bugzilla.mozilla.org/show_bug.cgi?id=193499
lpstat -v |
nawk ' $2 == "for" {  x = match($3, /:/);  print substr($3, 1, x-1)   }' |
sort | uniq | grep -v "^$"
-- snip --
2. % chmod a+rx /usr/openwin/bin/Xprt_printer_lookup
2. Modify /usr/openwin/server/etc/XpConfig/C/print/Xprinters and add the line:
-- snip --
Augment_Printer_List /usr/openwin/bin/Xprt_printer_lookup
-- snip --

(basically the Xprt from http://xprint.mozdev.org/ does a similar filtering
since version 0.8)
Severity: critical → blocker
Status: NEW → ASSIGNED
OS: SunOS → Solaris
Target Milestone: --- → mozilla1.4alpha
IMHO a bug report should be filed against the Solaris Xprt to catch this issue
in |xc/programs/Xserver/Xprint/Init.c#AugmentPrinterDb()| ...
Chi-Thanh Christopher Nguyen:
Can you test that patch or should I attach a modified version of "xplsprinters"
for testing ?
Comment on attachment 117430 [details] [diff] [review]
Proposed workaround on Mozilla side (patch for 2003-03-11-08-trunk)

Requesting r= ...
Attachment #117430 - Flags: review?(katakai)
Comment on attachment 117430 [details] [diff] [review]
Proposed workaround on Mozilla side (patch for 2003-03-11-08-trunk)

OK for me.
Attachment #117430 - Flags: review?(katakai) → review+
Comment on attachment 117430 [details] [diff] [review]
Proposed workaround on Mozilla side (patch for 2003-03-11-08-trunk)

Requesting sr= ...
Attachment #117430 - Flags: superreview?(bzbarsky)
Comment on attachment 117430 [details] [diff] [review]
Proposed workaround on Mozilla side (patch for 2003-03-11-08-trunk)

+	      * return |list[i].name==NULL| due empty lines in the printer
list.

"due to empty lines"

sr=bzbarsky with that nit.
Attachment #117430 - Flags: superreview?(bzbarsky) → superreview+
Attachment #117430 - Attachment is obsolete: true
Patch checked-in by timeless
(http://bonsai.mozilla.org/cvsquery.cgi?module=MozillaTinderboxAll&branch=HEAD&cvsroot=/cvsroot&date=explicit&mindate=1048129200&maxdate=1048129380&who=timeless%25mozdev.org),
marking bug as FIXED.
Status: ASSIGNED → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
With the patch there is no more crash and the printers are listed correctly in
the print dialog.
Chi-Thanh Christopher Nguyen wrote:
> With the patch there is no more crash and the printers are listed correctly in
> the print dialog.

Can you download
http://ftp.mozilla.org/pub/mozilla/nightly/2003-03-23-08-trunk/mozilla-sparc-sun-solaris2.7.tar.gz
, check if the bug is fixed in that build and mark the bug as VERIFIED if it is
fixed, please?
verified
Status: RESOLVED → VERIFIED
Requesting a= for 1.3.1-branch...
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: