State computation incorrect
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
congress |
Fix Released
|
Critical
|
Rui Chen | ||
Liberty |
Fix Released
|
Critical
|
Rui Chen |
Bug Description
It seems there's a problem with how we compute the change in state after pulling the current state from external services and before we send the delta to the policy engine. Below is a trace showing that one server has status PAUSED; then the next poll it has status ACTIVE, but there is an empty delta sent to the policy engine.
***** Poll 1: Notice alpha: PAUSED, so raw data is giving PAUSED. Also notice that the data set that gets published has PAUSED, as we would expect. *****
2015-09-23 20:06:08.065 INFO congress.
2015-09-23 20:06:08.283 INFO congress.
...
2015-09-23 20:06:08.533 DEBUG congress.
2015-09-23 20:06:08.534 DEBUG congress.
2015-09-23 20:06:08.536 DEBUG congress.
2015-09-23 20:06:08.536 DEBUG congress.
2015-09-23 20:06:08.539 INFO congress.
...
***** Poll 2: Notice alpha: ACTIVE, so the raw data is saying ACTIVE, but the data set that gets published still has PAUSED, where it should have ACTIVE. *****
2015-09-23 20:06:18.547 INFO congress.
2015-09-23 20:06:18.739 INFO congress.
...
2015-09-23 20:06:19.002 DEBUG congress.
2015-09-23 20:06:19.002 DEBUG congress.
2015-09-23 20:06:19.002 DEBUG congress.
2015-09-23 20:06:19.003 DEBUG congress.
Changed in congress: | |
status: | Fix Committed → Fix Released |
Changed in congress: | |
status: | Fix Released → Fix Committed |
description: | updated |
no longer affects: | congress/liberty |
Changed in congress: | |
milestone: | none → liberty-rc2 |
status: | Fix Committed → Fix Released |
The problem is that the nova datasource driver takes the raw data and computes the wrong tuples. Since the structure of the tuples looks okay, I don't think it's a problem with the algorithm that converts JSON-like objects into tuples. I'd say there's a bug in update_ state_on_ changed code in datasource_utils.
I tried to look through that code, but I don't quite understand what's happening.