[Gluster-devel] bug in mod_glusterfs for lighty 1.5

s.dinev at corp.mail.bg s.dinev at corp.mail.bg
Mon Jul 13 10:15:43 UTC 2009


Hello!

We want to use mod_glusterfs, but it has bugs. We use glusterfs on our  
production servers (version  glusterfs-1.4.0pre5 ). Our web server is  
lighttpd 1.5 rev. 1992.

We decided to test mod_glusterfs, but we discovered that it killed  
lighty (SEGFAULT). With valgrind I discovered that the problem is near  
line 1453 of mod_glusterfs.c. I looked it and I decided to change the  
code:

FROM:
URIHANDLER_FUNC(mod_glusterfs_response_done) {
         plugin_data *p = p_d;
         UNUSED (srv);
         mod_glusterfs_ctx_t *ctx = con->plugin_ctx[p->id];

         con->plugin_ctx[p->id] = NULL;
         if (ctx) {
             if (ctx->glusterfs_path) {
                     free (ctx->glusterfs_path);
             }
         }

         free (ctx);
         return HANDLER_GO_ON;
}

TO:
URIHANDLER_FUNC(mod_glusterfs_response_done) {
         plugin_data *p = p_d;
         UNUSED (srv);
         mod_glusterfs_ctx_t *ctx = con->plugin_ctx[p->id];

         if (ctx) {
             if (ctx->buf) {
                 free (ctx->buf);
                 ctx->buf = NULL;
             }
             if (ctx->glusterfs_path) {
//                    free (ctx->glusterfs_path);
                     buffer_free (ctx->glusterfs_path);
                     ctx->glusterfs_path = NULL;
             }
         }
         con->plugin_ctx[p->id] = NULL;
         free (ctx);

         return HANDLER_GO_ON;
}

Now It works, but when I stop downloading proces lighty kills itself  
(server.c.847: (trace) [note] graceful shutdown started by UID=0,  
PID=0). Now I don`t know what to do.

I updated glusterfs to the latest version, but when I started lighty,  
it showed:

## lighttpd error glusterfs version 2.0.1 and above
Starting web server: lighttpd2009-07-08 12:54:55: (plugin.c.266)  
dlopen() failed for: /usr/lib/lighttpd/mod_glusterfs.so  
/usr/lib/lighttpd/mod_glusterfs.so: undefined symbol:  
glusterfs_lookup_async
2009-07-08 12:54:55: (server.c.1185) loading plugins finally failed

It looks like this method doesn`t exist any more.

I will be very thankful if you fix these bugs and people can use  
mod_glusterfs freely. I hope that you send me some information about  
the problems I described above.

Other bug:
# compile error - SEGFAULT
mod_glusterfs.c:830:26: warning: ISO C99 requires rest arguments to be used
mod_glusterfs.c: In function ‘http_response_parse_range’:
mod_glusterfs.c:830: error: expected expression before ‘)’ token
mod_glusterfs.c:830: warning: too many arguments for format
mod_glusterfs.c:830: error: expected expression before ‘,’ token
make[4]: *** [mod_glusterfs_la-mod_glusterfs.lo] Error 1

# fix
SEGFAULT("got HANDLER_ERROR from a plugin: %s", "glusterfs");

-- 
  Стефан Динев
  mail.bG
  BG-1517 Sofia, P.O. Box 17
  Phone: +359 [2] 9451006

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://supercolony.gluster.org/pipermail/gluster-devel/attachments/20090713/94d9ff9d/attachment-0003.html>


More information about the Gluster-devel mailing list