1949068 - Print queue is paused after ipp backend ends with CUPS_BACKEND_STOP

This commit is contained in:
Zdenek Dohnal 2021-04-14 12:39:04 +02:00
parent ef9c2561d5
commit 1cf873fe1d
2 changed files with 49 additions and 0 deletions

View File

@ -0,0 +1,43 @@
From 6e6999b1f74457b7fd6057a31f1d3606de19a05b Mon Sep 17 00:00:00 2001
From: Michael R Sweet <michael.r.sweet@gmail.com>
Date: Fri, 9 Apr 2021 10:20:04 -0400
Subject: [PATCH] Retry Validate-Job once, if needed (Issue #132)
---
CHANGES.md | 1 +
backend/ipp.c | 14 +++++++++++++-
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/backend/ipp.c b/backend/ipp.c
index 63353a66d..020ab7fd4 100644
--- a/backend/ipp.c
+++ b/backend/ipp.c
@@ -256,6 +257,7 @@ main(int argc, /* I - Number of command-line args */
get_job_attrs = 0, /* Does printer support Get-Job-Attributes? */
send_document = 0, /* Does printer support Send-Document? */
validate_job = 0, /* Does printer support Validate-Job? */
+ validate_retried = 0, /* Was Validate-Job request retried? */
copies, /* Number of copies for job */
copies_remaining; /* Number of copies remaining */
const char *content_type, /* CONTENT_TYPE environment variable */
@@ -1559,7 +1561,17 @@ main(int argc, /* I - Number of command-line args */
ipp_status == IPP_STATUS_ERROR_BAD_REQUEST)
break;
else if (job_auth == NULL && ipp_status > IPP_STATUS_ERROR_BAD_REQUEST)
+ {
+ if (!validate_retried)
+ {
+ // Retry Validate-Job operation once, to work around known printer bug...
+ validate_retried = 1;
+ sleep(10);
+ continue;
+ }
+
goto cleanup;
+ }
}
/*
--
2.26.3

View File

@ -78,6 +78,9 @@ Patch15: 0001-backend-usb-libusb.c-Use-60s-timeout-for-reading-at-.patch
# 1949054 - Use nss-user-lookup.target instead of sssd.service and ypbind.service
# https://github.com/OpenPrinting/cups/pull/141
Patch16: cups-nssuserlookup-target.patch
# 1949068 - Print queue is paused after ipp backend ends with CUPS_BACKEND_STOP
# https://github.com/OpenPrinting/cups/pull/132
Patch17: 0001-Retry-Validate-Job-once-if-needed-Issue-132.patch
##### Patches removed because IMHO they aren't no longer needed
##### but still I'll leave them in git in case their removal
@ -285,6 +288,8 @@ to CUPS daemon. This solution will substitute printer drivers and raw queues in
%patch15 -p1 -b .usb-read-timeout
# 1949054 - Use nss-user-lookup.target instead of sssd.service and ypbind.service
%patch16 -p1 -b .nssuserlookup-target
# 1949068 - Print queue is paused after ipp backend ends with CUPS_BACKEND_STOP
%patch17 -p1 -b .validate-retry
%if %{lspp}
@ -685,6 +690,7 @@ rm -f %{cups_serverbin}/backend/smb
* Wed Apr 14 2021 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.3.3op2-4
- 1935318 - old samsung USB devices malfunction with the current (250ms) timeout for usb bulk transaction
- 1949054 - Use nss-user-lookup.target instead of sssd.service and ypbind.service
- 1949068 - Print queue is paused after ipp backend ends with CUPS_BACKEND_STOP
* Mon Mar 22 2021 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.3.3op2-3
- add [Job N] in logs for better debugging