Le Mon, Jun 28, 2010 at 07:21:21PM +0800, Zhu Han ecrivait :
> I observed the same problem in my environment. I took some time to trace the
> cause. Seems like it's really a bug.  Does anybody help me verify it and
> give a possible fix?

  This fixes it for me, although it's probably not the right way to fix this :
  
diff -ur /tmp/a/http.c /tmp/b/http.c
--- /tmp/a/http.c       2010-06-28 13:29:03.000000000 +0200
+++ /tmp/b/http.c       2010-06-13 11:41:49.000000000 +0200
@@ -557,7 +557,9 @@
                 */
                if (!req->userdone) {
                        /* remove it so that it will not be freed */
-                       TAILQ_REMOVE(&req->evcon->requests, req, next);
+                       if (req->evcon->http_server == NULL) {
+                               TAILQ_REMOVE(&req->evcon->requests, req, next);
+                       }
                        /* indicate that this request no longer has a
                         * connection object
                         */
  
-- 
Frank Denis - j [at] pureftpd.org - http://00f.net
_______________________________________________
Libevent-users mailing list
Libevent-users@monkey.org
http://lists.monkey.org:8080/listinfo/libevent-users

Reply via email to