-
Notifications
You must be signed in to change notification settings - Fork 105
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integrity of conn->msg_queue may be compromised #184
Comments
keshonok
added a commit
that referenced
this issue
Sep 1, 2015
conn->msg_queue is used for keeping requests until paired responses are received. Requests are inserted into it as frequently as they are removed from it, so a plain spinlock is used. Also, special care is taken to not insert requests into a queue on a connection that is no longer active.
keshonok
added a commit
that referenced
this issue
Sep 7, 2015
keshonok
added a commit
that referenced
this issue
Sep 8, 2015
conn->msg_queue is used for keeping requests until paired responses are received. Requests are inserted into it as frequently as they are removed from it, so a plain spinlock is used.
keshonok
added a commit
that referenced
this issue
Sep 8, 2015
conn->msg_queue is used for keeping requests until paired responses are received. Requests are inserted into it as frequently as they are removed from it, so a plain spinlock is used.
keshonok
added a commit
that referenced
this issue
Sep 8, 2015
Synchronize access to conn->msg_queue. (#184)
Fixed via 7047279. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
For caching purposes, HTTP requests that are sent out to a back end server are kept in a list until a matching response comes. The list
conn->msg_queue
is maintained for each connection to back end servers.These requests may come on different CPU, yet they may be scheduled to go out on the same connection. That means these requests may be inserted into the list in parallel. As responses are received, matching requests are removed from the list, also in parallel with possible inserts.
Right now access to the list is not serialized, and so the integrity of the list can be compromised. All access to the list must be serialized.
The text was updated successfully, but these errors were encountered: