← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2028724] [NEW] neutron should forbid configuring agent_down_time that is known to crash due to CPython epoll limitation

 

Public bug reported:

This bug is created to improve neutron to not allow configuring
agent_down_time to values that are known to misbehave because of
limitations of CPython C-types interface that doesn't seem to support
any values larger than (2^32 / 2 - 1) [in miliseconds] for green thread
waiting.

We can either truncate or error on invalid value (the former is probably
preferable).

Also, we may want to consider patching oslo.service (?) to apply similar
truncation for values passed through loopingcall module. If the library
is patched to do the truncation, then neutron enforcement won't be
needed.

To reproduce, set agent_down_time to a number larger than (2^32 / 2 - 1)/1000 and check the neutron server log for an error like:
```
05:28:58.327 39 ERROR oslo_service.threadgroup [req-39043291-6236-4d9b-a1e5-45b6cfc7eb2d - - - - -] Error waiting on thread.: OverflowError: timeout is too large
```

This bug is applicable to all current versions of Neutron and can be
reproduced on master devstack

** Affects: neutron
     Importance: Undecided
     Assignee: Lewis Denny (lewisdenny)
         Status: New

** Affects: oslo.service
     Importance: Undecided
         Status: New

** Changed in: neutron
     Assignee: (unassigned) => Lewis Denny (lewisdenny)

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

Title:
  neutron should forbid configuring agent_down_time that is known to
  crash due to CPython epoll limitation

Status in neutron:
  New
Status in oslo.service:
  New

Bug description:
  This bug is created to improve neutron to not allow configuring
  agent_down_time to values that are known to misbehave because of
  limitations of CPython C-types interface that doesn't seem to support
  any values larger than (2^32 / 2 - 1) [in miliseconds] for green
  thread waiting.

  We can either truncate or error on invalid value (the former is
  probably preferable).

  Also, we may want to consider patching oslo.service (?) to apply
  similar truncation for values passed through loopingcall module. If
  the library is patched to do the truncation, then neutron enforcement
  won't be needed.

  To reproduce, set agent_down_time to a number larger than (2^32 / 2 - 1)/1000 and check the neutron server log for an error like:
  ```
  05:28:58.327 39 ERROR oslo_service.threadgroup [req-39043291-6236-4d9b-a1e5-45b6cfc7eb2d - - - - -] Error waiting on thread.: OverflowError: timeout is too large
  ```

  This bug is applicable to all current versions of Neutron and can be
  reproduced on master devstack

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



Follow ups