Date: Mon, 30 Oct 2000 12:28:06 -0800 (PST)
   From: Jeff Mayzurk <[EMAIL PROTECTED]>

   The pipe works fine for small distribution lists, but I'm getting consistent 
   blocking after writing about 10KB of addresses (around 400 recipients) to the 
   pipe. qmail-queue is blocked in read() and my returns EAGAIN indefinitely on 
   write(), or blocks indefinitely without O_NONBLOCK set.

You need two pipes to send information to qmail-queue.  In which order
are you writing and closing them?

qmail-queue reads the mail message first from descriptor 0--it reads
all data until the pipe is closed.  Then it reads the address
information from descriptor 1.  The error you are describing is
exactly what would happen if you write more than PIPE_BUF bytes (often
10240) to descriptor 1 before you close descriptor 0 after writing the
message to it.

Ian

Reply via email to