[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: EDIT: 5xx, permanent error on disk full



On Sun, Oct 02, 2005 at 12:20:01AM +0200, Håkon Nessjøen wrote:
> Hi,
> 
>  
> 
> I'm sorry, its not a 5xx error, since it's not in SMTP-mode. It?s a bounce
> message with the following content:
> 
>  
> 
> -----
> 
> Hi. This is the qmail-send program at mail-server.name.
> 
> I'm afraid I wasn't able to deliver your message to the following addresses.
> 
> This is a permanent error; I've given up. Sorry it didn't work out.
> 
>  
> 
> <user@xxxxxxxxxxx >:
> 
> failed to write delivered to line errno=28

You forgot to say you have vpopmail.

[safari@safari /usr/local/src]$ grep -C8 "failed to write delivered to line" vpopmail-5.4.13/vqmaillocal.c 

    /* write the Return-Path: and Delivered-To: headers */
    if (write(write_fd,DeliveredTo,strlen(DeliveredTo))!= strlen(DeliveredTo)) {
        close(write_fd);
        /* Check if the user is over quota */
        if ( errno == EDQUOT ) {
            return(-1);
        } else {
            printf("failed to write delivered to line errno=%d\n",errno);
           return(errno);
        }
    }


    /* read it in chunks and write it to the new file */
    while((file_count=read(0,msgbuf,MSG_BUF_SIZE))>0) {
        if ( write(write_fd,msgbuf,file_count) == -1 ) {
[safari@safari /usr/local/src]$ 

obvious next thing to do is to move discussion of vpopmail to
vpopmail mailing list, and file a bugreport: treat temporary
errors in vqmaillocal as temporary errors like qmail does
(in error_temp.c:error_temp() ).

and BTW. if close(write_fd) fails, it modifies the errno,
so the functions returns the "wrong" errno.

-- 

Attachment: pgp00001.pgp
Description: PGP signature