Reviewed:  https://review.opendev.org/c/openstack/neutron/+/940679
Committed: 
https://opendev.org/openstack/neutron/commit/ce140980107b77367b1fe755c04aa1cb5b56eeec
Submitter: "Zuul (22348)"
Branch:    master

commit ce140980107b77367b1fe755c04aa1cb5b56eeec
Author: Rodolfo Alonso Hernandez <ralon...@redhat.com>
Date:   Tue Feb 4 08:35:21 2025 +0000

    [OVN] Fix metadata server when body response is empty
    
    HAProxy is expecting two "\r\n" blocks between the headers and the body.
    By default, ``webob`` is adding this block twice in [1] when the
    response is formated as an string. However, this is not done when the
    body is empty.
    
    This patch is manually adding these characters at the end of the message
    when the response body length is empty.
    
    The change in the socket server handler was done in [2]. This new class
    does not uses the decorator ``@webob.dec.wsgify`` but needs to format
    the response properly and write it in the UNIX socket.
    
    This patch is also changing how the crafted response ``webob.Response``
    is built. The only header copied is the content type. The content
    length will be calculated from the body size.
    
    Expected request and response (captured in the socket file used to
    communicate to HAProxy) with the implementation before [2]; notice the
    two "0x0d 0x0a" characters at the end:
    
    > 2025/02/04 07:34:43.709708  length=211 from=0 to=210
     47 45 54 20 2f 6c 61 74 65 73 74 2f 6d 65 74 61  GET /latest/meta
     2d 64 61 74 61 2f 70 75 62 6c 69 63 2d 69 70 76  -data/public-ipv
     34 20 48 54 54 50 2f 31 2e 31 0d 0a              4 HTTP/1.1..
     68 6f 73 74 3a 20 31 36 39 2e 32 35 34 2e 31 36  host: 169.254.16
     39 2e 32 35 34 0d 0a                             9.254..
     75 73 65 72 2d 61 67 65 6e 74 3a 20 63 75 72 6c  user-agent: curl
     2f 37 2e 38 34 2e 30 0d 0a                       /7.84.0..
     61 63 63 65 70 74 3a 20 2a 2f 2a 0d 0a           accept: */*..
     78 2d 6f 76 6e 2d 6e 65 74 77 6f 72 6b 2d 69 64  x-ovn-network-id
     3a 20 66 33 64 63 38 31 31 32 2d 32 37 33 65 2d  : f3dc8112-273e-
     34 36 35 33 2d 61 66 33 63 2d 36 30 36 39 33 33  4653-af3c-606933
     30 61 64 33 35 30 0d 0a                          0ad350..
     78 2d 66 6f 72 77 61 72 64 65 64 2d 66 6f 72 3a  x-forwarded-for:
     20 31 30 2e 30 2e 31 30 2e 35 32 0d 0a            10.0.10.52..
     63 6f 6e 6e 65 63 74 69 6f 6e 3a 20 63 6c 6f 73  connection: clos
     65 0d 0a                                         e..
     0d 0a                                            ..
    --
    < 2025/02/04 07:34:49.766945  length=135 from=0 to=134
     48 54 54 50 2f 31 2e 31 20 32 30 30 20 4f 4b 0d  HTTP/1.1 200 OK.
     0a                                               .
     43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 20 74 65  Content-Type: te
     78 74 2f 70 6c 61 69 6e 3b 20 63 68 61 72 73 65  xt/plain; charse
     74 3d 55 54 46 2d 38 0d 0a                       t=UTF-8..
     43 6f 6e 74 65 6e 74 2d 4c 65 6e 67 74 68 3a 20  Content-Length:
     30 0d 0a                                         0..
     44 61 74 65 3a 20 54 75 65 2c 20 30 34 20 46 65  Date: Tue, 04 Fe
     62 20 32 30 32 35 20 30 37 3a 33 34 3a 34 39 20  b 2025 07:34:49
     47 4d 54 0d 0a                                   GMT..
     43 6f 6e 6e 65 63 74 69 6f 6e 3a 20 63 6c 6f 73  Connection: clos
     65 0d 0a                                         e..
     0d 0a                                            ..
    --
    
    
[1]https://github.com/faucetsdn/python3-webob/blob/ac5a25e9e962eeb20a55e44c93f60a154e35d8a8/src/webob/response.py#L402-L404
    [2]https://review.opendev.org/c/openstack/neutron/+/938393
    
    Closes-Bug: #2097273
    Closes-Bug: #2097431
    Change-Id: I58d2fd95ae983ee4b80d751ba626c6aa3f20eedf


** Changed in: neutron
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/2097273

Title:
  [OVN] Neutron OVN metadata agent broken

Status in neutron:
  Fix Released

Bug description:
  Most probably since [1].

  Examples:
  * 
https://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_6cd/940257/12/check/neutron-ovn-tempest-ipv6-only-ovs-release-wsgi-4/6cd8ae9/testr_results.html
  * 
https://e9735a474423628e5e86-f0a4796d0457227c96c5ba2ee4b64509.ssl.cf5.rackcdn.com/940257/12/check/neutron-ovn-tempest-ipv6-only-ovs-release-wsgi-11/2850d93/testr_results.html
  * 
https://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_015/940257/12/check/neutron-ovn-tempest-ipv6-only-ovs-release-wsgi-12/015b050/testr_results.html

  [1]https://review.opendev.org/c/openstack/neutron/+/938393

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/2097273/+subscriptions


-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to