notifier endless loops in is_primitive
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Medium
|
Russell Bryant |
Bug Description
The recent change for rpc connection pool stuff (https:/
The notifier payload includes the 'context' used for the manager call. Unfortunately this is typically an RpcContext which now includes the rpc connection_pool instance.
Debug output:
working on {'connection_cls': <class 'nova.rpc.
This is the connection pool. unfortunately 'deque' has a list of connections... and kombu's Connection class has an attribute 'consumer_num' which is: itertools.count(). When to_primitive() reaches this.... it spins forever iterating on it.
I think there are multiple problems here.
1) to_primitive tries to recurse only so many levels... and there are a number of recursive calls that do not increase the 'level'.
2) We probably shouldn't store the connection_pool in the rpc context.
Changed in nova: | |
status: | Fix Committed → Fix Released |
Changed in nova: | |
milestone: | essex-4 → 2012.1 |
Since I introduced the bug, I'll assign this to myself and work on it first thing this week.