After running with my patch for a while, I saw the same behavior - cupsd
running at 100% CPU. In our environment, we're running only clients, so
the inability to bind port 631 wasn't immediately a problem. So, it
looks like my "quick fix" is a bust.

My next thought is that this might actually be a CUPS problem. I looked through 
the source code a bit and in scheduler/dirsvc.c, the poller is spawned with:
    if (cupsdStartProcess(polld, argv, envp, -1, -1, statusfds[1], -1,
                          0, &(pollp->pid)) < 0)

And the actual cupsdStartProcess function in scheduler/process.c takes these 
arguments:
cupsdStartProcess(
    const char *command,                /* I - Full path to command */
    char       *argv[],                 /* I - Command-line arguments */
    char       *envp[],                 /* I - Environment */
    int        infd,                    /* I - Standard input file descriptor */
    int        outfd,                   /* I - Standard output file descriptor 
*/
    int        errfd,                   /* I - Standard error file descriptor */
    int        backfd,                  /* I - Backchannel file descriptor */
    int        root,                    /* I - Run as root? */
    int        *pid)                    /* O - Process ID */

This would seem to indicate that the polld process shouldn't be spawned
as root (argument 8 = 0 ), but it is. I'm not much of a C programmer, so
I could be completely off-base here, but this seems to be at least close
to the problem. I may post this to the CUPS list and see if anyone knows
anything about it.

-- 
multiple cups-polld running simultaneously
https://launchpad.net/bugs/67680

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to