#33349 [Opn]: imap_fetchstructure hangs on some mails

From: Date: Mon, 20 Jun 2005 08:04:45 +0000
Subject: #33349 [Opn]: imap_fetchstructure hangs on some mails
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-80680@lists.php.net to get a copy of this message
ID: 33349 User updated by: benjamin dot malynovytch at libertic dot fr Reported By: benjamin dot malynovytch at libertic dot fr Status: Open Bug Type: IMAP related Operating System: Linux (Mandrake 9.2) PHP Version: 5.0.4 New Comment: Here's a part of the strace of the child process that processed the request. It ends on a Seg Fault. ------------------------------------------------------------ ... 31537 time(NULL) = 1119254602 31537 time(NULL) = 1119254602 31537 select(58, NULL, [57], [57], {60, 0}) = 1 (out [57], left {60, 0}) 31537 time(NULL) = 1119254602 31537 write(57, "00000009 FETCH 2 (BODYSTRUCTURE "..., 40) = 40 31537 time(NULL) = 1119254602 31537 time(NULL) = 1119254602 31537 select(58, [57], NULL, [57], {60, 0}) = 1 (in [57], left {60, 0}) 31537 time(NULL) = 1119254602 31537 read(57, "* 2 FETCH (BODYSTRUCTURE (((\"tex"..., 8192) = 936 31537 alarm(0) = 0 31537 alarm(0) = 0 31537 alarm(0) = 0 31537 alarm(0) = 0 31537 alarm(0) = 0 31537 alarm(0) = 0 31537 alarm(0) = 0 31537 alarm(0) = 0 31537 alarm(0) = 0 31537 alarm(0) = 0 31537 alarm(0) = 0 31537 alarm(0) = 0 31537 alarm(0) = 0 31537 alarm(0) = 0 31537 alarm(0) = 0 31537 alarm(0) = 0 31537 alarm(0) = 0 31537 alarm(0) = 0 31537 alarm(0) = 0 31537 alarm(0) = 0 31537 alarm(0) = 0 31537 alarm(0) = 0 31537 alarm(0) = 0 31537 alarm(0) = 0 ... 31537 alarm(0) = 0 31537 alarm(0) = 0 31537 time(NULL) = 1119254602 31537 alarm(0) = 0 31537 alarm(0) = 0 31537 --- SIGSEGV (Segmentation fault) @ 0 (0) --- 31537 chdir("/usr/local/httpd/httpd") = 0 31537 rt_sigaction(SIGSEGV, {SIG_DFL}, {SIG_DFL}, 8) = 0 31537 getpid() = 31537 31537 getpid() = 31537 31537 kill(31537, SIGSEGV) = 0 31537 sigreturn() = ? (mask now [RTMIN]) 31537 --- SIGSEGV (Segmentation fault) @ 0 (0) --- 31537 +++ killed by SIGSEGV +++ ------------------------------------------------------------ Previous Comments: ------------------------------------------------------------------------ [2005-06-20 09:51:13] benjamin dot malynovytch at libertic dot fr I tried several versions of imap (UW): imap-2001a, imap-2002a, imap-2004a, imap-2004d, imap-2004e-DEVEL None of them worked. I'm afraid their's no error log: the application hangs without returning anything (would be too easy to debug). The only thing I know, is that the application hangs just after the call to "imap_fetchstructure" (did some echo "..."; flush(); to be sure). Any idea ? ------------------------------------------------------------------------ [2005-06-18 00:45:26] iliaa@php.net If the problem persists, please provide a URL to the complete text of the message that causes the hang. ------------------------------------------------------------------------ [2005-06-17 12:23:17] benjamin dot malynovytch at libertic dot fr I had already tried the CVS version before submitting the bug. It hasn't solved the problem. I am going to try a different version of the c-client library, but the University of Washington only gives the latest version on their ftp (last update was made at the end of 2003 - Version 2004d). I hope it will solve the problem, but why does the imap_fetchstructure function doesn't send en error message if something goes wrong (lost connection, invalid format ...) ? Thanks for the support :) ------------------------------------------------------------------------ [2005-06-15 15:13:58] sniper@php.net Please try using this CVS snapshot: http://snaps.php.net/php5-latest.tar.gz For Windows: http://snaps.php.net/win32/php5-win32-latest.zip If you can reproduce it with the snapshot, try upgrading the c-client. (it might be a bug in that, not PHP..) ------------------------------------------------------------------------ [2005-06-15 11:36:30] benjamin dot malynovytch at libertic dot fr Description: ------------ Calling imap_fetchstructure() on certain multi-part messages causes an indefinite hang (function never returns). Versions: Tried: PHP-5.0.3, PHP-5.0.4, PHP-5.0.5-dev c-client: imap-2004d Apache: httpd-2.0.53 I gave a look at other related bugs, and checkd that que imap link was still up when the function was called. I also tried to place a timer between two function calls. Nothing worked, the link is still up when que function hangs. Reproduce code: --------------- <?php $pop_user = "someuser"; $pop_pass = "somepassword"; $pop_host = "somehost.somewhere.com"; $mbox_path = "/path/to/failedmsg.1"; $pop_conn_string = "\{$pop_host:143/imap}$mbox_path"; $pop_conn = imap_open($pop_conn_string, $pop_user, $pop_pass); // Assuming message-of-death is first one in the mbox $mimeobj = imap_fetchstructure($pop_conn, 1); // Never gets here... imap_close($pop_conn); ?> Expected result: ---------------- imap_fetchstructure() should quickly return the structure of the message. Actual result: -------------- The function never returns on most mails, and page loading stops. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=33349&edit=1

« previous php.bugs (#80680) next »