On 16 Jul 2008, at 12:36, Dermot Buckley wrote:


We get the following warning:

PHP Warning: Zend_Mail_Protocol_Abstract::require_once(Zend/Mail/ Protocol/Exception.php) [<a href='function.Zend-Mail-Protocol- Abstract-require-once'>function.Zend-Mail-Protocol-Abstract-require- once</a>]: failed to open stream: No such file or directory in / Library/WebServer/Documents/CBDB/library/Zend/Mail/Protocol/ Abstract.php on line 275

followed by ...

PHP Fatal error: Zend_Mail_Protocol_Abstract::require_once() [<a href='function.require'>function.require</a>]: Failed opening required 'Zend/Mail/Protocol/Exception.php' (include_path='.:../ library:../application/models:../incubator/library:.:../library') in /Library/WebServer/Documents/CBDB/library/Zend/Mail/Protocol/ Abstract.php on line 275



Just for the sake of completeness, I'll post the resolution to this problem:


For reasons as yet unknown (to me at least), the working directory for php changes during object destruction (at least on several of our servers here). A side effect of this is that if you're using relative paths in the include path, dynamic loading of php files will fail during __destruct calls.

So the fix for me was to change the include path entries to absolute paths. The exception is still thrown in Zend_Mail_Protocol_Smtp::quit(), but it is caught and ignored as was intended.


Hopefully this will be of help to someone in the future, it cost me nearly a day to find.


Dermot.

Reply via email to