diff --git a/core/spooler.c b/core/spooler.c index cc92c701..9024f389 100644 --- a/core/spooler.c +++ b/core/spooler.c @@ -200,11 +200,13 @@ static void spooler_req_parser_hook(char *key, uint16_t key_len, char *value, ui } } +/* +CHANGED in 2.0.7: wsgi_req is useless ! +*/ char *uwsgi_spool_request(struct wsgi_request *wsgi_req, char *buf, size_t len, char *body, size_t body_len) { struct timeval tv; static uint64_t internal_counter = 0; - int core_id = 0; int fd = -1; struct spooler_req sr; @@ -232,10 +234,6 @@ char *uwsgi_spool_request(struct wsgi_request *wsgi_req, char *buf, size_t len, } } - if (wsgi_req) { - core_id = wsgi_req->async_id; - } - // this lock is for threads, the pid value in filename will avoid multiprocess races uwsgi_lock(uspool->lock); @@ -260,7 +258,7 @@ char *uwsgi_spool_request(struct wsgi_request *wsgi_req, char *buf, size_t len, // no need to check for errors... (void) mkdir(filename, 0777); - ret = snprintf(filename, filename_len, "%s/%.*s/uwsgi_spoolfile_on_%s_%d_%llu_%d_%llu_%llu", uspool->dir, (int)sr.priority_len, sr.priority, uwsgi.hostname, (int) getpid(), (unsigned long long) internal_counter, core_id, + ret = snprintf(filename, filename_len, "%s/%.*s/uwsgi_spoolfile_on_%s_%d_%llu_%d_%llu_%llu", uspool->dir, (int)sr.priority_len, sr.priority, uwsgi.hostname, (int) getpid(), (unsigned long long) internal_counter, rand(), (unsigned long long) tv.tv_sec, (unsigned long long) tv.tv_usec); if (ret <= 0 || ret >=(int) filename_len) { uwsgi_log("[uwsgi-spooler] error generating spooler filename\n"); @@ -272,8 +270,8 @@ char *uwsgi_spool_request(struct wsgi_request *wsgi_req, char *buf, size_t len, else { filename_len = strlen(uspool->dir) + strlen(uwsgi.hostname) + 256; filename = uwsgi_malloc(filename_len); - int ret = snprintf(filename, filename_len, "%s/uwsgi_spoolfile_on_%s_%d_%llu_%d_%llu_%llu", uspool->dir, uwsgi.hostname, (int) getpid(), (unsigned long long) internal_counter, core_id, - (unsigned long long) tv.tv_sec, (unsigned long long) tv.tv_usec); + int ret = snprintf(filename, filename_len, "%s/uwsgi_spoolfile_on_%s_%d_%llu_%d_%llu_%llu", uspool->dir, uwsgi.hostname, (int) getpid(), (unsigned long long) internal_counter, + rand(), (unsigned long long) tv.tv_sec, (unsigned long long) tv.tv_usec); if (ret <= 0 || ret >= (int) filename_len) { uwsgi_log("[uwsgi-spooler] error generating spooler filename\n"); free(filename); diff --git a/plugins/psgi/uwsgi_plmodule.c b/plugins/psgi/uwsgi_plmodule.c index 8500e520..1622335d 100644 --- a/plugins/psgi/uwsgi_plmodule.c +++ b/plugins/psgi/uwsgi_plmodule.c @@ -946,7 +946,7 @@ XS(XS_spool) { } } - char *filename = uwsgi_spool_request(current_wsgi_req(), ub->buf, ub->pos, body, body_len); + char *filename = uwsgi_spool_request(NULL, ub->buf, ub->pos, body, body_len); uwsgi_buffer_destroy(ub); if (filename) { ST(0) = newSVpv(filename, strlen(filename)); diff --git a/plugins/python/uwsgi_pymodule.c b/plugins/python/uwsgi_pymodule.c index 25107e12..6acdec1f 100644 --- a/plugins/python/uwsgi_pymodule.c +++ b/plugins/python/uwsgi_pymodule.c @@ -1961,7 +1961,7 @@ PyObject *py_uwsgi_send_spool(PyObject * self, PyObject * args, PyObject *kw) { UWSGI_RELEASE_GIL // current_wsgi_req can be NULL, in such a case a non-thread-safe counter will be used - char *filename = uwsgi_spool_request(current_wsgi_req(), ub->buf, ub->pos, body, body_len); + char *filename = uwsgi_spool_request(NULL, ub->buf, ub->pos, body, body_len); uwsgi_buffer_destroy(ub); UWSGI_GET_GIL diff --git a/plugins/rack/rack_api.c b/plugins/rack/rack_api.c index 465860e0..befebebb 100644 --- a/plugins/rack/rack_api.c +++ b/plugins/rack/rack_api.c @@ -969,7 +969,6 @@ static int rack_uwsgi_build_spool(VALUE rbkey, VALUE rbval, VALUE argv) { static VALUE rack_uwsgi_send_spool(VALUE *class, VALUE args) { - struct wsgi_request *wsgi_req = current_wsgi_req(); char *body = NULL; size_t body_len= 0; @@ -991,7 +990,7 @@ static VALUE rack_uwsgi_send_spool(VALUE *class, VALUE args) { rb_hash_foreach(args, rack_uwsgi_build_spool, (VALUE) ub); - char *filename = uwsgi_spool_request(wsgi_req, ub->buf, ub->pos, body, body_len); + char *filename = uwsgi_spool_request(NULL, ub->buf, ub->pos, body, body_len); uwsgi_buffer_destroy(ub); diff --git a/plugins/spooler/spooler_plugin.c b/plugins/spooler/spooler_plugin.c index cab566fc..3caa2aac 100644 --- a/plugins/spooler/spooler_plugin.c +++ b/plugins/spooler/spooler_plugin.c @@ -23,7 +23,7 @@ int uwsgi_request_spooler(struct wsgi_request *wsgi_req) { return -1; } - char *filename = uwsgi_spool_request(wsgi_req, wsgi_req->buffer, wsgi_req->uh->pktsize, NULL, 0); + char *filename = uwsgi_spool_request(NULL, wsgi_req->buffer, wsgi_req->uh->pktsize, NULL, 0); uh.modifier1 = 255; uh.pktsize = 0; if (filename) {