> OK, after several days of investigation, it seems this problem probably > occurred because race condition between threads of the same workers, here > is my conclusion: > > "wsgi_req" which is a shared struct between threads of all the workers is > reset to zero in "uwsgi_destroy_request" or "uwsgi_close_request". > Unfortunately , in "uwsgi_destroy_request" & "uwsgi_close_request" , > pthread_setcancelstate is called before memset of wsgi_req, does this > implies that if an other thread calls pthread_cancel while reaching max > requests meanwhile, "wsgi_req" is vulnerable remains last value in the new > forked worker, since the new worker reusing shared memory of workers[i] > struct without zero-filled. > > Is there any chance to do with that?
Can you retry with latest 1.4 tree ? https://github.com/unbit/uwsgi/commits/uwsgi-1.4 The related fix is this one: https://github.com/unbit/uwsgi/commit/8f2202eab5fae002d689a62801efbd0e18853d43 should be enough to avoid the specific problem -- Roberto De Ioris http://unbit.it _______________________________________________ uWSGI mailing list [email protected] http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi
