[MOD] STR #4194: ipp backend endless loop

Bernd Krumb??ck <[email protected]> Thu, 27 Sep 2012 09:47:59 -0700 (PDT)
Newsgroups gmane.comp.printing.cups.bugs
Message-ID <[email protected]>
DO NOT REPLY TO THIS MESSAGE.  INSTEAD, POST ANY RESPONSES TO THE LINK BELOW.

[STR New]

The ipp backend could hang, when connection failed.

Error log:
D [27/Sep/2012:09:04:07 +0200] [Job 486392] Getting supported
attributes...
D [27/Sep/2012:09:04:07 +0200] [Job 486392] Get-Printer-Attributes:
server-error-internal-error (Connection reset by peer)
D [27/Sep/2012:09:04:07 +0200] [Job 486392] Get-Printer-Attributes
returned server-error-internal-error.
E [27/Sep/2012:09:04:07 +0200] [Job 486392] Unable to get printer status.

Restoring the connection and restarting the ipp service on the other side
didn't help.

Please check the attached patch.

Link: http://www.cups.org/str.php?L4194
Version: 1.5.4

_______________________________________________
cups-bugs mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/cups-bugs
cups-1.5.4-ipp-reconnect.patch (text/plain, 378 B)
--- backend/ipp.c.orig	2012-09-27 18:23:17.000000000 +0200
+++ backend/ipp.c	2012-09-27 18:26:29.000000000 +0200
@@ -923,6 +923,9 @@
 	_cupsLangPrintFilter(stderr, "ERROR",
 	                     _("Unable to get printer status."));
         sleep(10);
+        if (ipp_status == IPP_INTERNAL_ERROR) {
+	  httpReconnect(http);
+        }
       }
 
       ippDelete(supported);