CUPS client 1.3.7 and implicit classes

Jon Clark jon.clark at shef.ac.uk
Mon Jun 29 08:24:19 PDT 2009


star,

Comments in line below.

> Ok, I see. And you say if the client is V1.1.22 then its all good.

Yes.  The v1.1.22 client does not suffer this problem.

>
> Next week I may have time to repro on V1.3.7 and see what happens for me.
> If so, I will be back here.
>
> 1. Look, the client cannot see printers from server. So, I wonder if
> you can say what is result of 'Find New Printers' from CUPS web admin.
>
> 2. I can suggest maybe you ensure you can see the CUPS servers one at a time from the V1.3.7 client. You know, start server 1 and see if the client is happy and does not time out. Then, shutdown server 1 and repeat with server 2.
> Is the client happy both times?

I've covered this in a relatively uncoordinated way throughout the initial creation of the servers.  The only time that I've seen any problems is going from two on line servers to one.  Any individual server use is just fine.

I am going to run with one print server.  I don't have time to investigate further.  Sorry!  (Although I will be intrigued to hear if the problem can be reproduced.)

Thanks for all your help,
Jon


>
> Hope someone else has good ideas for you to try.
>
> good luck! and have a good weekend
>
>
>
> > star,
> >
> > Thanks for your message.  I have performed tests (detailed below) to check IPP packet communications between a CUPS 1.3.7 client (client) and two identically configured CUPS 1.2.12 print servers (printServ1 and printServ2).  I have found that the client is communicating with the server, but not displaying any printers.
> >
> >
> > I don't have time to investigate this problem further, so I our network will have only one print server.  Shame!
> >
> > Thanks for your help,
> > Jon
> >
> >
> > Test Steps
> > ----------
> >
> > client IP address: x.y.z.c
> > printServ1 IP address: x.y.z.1
> > printServ2 IP address: x.y.z.2
> >
> > Wireshark output is detailed as follows for each individual packet:
> > "number in capture sequence", "time in capture sequence", "source IP address", "destination IP address", "packet protocol", "packet details"
> >
> > Initial conditions: CUPS service stopped on all systems.
> >
> >
> > 1) Remove client CUPS remote cache file:
> >
> > client# rm /var/cache/cups/remote.cache
> >
> >
> > 2) Start Wireshark packet capture on client.  Capture filter set to 'tcp port 631'.
> >
> >
> > 3) Start CUPS service on client:
> >
> > client# /etc/init.d/cups start
> >
> > --> Wireshark capture shows:
> > * An "active open" SYN packet sent from client to printServ2: "1","0.000000000","x.y.z.c","x.y.z.2","TCP","34759 > ipp [SYN] Seq=0 Win=5840 Len=0 MSS=1460 TSV=19763466 TSER=0 WS=4"
> > * and a RST ACK returned by printServ2 to show no connection is possible: "2","0.001045000","x.y.z.2","x.y.z.c","TCP","ipp > 34759 [RST, ACK] Seq=1 Ack=1 Win=0 Len=0"
> > * An "active open" SYN packet sent from client to printServ1: "3","0.001108000","x.y.z.c","x.y.z.1","TCP","36791 > ipp [SYN] Seq=0 Win=5840 Len=0 MSS=1460 TSV=19763468 TSER=0 WS=4"
> > * and a RST ACK returned by printServ1 to show no connection is possible: "4","0.002032000","x.y.z.1","x.y.z.c","TCP","ipp > 36791 [RST, ACK] Seq=1 Ack=1 Win=0 Len=0"
> >
> > --> "/var/log/cups/error_log" shows:
> > E [25/Jun/2009:17:19:41 +0100] [cups-polld printServ2.shef.ac.uk:631] Unable to connect to printServ2.shef.ac.uk on port 631: Unknown host
> > E [25/Jun/2009:17:19:41 +0100] [cups-polld printServ1.shef.ac.uk:631] Unable to connect to printServ1.shef.ac.uk on port 631: Unknown host
> >
> >
> > 4) Start CUPS service on printServ1:
> >
> > printServ1# /etc/init.d/cups start
> >
> > --> Wireshark capture shows:
> > * Another "active open" SYN packet sent from client to printServ1: "9","60.019540000","x.y.z.c","x.y.z.1","TCP","40603 > ipp [SYN] Seq=0 Win=5840 Len=0 MSS=1460 TSV=19823502 TSER=0 WS=4"
> > * and this time a SYN ACK is returned by printServ1 to show a connection is possible: "10","60.020476000","x.y.z.1","x.y.z.c","TCP","ipp > 40603 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1460 TSV=4951962 TSER=19823502 WS=5"
> >
> > --> "/var/log/cups/error_log" stops logging "Unable to connect to printServ1" messages.
> >
> >
> > 5) 'lpstat' on the client shows a full list of printers available:
> >
> > client# echo "`date ; lpstat -a`"
> >
> > Thu Jun 25 17:21:28 BST 2009
> > apc1-f6 accepting requests since Thu 25 Jun 2009 05:20:41 PM BST
> > apc1d-f6 accepting requests since Thu 25 Jun 2009 05:20:42 PM BST
> > clj47-h10a accepting requests since Thu 25 Jun 2009 05:20:43 PM BST
> > clj47-h17 accepting requests since Thu 25 Jun 2009 05:20:44 PM BST
> > clj47-i20 accepting requests since Thu 25 Jun 2009 05:20:45 PM BST
> > clj47d-h10a accepting requests since Thu 25 Jun 2009 05:20:46 PM BST
> > clj47d-h17 accepting requests since Thu 25 Jun 2009 05:20:47 PM BST
> > lj132-g11b accepting requests since Thu 25 Jun 2009 05:20:48 PM BST
> > lj132d-g11b accepting requests since Thu 25 Jun 2009 05:20:49 PM BST
> > lj23-i19 accepting requests since Thu 25 Jun 2009 05:20:50 PM BST
> > lj23d-i19 accepting requests since Thu 25 Jun 2009 05:20:51 PM BST
> > lj4-i19 accepting requests since Thu 25 Jun 2009 05:20:52 PM BST
> > lj5m-i19 accepting requests since Thu 25 Jun 2009 05:20:53 PM BST
> > mjt accepting requests since Thu 25 Jun 2009 05:20:54 PM BST
> > mjtd accepting requests since Thu 25 Jun 2009 05:20:55 PM BST
> > pcopy-g11b accepting requests since Thu 25 Jun 2009 05:20:56 PM BST
> > pcopy-h17 accepting requests since Thu 25 Jun 2009 05:20:57 PM BST
> > pcopy-j17 accepting requests since Thu 25 Jun 2009 05:20:58 PM BST
> > pcopyd-g11b accepting requests since Thu 25 Jun 2009 05:20:59 PM BST
> > pcopyd-j17 accepting requests since Thu 25 Jun 2009 05:21:00 PM BST
> >
> >
> > 6) Start CUPS service on printServ2:
> >
> > printServ2# /etc/init.d/cups start
> >
> > --> Wireshark capture shows:
> > * Another "active open" SYN packet sent from client to printServ2: "76","150.102193","x.y.z.c","x.y.z.2","TCP","45290 > ipp [SYN] Seq=0 Win=5840 Len=0 MSS=1460 TSV=19913606 TSER=0 WS=4"
> > * and this time a SYN ACK is returned by printServ2 to show a connection is possible: "77","150.103321","x.y.z.2","x.y.z.c","TCP","ipp > 45290 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1460 TSV=4975802 TSER=19913606 WS=6"
> >
> > --> "/var/log/cups/error_log" stops logging "Unable to connect to printServ2" messages.
> >
> >
> > 7) 'lpstat' on the client shows a full list of printers still available:
> >
> > client# echo "`date ; lpstat -a`"
> >
> > Thu Jun 25 17:22:38 BST 2009
> > apc1-f6 accepting requests since Thu 25 Jun 2009 05:22:11 PM BST
> > apc1d-f6 accepting requests since Thu 25 Jun 2009 05:22:12 PM BST
> > clj47-h10a accepting requests since Thu 25 Jun 2009 05:22:13 PM BST
> > clj47-h17 accepting requests since Thu 25 Jun 2009 05:22:14 PM BST
> > clj47-i20 accepting requests since Thu 25 Jun 2009 05:22:15 PM BST
> > clj47d-h10a accepting requests since Thu 25 Jun 2009 05:22:16 PM BST
> > clj47d-h17 accepting requests since Thu 25 Jun 2009 05:22:17 PM BST
> > lj132-g11b accepting requests since Thu 25 Jun 2009 05:22:18 PM BST
> > lj132d-g11b accepting requests since Thu 25 Jun 2009 05:22:19 PM BST
> > lj23-i19 accepting requests since Thu 25 Jun 2009 05:22:20 PM BST
> > lj23d-i19 accepting requests since Thu 25 Jun 2009 05:22:21 PM BST
> > lj4-i19 accepting requests since Thu 25 Jun 2009 05:22:22 PM BST
> > lj5m-i19 accepting requests since Thu 25 Jun 2009 05:22:23 PM BST
> > mjt accepting requests since Thu 25 Jun 2009 05:22:24 PM BST
> > mjtd accepting requests since Thu 25 Jun 2009 05:22:25 PM BST
> > pcopy-g11b accepting requests since Thu 25 Jun 2009 05:22:26 PM BST
> > pcopy-h17 accepting requests since Thu 25 Jun 2009 05:22:27 PM BST
> > pcopy-j17 accepting requests since Thu 25 Jun 2009 05:22:28 PM BST
> > pcopyd-g11b accepting requests since Thu 25 Jun 2009 05:22:29 PM BST
> > pcopyd-j17 accepting requests since Thu 25 Jun 2009 05:22:30 PM BST
> >
> >
> > 8) Stop CUPS service on printServ2:
> >
> > printServ2# /etc/init.d/cups stop
> >
> > --> Wireshark capture shows:
> > * printServ2 sends a FIN ACK to close the connection with client: "194","213.166457","x.y.z.2","x.y.z.c","TCP","ipp > 45290 [FIN, ACK] Seq=21658 Ack=1444 Win=12224 Len=0 TSV=4991568 TSER=19973722"
> > * and client responds with a FIN ACK to close its part of the connection: "198","240.247954","x.y.z.c","x.y.z.2","TCP","45290 > ipp [FIN, ACK] Seq=1925 Ack=21659 Win=61936 Len=0 TSV=20003773 TSER=4991568"
> >
> >
> > --> "/var/log/cups/error_log" shows:
> > E [25/Jun/2009:17:23:41 +0100] [cups-polld printServ2.shef.ac.uk:631] CUPS-Get-Printers failed: Unknown
> >
> >
> > 9) 'lpstat' on the client does not return a single printer:
> >
> > client# echo "`date ; lpstat -a`"
> >
> > Thu Jun 25 17:24:41 BST 2009
> >
> > Note that:
> >
> > --> Wireshark capture shows client and printServ1 are continuing to communicate:
> > * printServ1 sends an ACK to client: "231","270.420263","x.y.z.1","x.y.z.c","TCP","ipp > 40603 [ACK] Seq=50611 Ack=3849 Win=22944 Len=0 TSV=5004566 TSER=20033952"
> > * client sends an ACK to printServ1: "233","270.420971","x.y.z.c","x.y.z.1","TCP","40603 > ipp [ACK] Seq=3849 Ack=50636 Win=64096 Len=0 TSV=20033953 TSER=5004566"
> >
> > --> "/var/log/cups/error_log" does not log any "Unable to connect to printServ1" messages.
> >
> >
> > So there it is.  I have a client and a server who are communicating successfully, but the client will not list any printers.
> >
> >
> >
> > > Well, that is interesting.
> > > If a running server dropped off one client but not another I would explicitly set the BrowseTimeout on the failing client to a large value and see what happens.
> > >
> > > Maybe even shorten BrowseInterval on server..
> > >
> > > With wireshark you can monitor IPP browse broadcast packets to make sure server is sending properly.
> > >
> > > I hope its not worse than this.
> > >
> > > have a good day : )
> > >
> > >
> > > > Hi all,
> > > >
> > > > I am trying to upgrade our CUPS linux printing service by creating two print servers.  These servers will be identically configured (i.e. identical printer queue names etc) to try and give us redundancy ('failover').  Each server is running CUPS 1.2.12.  I have had success with a client running CUPS 1.1.22 but found problems with a client running CUPS 1.3.7.
> > > >
> > > > Details:
> > > >
> > > > By creating identical print servers I make use of CUPS' implicit classes.  If I stop the cups service on my "second" print server - FQDN2 in details below - (i.e. to simulate failure or re-configuration), I see the following:
> > > >
> > > > CUPS 1.1.22 client: All printers are still available.  (Using remaining print server)
> > > > CUPS 1.3.7 client: All printers disappear.  (Even though remaining server is active)
> > > >
> > > > The cups log of the 1.3.7 client explicitly states that it is polling both of the configured print servers.
> > > >
> > > > Has anyone discovered the same problem?  I have searched the bug reports and not found anything relevant for CUPS 1.3.7.
> > > >
> > > > I doubt that I am the first person to try to set up two CUPS servers with these versions, so will be happy to be told of a mistake I have made!  More details and cups configuration files are below.
> > > >
> > > > Any help appreciated!
> > > > Jon
> > > >
> > > >
> > > > ++++
> > > >
> > > >
> > > > ++ CUPS 1.1.22 client:
> > > >
> > > > # yum list installed | grep cups
> > > > cups.i386                                1:1.1.22-0.rc1.9.27.el installed
> > > > cups-devel.i386                          1:1.1.22-0.rc1.9.27.el installed
> > > > cups-libs.i386                           1:1.1.22-0.rc1.9.27.el installed
> > > > hal-cups-utils.i386                      0.5.2-8                installed
> > > > libgnomecups.i386                        0.1.12-5               installed
> > > >
> > > >
> > > > (Config file with server names masked.)
> > > > # cat /etc/cups/cupsd.conf
> > > >
> > > > # basic cupsd.conf for clients
> > > >
> > > > LogLevel info
> > > > # LogLevel debug
> > > >
> > > > HostNameLookups On
> > > >
> > > > Browsing On
> > > > BrowseShortNames Yes
> > > > BrowseOrder allow,deny
> > > > BrowseDeny All
> > > > BrowsePoll FQDN1:631
> > > > BrowsePoll FQDN2:631
> > > >
> > > > ImplicitClasses Yes
> > > > ImplicitAnyClasses Yes
> > > > HideImplicitMembers Yes
> > > >
> > > > DefaultAuthType Basic
> > > >
> > > > <Location />
> > > >  Order Allow, Deny
> > > >  Allow localhost
> > > > </Location>
> > > >
> > > > <Location /admin>
> > > >  AuthType Basic
> > > >  Require user @SYSTEM
> > > >  Order Allow, Deny
> > > >  Allow localhost
> > > > </Location>
> > > >
> > > > Listen localhost:631
> > > > Listen /var/run/cups/cups.sock
> > > >
> > > >
> > > > ++ CUPS 1.3.7 client
> > > >
> > > > # yum list installed | grep cups
> > > > cups.i386                                1:1.3.7-8.el5_3.6      installed
> > > > cups-libs.i386                           1:1.3.7-8.el5_3.6      installed
> > > > hal-cups-utils.i386                      0.6.2-5                installed
> > > > libgnomecups.i386                        0.2.2-8                installed
> > > >
> > > >
> > > > (Config file with server names masked.)
> > > > # cat /etc/cups/cupsd.conf
> > > >
> > > > # basic cupsd.conf for clients
> > > >
> > > > LogLevel info
> > > > # LogLevel debug
> > > >
> > > > HostNameLookups On
> > > >
> > > > Browsing On
> > > > BrowseShortNames Yes
> > > > BrowseOrder allow,deny
> > > > BrowseDeny All
> > > > BrowsePoll FQDN1:631
> > > > BrowsePoll FQDN2:631
> > > >
> > > > ImplicitClasses Yes
> > > > ImplicitAnyClasses Yes
> > > > HideImplicitMembers Yes
> > > >
> > > > DefaultAuthType Basic
> > > >
> > > > <Location />
> > > >  Order Allow, Deny
> > > >  Allow localhost
> > > > </Location>
> > > >
> > > > <Location /admin>
> > > >  AuthType Basic
> > > >  Require user @SYSTEM
> > > >  Order Allow, Deny
> > > >  Allow localhost
> > > > </Location>
> > > >
> > > > Listen localhost:631
> > > > Listen /var/run/cups/cups.sock
> > >
> >
>





More information about the cups mailing list