Comment 6 for bug 1289696

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.openstack.org/83080
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=3ec30fdb4b175f2dc65261f672372bdb44dce3f9
Submitter: Jenkins
Branch: master

commit 3ec30fdb4b175f2dc65261f672372bdb44dce3f9
Author: Akihiro Motoki <email address hidden>
Date: Wed Mar 26 23:28:49 2014 +0900

    Import request_id middleware bug fix from oslo

    There is a bug in request-id middleware that a subsequent API request will
    overwrite a request-id of a previous request when multiple API calls are
    processed in parallel in request_id middleware.
    This commit imports the fix in oslo.

    cherry-picked from oslo-incubator d7bd9dc37ac3d6bc171cd2e290c772633ad20a32
    Closes-Bug: #1289696
    ----
    Don't store the request ID value in middleware as class variable

    The original version of the request_id middleware generates a request ID during
    process_request() and stores the value in a variable, so it can be attached as
    header in process_request(). This is pretty dangerous, since subsequent
    requests will overwrite this value, and the wrong request ID may be attached to
    some responses. This is particularly apparent when requests arrive in parallel.

    This change replaces process_request() and process_response() with an override
    of __call__(). This allows the generated req_id to be used in the response
    header without needing to save it as a class-level variable.
    ----

    Change-Id: Ic20047f604394f1ce4900c3b6a00595223804cba