diff --git a/0001-cups-http-addr.c-Set-listen-backlog-size-to-INT_MAX-.patch b/0001-cups-http-addr.c-Set-listen-backlog-size-to-INT_MAX-.patch new file mode 100644 index 0000000..2c5daff --- /dev/null +++ b/0001-cups-http-addr.c-Set-listen-backlog-size-to-INT_MAX-.patch @@ -0,0 +1,35 @@ +From 876fdc1c90a885a58644c8757bc1283c9fd5bcb7 Mon Sep 17 00:00:00 2001 +From: Vasilis Liaskovitis +Date: Wed, 1 Mar 2023 13:46:28 +0100 +Subject: [PATCH] cups/http-addr.c: Set listen backlog size to INT_MAX (fixes + #308) + +Use a listen queue size of INT_MAX, which should default to the maximum +supported queue size on the system. + +This avoids the problem of the listening backlog queue getting full when +there are too many requests at the same time. The problem was observed +with the previous backlog size (128) by customers when submitting large +batches of print jobs, resulting in some jobs getting lost. + +Signed-off-by: Vasilis Liaskovitis +--- + cups/http-addr.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cups/http-addr.c b/cups/http-addr.c +index a61ee0449..6aeeb8074 100644 +--- a/cups/http-addr.c ++++ b/cups/http-addr.c +@@ -249,7 +249,7 @@ httpAddrListen(http_addr_t *addr, /* I - Address to bind to */ + * Listen... + */ + +- if (listen(fd, 128)) ++ if (listen(fd, INT_MAX)) + { + _cupsSetHTTPError(HTTP_STATUS_ERROR); + +-- +2.41.0 + diff --git a/cups.spec b/cups.spec index 1d423a1..a8a90a9 100644 --- a/cups.spec +++ b/cups.spec @@ -109,6 +109,8 @@ Patch30: cups-local-negotiate.patch Patch31: 0001-Fix-delays-printing-to-lpd-when-reserved-ports-are-e.patch # 2217284 - The command "cancel -x " does not remove job files Patch32: 0001-Use-purge-job-instead-of-purge-jobs-when-canceling-a.patch +# 2217954 - Enlarge backlog queue for listen() in cupsd +Patch33: 0001-cups-http-addr.c-Set-listen-backlog-size-to-INT_MAX-.patch ##### Patches removed because IMHO they aren't no longer needed @@ -349,6 +351,8 @@ to CUPS daemon. This solution will substitute printer drivers and raw queues in %patch31 -p1 -b .lpd-delay # 2217284 - The command "cancel -x " does not remove job files %patch32 -p1 -b .purge-job +# 2217954 - Enlarge backlog queue for listen() in cupsd +%patch33 -p1 -b .listen-backlog %if %{lspp} # LSPP support. @@ -775,6 +779,7 @@ rm -f %{cups_serverbin}/backend/smb * Wed Jun 28 2023 Zdenek Dohnal - 1:2.3.3op2-19 - 2217177 - Delays printing to lpd when reserved ports are exhausted - 2217284 - The command "cancel -x " does not remove job files +- 2217954 - Enlarge backlog queue for listen() in cupsd * Wed Apr 26 2023 Zdenek Dohnal - 1:2.3.3op2-18 - 2189919 - CGI scripts don't work with local Negotiate authentication