On Wed, Nov 20, 2002 at 03:16:55PM +0000, F�bio Gomes wrote:
> Taymour A. El Erian wrote:
> 
> >Hi,
> >
> >   I know this has been discussed earlier. I can not restart qmail, if I 
> >do restart it qmail-send doesn't stop and then you get qmail-todo 
> >exiting ASAP in the qmail-send log file and I have to kill qmail-send 
> >then start it again. Is there a solution for this problem.
> 
> The above occurs with my instalation also. I assume this is happening 
> because qmail-remote needs to quit the connection with the remote host 
> before exit. But some email host outside there are really slow and 
> quiting the transaction or even close the connection due timeout 
> (/var/qmail/control/timeoutremote) takes a little time. qmail starts to 
> send messages as supposed when it close the last 'turtle' connection.
> 

The interesting thing is if qmail-todo is still running or not.

> >
> >Another point, My LDAP server NIC got toasted so LDAP was done qmail 
> >bounces messages directly to senders saying no mailbox here by that 
> >name, shouldn't the messages be kept in the queue if the ldap times out.
> >
> 
> Again this have happened with me. Ok, if I shutdown my LDAP server the 
> messages will wait in the queue until the LDAP becomes available again. 
> But, if in any moment, the LDAP server becomes slow enough (due lack of 
> index or high cpu usage), the search timeout is reached and the sender 
> recieve a bounce just as described above.
> 
> 
> PS.: I have read Claudio's reply for this topic, but I thought this 
> could reinforce the case.
> 

OK, had a deep look at the timeout code and ... puff found the bug:
diff -u -r1.27 qldap-ldaplib.c
--- qldap-ldaplib.c     27 Sep 2002 09:18:14 -0000      1.27
+++ qldap-ldaplib.c     20 Nov 2002 18:04:25 -0000
@@ -330,9 +330,10 @@
                case LDAP_TIMELIMIT_EXCEEDED:
                case LDAP_BUSY:
                  qldap_errno = LDAP_SEARCH_TIMEOUT;
-
+                 break;
                default:
                  qldap_errno = LDAP_SEARCH;
+                 break;
                }

That should be pretty self explaining.

-- 
:wq Claudio

Reply via email to