Hi,

Continuing on with my example plugin from before...

I am sending data to the spooler using spool_request(uspool,
spool_filename, uwsgi.workers[0].requests + 1, wsgi_req->async_id,
wsgi_req->buffer, wsgi_req->uh.pktsize, NULL, 0, body, body_len)

The spool file looks "ok" to me, etc.

* I am using uwsgi 1.0.2.1
* The double free happens on line 424 of spooler.c
* I am assuming I have 1 spooler running -- I am assuming the 3 uwsgi
processes are: master, worker, spooler

If I add the typical body = NULL; after the free, I of course, don't
get a double free.

After printing out the values for that loop, I found that
uwsgi.p[i]->spooler is true for i = 0 and 250.  Maybe I should change
the modifier1 for my plugin to 0 rather than use 250 as the modifier1
in the plugin and then map it to 0 on startup?

*** config output from uwsgi ***
;uWSGI instance configuration
[uwsgi]
zeromq = tcp://192.168.0.5:9905,tcp://192.168.0.5:9904
plugins = example
master = true
spooler = ./myspool
show-config = 1
remap-modifier = 250:0
;end of configuration

*** struct used in my example plugin ****
struct uwsgi_plugin example_plugin = {
        .name = "example",
        .modifier1 = 250,
        .init = uwsgi_example_init,
        .request = uwsgi_example_request,
        .after_request = uwsgi_example_after_request,
        .spooler = uwsgi_example_spooler,
};

Thanks,

Jeff Van Voorst
_______________________________________________
uWSGI mailing list
[email protected]
http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi

Reply via email to