← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1701129] [NEW] Functional tests fail intermittently with Bad Request from placement

 

Public bug reported:

Noticed this on a test run on an unrelated patch I uploaded, functional
test failure with trace:

2017-06-28 22:16:50,659 INFO [nova.api.openstack.placement.requestlog] 127.0.0.1 "PUT /allocations/f0bd6e91-2486-418c-bea2-bb2392568171" status: 400 len: 2220 microversion: 1.0
2017-06-28 22:16:50,659 INFO [nova.placement.wsgi.server] 127.0.0.1 "PUT /allocations/f0bd6e91-2486-418c-bea2-bb2392568171 HTTP/1.1" status: 400 len: 2504 time: 0.0040810
2017-06-28 22:16:50,660 WARNING [nova.scheduler.client.report] Unable to submit allocation for instance f0bd6e91-2486-418c-bea2-bb2392568171 (400 <html>
 <head>
  <title>400 Bad Request</title>
 </head>
 <body>
  <h1>400 Bad Request</h1>
  The server could not comply with the request since it is either malformed or otherwise incorrect.<br /><br />
JSON does not validate: Additional properties are not allowed (u'project_id', u'user_id' were unexpected)

Failed validating 'additionalProperties' in schema:
    {'additionalProperties': False,
     'properties': {'allocations': {'items': {'additionalProperties': False,
                                              'properties': {'resource_provider': {'additionalProperties': False,
                                                                                   'properties': {'uuid': {'format': 'uuid',
                                                                                                           'type': 'string'}},
                                                                                   'required': ['uuid'],
                                                                                   'type': 'object'},
                                                             'resources': {'additionalProperties': False,
                                                                           'patternProperties': {'^[0-9A-Z_]+$': {'minimum': 1,
                                                                                                                  'type': 'integer'}},
                                                                           'type': 'object'}},
                                              'required': ['resource_provider',
                                                           'resources'],
                                              'type': 'object'},
                                    'type': 'array'}},
     'required': ['allocations'],
     'type': 'object'}

On instance:
    {u'allocations': [{u'resource_provider': {u'uuid': u'29000c79-94bf-4326-9630-281d2ef67071'},
                       u'resources': {u'DISK_GB': 20,
                                      u'MEMORY_MB': 2048,
                                      u'VCPU': 1}}],
     u'project_id': u'6f70656e737461636b20342065766572',
     u'user_id': u'fake'}


 </body>
</html>)

The problem is that microversion 1.0 is being requested with parameters
only available in microversion >= 1.8. This is because the
PlacementFixture's _fake_put() method ignores the version keyword
argument and doesn't pass it along to placement.

** Affects: nova
     Importance: Low
     Assignee: melanie witt (melwitt)
         Status: Triaged


** Tags: placement testing

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1701129

Title:
  Functional tests fail intermittently with Bad Request from placement

Status in OpenStack Compute (nova):
  Triaged

Bug description:
  Noticed this on a test run on an unrelated patch I uploaded,
  functional test failure with trace:

  2017-06-28 22:16:50,659 INFO [nova.api.openstack.placement.requestlog] 127.0.0.1 "PUT /allocations/f0bd6e91-2486-418c-bea2-bb2392568171" status: 400 len: 2220 microversion: 1.0
  2017-06-28 22:16:50,659 INFO [nova.placement.wsgi.server] 127.0.0.1 "PUT /allocations/f0bd6e91-2486-418c-bea2-bb2392568171 HTTP/1.1" status: 400 len: 2504 time: 0.0040810
  2017-06-28 22:16:50,660 WARNING [nova.scheduler.client.report] Unable to submit allocation for instance f0bd6e91-2486-418c-bea2-bb2392568171 (400 <html>
   <head>
    <title>400 Bad Request</title>
   </head>
   <body>
    <h1>400 Bad Request</h1>
    The server could not comply with the request since it is either malformed or otherwise incorrect.<br /><br />
  JSON does not validate: Additional properties are not allowed (u'project_id', u'user_id' were unexpected)

  Failed validating 'additionalProperties' in schema:
      {'additionalProperties': False,
       'properties': {'allocations': {'items': {'additionalProperties': False,
                                                'properties': {'resource_provider': {'additionalProperties': False,
                                                                                     'properties': {'uuid': {'format': 'uuid',
                                                                                                             'type': 'string'}},
                                                                                     'required': ['uuid'],
                                                                                     'type': 'object'},
                                                               'resources': {'additionalProperties': False,
                                                                             'patternProperties': {'^[0-9A-Z_]+$': {'minimum': 1,
                                                                                                                    'type': 'integer'}},
                                                                             'type': 'object'}},
                                                'required': ['resource_provider',
                                                             'resources'],
                                                'type': 'object'},
                                      'type': 'array'}},
       'required': ['allocations'],
       'type': 'object'}

  On instance:
      {u'allocations': [{u'resource_provider': {u'uuid': u'29000c79-94bf-4326-9630-281d2ef67071'},
                         u'resources': {u'DISK_GB': 20,
                                        u'MEMORY_MB': 2048,
                                        u'VCPU': 1}}],
       u'project_id': u'6f70656e737461636b20342065766572',
       u'user_id': u'fake'}

  
   </body>
  </html>)

  The problem is that microversion 1.0 is being requested with
  parameters only available in microversion >= 1.8. This is because the
  PlacementFixture's _fake_put() method ignores the version keyword
  argument and doesn't pass it along to placement.

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


Follow ups