segfaults in solaris 8 on printer options...

Jon Atkins jcatki at jonatkins.org
Mon Jan 31 22:38:17 PST 2005


grr,

I keep getting a segfault from printer options in the "printers" application (yes I have ESP Print Pro 4.4.1 here).
This box is a sparc ultra 2 solaris 8 with the 1/25/2005 8_Recommended patch set installed.

here's a pstack of the core (demangled for your convenience):

  core 'core' of 27435: printers
  0004f8c4 int PrinterOptions::get_options(cups_option_t**) (4a8920, ad07c, 92492493, d2b68, 3d97c4, 405060) + 2ac
  0003d878 void PrinterManager::set_options() (405060, 3d9880, 3d9798, df540, d2b68, e414c) + 268
  00083d08 const Fl_Menu_Item*Fl_Menu_::picked(const Fl_Menu_Item*) (e4f58, d57a8, ffbee040, 0, 124b38, d57a8) + f0
  00084240 int Fl_Menu_Bar::handle(int) (e4f58, 1, 0, e5490, 0, ff226280) + dc
  00075408 int Fl_Group::handle(int) (0, e09f8, e4f58, 0, 1, 0) + 3f4
  0006a060 int send(int,Fl_Widget*,Fl_Window*) (1, df400, df400, 6a07c, 0, 0) + 90
  0006a208 int Fl::handle(int,Fl_Window*) (df400, e4ec8, df000, df000, e5490, 1) + 130
  00092c7c int fl_handle(const _XEvent&) (df400, df400, df400, df000, df400, df400) + cd4
  000913d4 void do_queued_events() (3, 1, df540, de544, 1, ffbee4d8) + 40
  00091664 int fl_wait(double) (0, 1, d9cf4, ffbee580, 1, ffbee600) + 1f4
  00069750 double Fl::wait(double) (df000, dd688, ffbee7e4, 1, e4ec8, f) + 210
  000697b4 int Fl::run() (69778, df770, 10dad0, 113470, d2b68, 1) + 34
  00047040 main (e1428, ffbeecac, e1428, 4, 1, 1) + 134
  0002b428 _start (0, 0, 0, 0, 0, 0) + f8

a truss of a run showed a null address accessed (I think...)

poll(0xFFBECBF8, 1, 4543)                       = 1
ioctl(3, FIONREAD, 0xFFBECB14)                  = 0
read(3, "0501\bB704F1F5\b\0\0\0 H".., 32)       = 32
ioctl(3, FIONREAD, 0xFFBECB14)                  = 0
     Incurred fault #6, FLTBOUNDS  %pc = 0x0004F8C4
       siginfo: SIGSEGV SEGV_MAPERR addr=0x00000000
     Received signal #11, SIGSEGV [default]
       siginfo: SIGSEGV SEGV_MAPERR addr=0x00000000
         *** process killed ***

pressing Continue for a Printer Configure web page (local parallel port printer) yeilds a short page with an error in the cups error_log.
here's the error at LogLevel debug2:

d [01/Feb/2005:01:17:26 +0500] ReadClient() 10, used=0
D [01/Feb/2005:01:17:26 +0500] ReadClient() 10 GET /printers/sim06.ppd HTTP/1.1
d [01/Feb/2005:01:17:26 +0500] decode_auth(28a640): Authorization string = ""
d [01/Feb/2005:01:17:26 +0500] decode_auth() 10 username=""
d [01/Feb/2005:01:17:26 +0500] IsAuthorized: con->uri = "/printers/sim06.ppd"
d [01/Feb/2005:01:17:26 +0500] FindBest: uri = "/printers/sim06"...
d [01/Feb/2005:01:17:26 +0500] FindBest: Location / Limit 7f
d [01/Feb/2005:01:17:26 +0500] FindBest: Location /admin Limit 7f
d [01/Feb/2005:01:17:26 +0500] FindBest: best = "/"
d [01/Feb/2005:01:17:26 +0500] IsAuthorized: auth = 0, satisfy=0...
d [01/Feb/2005:01:17:26 +0500] get_file() 10 filename=/etc/cups/ppd/sim06.ppd size=6006
d [01/Feb/2005:01:17:26 +0500] IsCGI(con=28a640, filename="/etc/cups/ppd/sim06.ppd", filestats=ffbe264c, type=text/plain)
d [01/Feb/2005:01:17:26 +0500] IsCGI: Returning 0...
D [01/Feb/2005:01:17:26 +0500] SendFile() 10 file=11
d [01/Feb/2005:01:17:26 +0500] SendFile: Adding fd 10 to OutputSet...
d [01/Feb/2005:01:17:26 +0500] WriteClient() 10 2048 bytes
d [01/Feb/2005:01:17:26 +0500] WriteClient() 10 2048 bytes
d [01/Feb/2005:01:17:26 +0500] WriteClient() 10 1910 bytes
d [01/Feb/2005:01:17:26 +0500] WriteClient: Removing fd 10 from OutputSet...
d [01/Feb/2005:01:17:26 +0500] WriteClient: Removing fd 11 from InputSet...
d [01/Feb/2005:01:17:26 +0500] WriteClient: 10 Closing data file 11.
d [01/Feb/2005:01:17:26 +0500] WriteClient: Removing fd 6 from OutputSet...
d [01/Feb/2005:01:17:26 +0500] WriteClient: Removing fd 9 from InputSet...
d [01/Feb/2005:01:17:26 +0500] WriteClient: 6 Closing data file 9.
d [01/Feb/2005:01:17:26 +0500] WriteClient: 6 Removing temp file /var/spool/cups/0000000d
D [01/Feb/2005:01:17:26 +0500] CloseClient() 6
d [01/Feb/2005:01:17:26 +0500] CloseClient: Removing fd 6 from InputSet and OutputSet...
d [01/Feb/2005:01:17:26 +0500] ReadClient() 8, used=0
D [01/Feb/2005:01:17:26 +0500] CloseClient() 8
d [01/Feb/2005:01:17:26 +0500] CloseClient: Removing fd 8 from InputSet and OutputSet...
d [01/Feb/2005:01:17:26 +0500] ReadClient() 10, used=0
D [01/Feb/2005:01:17:26 +0500] CloseClient() 10
d [01/Feb/2005:01:17:26 +0500] CloseClient: Removing fd 10 from InputSet and OutputSet...
E [01/Feb/2005:01:17:26 +0500] PID 6847 crashed on signal 11!

the glpoptions program works fine (here's the output from setting to legal size paper):

 > glpoptions -d mylp
PageSize=Legal job-sheets=none,none mirror=no penwidth=10000 prettyprint=no wrap=yes

any help would be welcome!

	Jon Atkins




More information about the cups-devel mailing list