[Tickets #12265] Re: stable IMAP packages throws tons of errors, flooding the mailserver logs until disk overflow.

noreply at bugs.horde.org noreply at bugs.horde.org
Tue May 21 11:59:06 UTC 2013


Ticket-URL: http://bugs.horde.org/ticket/12265
  Ticket           | 12265
  Aktualisiert Von | torben at dannhauer.info
  Zusammenfassung  | stable IMAP packages throws tons of errors, flooding the
                   | mailserver logs until disk overflow.
  Warteschlange    | Horde Framework Packages
  Version          | Git master
  Typ              | Bug
  Status           | Unconfirmed
  Priorität        | 1. Low
  Milestone        |
  Patch            |
  Zuständige       |
+Neue Anlage      | Socket.php.patch

torben at dannhauer.info (2013-05-21 11:59) hat geschrieben:

>> Looking into the file mentioned in the error message, I found that in
>> both cases the parameter $this->_stream is used, but it is NULL
>> instead of a reasource. What can cause this problem?
> Nothing.  Logging in would have failed if the connection to the  
> server could not be established.  Even if the connection is broken  
> after logging in, _stream will still be a stream resource.
> Unless you did something like update Horde_Imap_Client and had  
> active sessions which you should never do.
> Finally, maybe its a bug in Courier that has not being tickled until  
> now.  But at a minimum would need an IMAP log (and I can verify that  
> I can access a Courier server without any issues).

This even occurs some time after a reboot, so it is certtain nothing  
in the context of a wrong update procedure.
It seems to happen if the IMAP server has lots of open connections.

could it happen that the IMAP server invalidates the handle and thus  
it is now null?

The error is located in Imap sockets protected function _readStream()
The reason for the flooded error logs is, that the do-while loop is  
infinite if the stream is NULL, since the "break;" is only called with  
a vaild stream.
So even it seems to be a rare occassion whrer the strem handle is  
NULL, the code should handle such a sittuation correctly.

  have a code proposal ( see attached patch) which handles the NULL  
handle correctly.

Therfore I recommend to check in the loop at first for a null null  
handle and exit the loop with break, please see the fix

<           if( is_null($this->_stream)) {
<               $this->_debug->info("ERROR: Stream is NULL!");
<               break;
<           }

torben at dannhauer.info (2013-05-21 11:59) hat hochgeladen: Socket.php.patch


More information about the bugs mailing list