[cups.bugs] Re: [LOW] STR #1184: Too many copies

kssingvo.suse kssingvo at suse.de
Wed May 25 05:49:53 PDT 2005


[STR New]

I continued debugging...

Now it looks like this:
during the client <-> server communication the server reads some data from
the client, but after a while the daemon returns IPP_ERROR in this
function:

cups/ipp.c:
ippReadIO(...)
 [...]
 switch (ipp->state) {
 [...]
    case IPP_HEADER :
    [...]
    if ((n = (*cb)(src, buffer, 8)) < 8) {
      DEBUG_printf(("ippReadIO: Unable to read header (%d bytes read)!\n",
n));
      return (n == 0 ? IPP_IDLE : IPP_ERROR);
    }

According to my debug-information: the daemon receives via ipp_read_http()
call -1 bytes and the errno is set to 4 (= EINTR).

So I assume that here the printer backend is sending a signal to the
daemon, about its finished communication to the printer (as it happens
only with small jobs on fast printers, I interpret this as a valid
theory).

So, whoever is familiar with code (hello Michael :-), can you tell me
which signal handlers are playing role in this case?

Have you any patch for above case handy, like mapping errno=4 to IPP_IDLE
in the return case too?

Link: http://www.cups.org/str.php?L1184
Version: 1.1.20





More information about the cups mailing list