* On 2009-10-13 Volker Schwicking <[email protected]> wrote :

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Hello,
> 
> i just searched the archives but couldnt find any reference regarding
> this bug/problem/limitation in the client-library.
> 
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=478193
> 
> Quick Summary:
> - - apache with 1024+ open file descriptors
> - - php5 using the imap_open-function which utilizes the uw-client-library
> - - imap mailbox with 1024+ emails
> 
> this combinations results in the error-message (on the client-side):
> 
> Unable to create selectable TCP socket (1054 >= 1024)
> 
> Is anyone aware of a patch or some other way to workaround this problem?

I've been bitten by this one as well, time after time after time. I've
created a workaround which closes all apache log filedescriptors in
imap_open, it's a big hack, but works for me. If you're using debian,
you can build and install your own .deb for libc-client including this
patch, but to make sure to pin it to prevent apt-get from installing
newer versions when you're not looking, otherwise your system will break
again after upgrades.

Insert following fragment somewhere in the top of the imap_open
function in src/c-client/imap4r1.c

   
+ { 
+    int fd;
+    int r;
+    char fname[1024]; 
+    char lname[1024]; 
+    for(fd=0; fd<1024; fd++) {
+        snprintf(fname, sizeof(fname),
"/proc/self/fd/%d", fd); 
+        r = readlink(fname, lname, sizeof(lname) - 1);
+        if(r > 0) {
+            lname[r] = 0; 
+            if(strstr(lname, "/var/log/apache2")) {
+                close(fd);
+                printf("%s\n", lname);
+            } 
+        } 
+    } 
+ } 
+

Enjoy,

Ico

-- 
:wq
^X^Cy^K^X^C^C^C^C
_______________________________________________
Imap-uw mailing list
[email protected]
http://mailman2.u.washington.edu/mailman/listinfo/imap-uw

Reply via email to