[Samba] printing fails for SPOOLSS OpenPrinterEx request

lists at sumpfralle.de lists at sumpfralle.de
Wed May 31 14:29:18 GMT 2006


Hi,
I have a problem with my printing setup of a windows XP client with a samba server.

The windows driver seems to use different ways of smb/printer communication for printing in normal/duplex mode and for printing brochures. The latter failes silently.

normal/duplex printing uses: SMB Open Print File Request
brochure printing starts with: SPOOLSS OpenPrinterEx request

I recorded the network transmission during printing and received the following for brochure printing (which fails):

Source  Dest    Protocol Info
client  server  SMB      Session Setup AndX Request, NTLMSSP_NEGOTIATE
server  client  SMB      Session Setup AndX Response, NTLMSSP_CHALLENGE, Error: STATUS_MORE_PROCESSING_REQUIRED
client  server  SMB      Session Setup AndX Request, NTLMSSP_AUTH, User: \
server  client  SMB      Session Setup AndX Response
client  server  SMB      Tree Connect AndX Request, Path: \\JACKDAW\IPC$
server  client  SMB      Tree Connect AndX Response
client  server  SMB      NT Create AndX Request, Path: \spoolss
server  client  SMB      NT Create AndX Response, FID: 0x7168
client  server  DCERPC   Bind: call_id: 1 UUID: SPOOLSS
server  client  SMB      Write AndX Response, FID: 0x7168, 72 bytes
client  server  SMB      Read AndX Request, FID: 0x7168, 1024 bytes at offset 0
server  client  DCERPC   Bind_ack: call_id: 1 accept max_xmit: 4280 max_recv: 4280
client  server  SPOOLSS  OpenPrinterEx request, \\jackdaw\test
server  client  SPOOLSS  OpenPrinterEx response
client  server  SPOOLSS  GetPrinter request, level 2
server  client  SPOOLSS  GetPrinter response, level 2, Insufficient buffer
client  server  SPOOLSS  GetPrinter request, level 2
server  client  SPOOLSS  GetPrinter response, level 2
client  server  SPOOLSS  OpenPrinterEx request, \\jackdaw\test
server  client  SPOOLSS  OpenPrinterEx response
client  server  TCP      [TCP segment of a reassembled PDU]
client  server  TCP      [TCP segment of a reassembled PDU]
client  server  SPOOLSS  GetPrinter request, level 2
server  client  TCP      netbios-ssn > plato-lm [ACK] Seq=1621 Ack=5111 Win=32767 Len=0
server  client  SMB Pipe TransactNmPipe Response, FID: 0x7168
client  server  SMB      Read AndX Request, FID: 0x7168, 3112 bytes at offset 0
server  client  TCP      [TCP segment of a reassembled PDU]
server  client  TCP      [TCP segment of a reassembled PDU]
client  server  TCP      plato-lm > netbios-ssn [ACK] Seq=6498 Ack=5625 Win=65535 Len=0
server  client  SPOOLSS  GetPrinter response, level 2
client  server  SPOOLSS  OpenPrinterEx request, \\jackdaw\test
server  client  SPOOLSS  OpenPrinterEx response
client  server  SPOOLSS  GetPrinter request, level 0
server  client  SPOOLSS  GetPrinter response, level 0
client  server  SPOOLSS  GetPrinter request, level 2
server  client  SPOOLSS  GetPrinter response, level 2, Insufficient buffer
<snip - the same goes on ...>


Successful printing in normal (or duplex) modes results in the following traffic:

Source  Dest    Protocol Info
client  server  SMB      Open Print File Request
server  client  SMB      Open Print File Response, FID: 0x1be7
client  server  TCP      [TCP segment of a reassembled PDU]
client  server  TCP      [TCP segment of a reassembled PDU]
client  server  TCP      [TCP segment of a reassembled PDU]
client  server  TCP      [TCP segment of a reassembled PDU]
client  server  TCP      [TCP segment of a reassembled PDU]
client  server  TCP      [TCP segment of a reassembled PDU]
client  server  SMB      Write Request, FID: 0x1be7, 9274 bytes at offset 0
server  client  TCP      netbios-ssn > plato-lm [ACK] Seq=41 Ack=2974 Win=32767 Len=0
server  client  TCP      netbios-ssn > plato-lm [ACK] Seq=41 Ack=5894 Win=32767 Len=0
server  client  TCP      netbios-ssn > plato-lm [ACK] Seq=41 Ack=8814 Win=32767 Len=0
server  client  SMB      Write Response, 9274 bytes
client  server  TCP      plato-lm > netbios-ssn [ACK] Seq=9380 Ack=82 Win=64664 Len=0
client  server  TCP      [TCP segment of a reassembled PDU]
client  server  TCP      [TCP segment of a reassembled PDU]
client  server  TCP      [TCP segment of a reassembled PDU]
client  server  TCP      [TCP segment of a reassembled PDU]
client  server  TCP      [TCP segment of a reassembled PDU]
client  server  SMB      Write Request, FID: 0x1be7, 8223 bytes at offset 9274
server  client  TCP      netbios-ssn > plato-lm [ACK] Seq=82 Ack=12300 Win=32767 Len=0
server  client  TCP      netbios-ssn > plato-lm [ACK] Seq=82 Ack=15220 Win=32767 Len=0
server  client  TCP      netbios-ssn > plato-lm [ACK] Seq=82 Ack=17655 Win=32767 Len=0
server  client  SMB      Write Response, 8223 bytes
client  server  SMB      Close Print File Request, FID: 0x1be7
server  client  SMB      Close Print File Response
client  server  TCP      plato-lm > netbios-ssn [ACK] Seq=17696 Ack=162 Win=64584 Len=0
<printing is finished here (successfully)>

The failing brochure printing reaches cups, but gets ignored without an error message (even for "debug" loglevel). There is no job in the cups queue afterwards.

My setup:
SuSE: 10.0
Samba: Version 3.0.20b-3.1-SUSE
Cups: 1.1.23-21.2
Printer: Brother HL-5150D

smb.conf contains the following printing options:
[printer]
path = /var/tmp
printable = Yes
create mask = 0600
browseable = Yes

In windows client(s) the printer is configured to be connected to a local port ("\\servername\printername") and works without problems for anything except brochure printing.

I tried to turn on "default devmode" and "use client driver" in smb.conf. None of these changed the behaviour.

This setup was known to work with the previous server machine, I used. It was a debian sarge woody installation. But this machine is not available for testing anymore ...

Does anyone have any ideas, what I could try, to get brochure printing to work again?

thanks,
Lars


More information about the samba mailing list