Comment 7 for bug 1508424

Mehdi Abaakouk (sileht) wrote :

I have checked the backtrace and everything looks good authenticated=False and the loop doesn't occurs.

I have found something new, the issue occurs with swift, when at least two concurrents requests are done.

It seems Swift doesn't monkeypatch the threading module. Only socket is monkey patched.
https://github.com/openstack/swift/blob/master/swift/common/wsgi.py#L410

If that true:
* First request, get the lock and do socket IO to retrieve a token -> greenlet switch occurs
* Second request, try to get the lock and hang instead of generate a greenlet switch, because this is not a greenlock.

I wonder how we are supposed to fix this ? Swift should patch threading I guess.