update_and_save raises NoneType exception
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Heat |
Fix Released
|
Critical
|
Jason Dunsmore |
Bug Description
Fungi reported in the unit tests:
I seem to recall we had this problem at one point and it was fixed, but fungi is indicating it is happening 50-75% of the time in the unit tests.
2014-01-30 18:45:23.560 | Started by user anonymous
2014-01-30 18:45:23.562 | [EnvInject] - Loading node environment variables.
2014-01-30 18:45:26.835 | Building remotely on bare-precise-
2014-01-30 18:45:41.523 | [gate-heat-
2014-01-30 18:45:42.281 | + /usr/local/
2014-01-30 18:45:42.289 | Triggered by: https:/
2014-01-30 18:45:42.289 | + [[ ! -e .git ]]
2014-01-30 18:45:42.289 | + ls -a
2014-01-30 18:45:42.293 | .
2014-01-30 18:45:42.293 | ..
2014-01-30 18:45:42.294 | + rm -fr '.[^.]*' '*'
2014-01-30 18:45:42.297 | + '[' -d /opt/git/
2014-01-30 18:45:42.321 | + git clone file://
2014-01-30 18:45:42.328 | Cloning into '.'...
2014-01-30 18:45:44.301 | + git remote set-url origin git://git.
2014-01-30 18:45:44.305 | + git remote update
2014-01-30 18:45:44.311 | Fetching origin
2014-01-30 18:45:45.642 | From git://git.
2014-01-30 18:45:45.642 | ae02ce4..0fe6748 master -> origin/master
2014-01-30 18:45:45.642 | * [new branch] stable/grizzly -> origin/
2014-01-30 18:45:45.642 | * [new branch] stable/havana -> origin/
2014-01-30 18:45:45.645 | + git reset --hard
2014-01-30 18:45:45.777 | HEAD is now at ae02ce4 Merge "fix some flaws in heat documents"
2014-01-30 18:45:45.777 | + git clean -x -f -d -q
2014-01-30 18:45:45.786 | + '[' -z '' ']'
2014-01-30 18:45:45.787 | + git fetch http://
2014-01-30 18:45:47.619 | From http://
2014-01-30 18:45:47.619 | * branch refs/zuul/
2014-01-30 18:45:47.624 | + git checkout FETCH_HEAD
2014-01-30 18:45:47.644 | Note: checking out 'FETCH_HEAD'.
2014-01-30 18:45:47.644 |
2014-01-30 18:45:47.644 | You are in 'detached HEAD' state. You can look around, make experimental
2014-01-30 18:45:47.644 | changes and commit them, and you can discard any commits you make in this
2014-01-30 18:45:47.644 | state without impacting any branches by performing another checkout.
2014-01-30 18:45:47.644 |
2014-01-30 18:45:47.644 | If you want to create a new branch to retain commits you create, you may
2014-01-30 18:45:47.644 | do so (now or later) by using -b with the checkout command again. Example:
2014-01-30 18:45:47.644 |
2014-01-30 18:45:47.644 | git checkout -b new_branch_name
2014-01-30 18:45:47.644 |
2014-01-30 18:45:47.645 | HEAD is now at 91f5cec... serialize non-string nova metadata
2014-01-30 18:45:47.645 | + git reset --hard FETCH_HEAD
2014-01-30 18:45:47.667 | HEAD is now at 91f5cec serialize non-string nova metadata
2014-01-30 18:45:47.667 | + git clean -x -f -d -q
2014-01-30 18:45:47.676 | + '[' -f .gitmodules ']'
2014-01-30 18:45:48.167 | [gate-heat-
2014-01-30 18:45:48.180 | + /usr/local/
2014-01-30 18:45:48.186 | + version=27
2014-01-30 18:45:48.186 | + org=openstack
2014-01-30 18:45:48.186 | + project=heat
2014-01-30 18:45:48.186 | + source /usr/local/
2014-01-30 18:45:48.187 | + check_variable_
2014-01-30 18:45:48.187 | + version=27
2014-01-30 18:45:48.187 | + org=openstack
2014-01-30 18:45:48.187 | + project=heat
2014-01-30 18:45:48.188 | + filename=
2014-01-30 18:45:48.188 | + [[ -z 27 ]]
2014-01-30 18:45:48.188 | + [[ -z openstack ]]
2014-01-30 18:45:48.188 | + [[ -z heat ]]
2014-01-30 18:45:48.188 | + venv=py27
2014-01-30 18:45:48.188 | + export NOSE_WITH_XUNIT=1
2014-01-30 18:45:48.188 | + NOSE_WITH_XUNIT=1
2014-01-30 18:45:48.206 | + export NOSE_WITH_
2014-01-30 18:45:48.206 | + NOSE_WITH_
2014-01-30 18:45:48.206 | + export NOSE_HTML_
2014-01-30 18:45:48.206 | + NOSE_HTML_
2014-01-30 18:45:48.207 | ++ /bin/mktemp -d
2014-01-30 18:45:48.207 | + export TMPDIR=
2014-01-30 18:45:48.207 | + TMPDIR=
2014-01-30 18:45:48.207 | + trap 'rm -rf /tmp/tmp.
2014-01-30 18:45:48.207 | + /usr/local/
2014-01-30 18:45:48.214 | + sudo /usr/local/
2014-01-30 18:45:48.423 | + source /usr/local/
2014-01-30 18:45:48.423 | ++ org=openstack
2014-01-30 18:45:48.424 | ++ project=heat
2014-01-30 18:45:48.424 | ++ source /usr/local/
2014-01-30 18:45:48.424 | ++ check_variable_
2014-01-30 18:45:48.424 | ++ org=openstack
2014-01-30 18:45:48.424 | ++ project=heat
2014-01-30 18:45:48.424 | ++ filename=
2014-01-30 18:45:48.425 | ++ [[ -z openstack ]]
2014-01-30 18:45:48.425 | ++ [[ -z heat ]]
2014-01-30 18:45:48.425 | ++ rm -f /home/jenkins/
2014-01-30 18:45:48.426 | ++ mkdir -p /home/jenkins/.pip
2014-01-30 18:45:48.429 | ++ rm -f /home/jenkins/
2014-01-30 18:45:48.432 | ++ cat
2014-01-30 18:45:48.436 | ++ grep -x openstack/heat /opt/requiremen
2014-01-30 18:45:48.463 | openstack/heat
2014-01-30 18:45:48.463 | ++ export TOX_INDEX_URL=http://
2014-01-30 18:45:48.463 | ++ TOX_INDEX_URL=http://
2014-01-30 18:45:48.463 | ++ cat
2014-01-30 18:45:48.463 | ++ cat
2014-01-30 18:45:48.464 | + tox -epy27
2014-01-30 18:45:48.634 | py27 create: /home/jenkins/
2014-01-30 18:45:49.822 | py27 installdeps: -r/home/
2014-01-30 18:48:21.493 | py27 develop-inst: /home/jenkins/
2014-01-30 18:48:23.181 | py27 runtests: commands[0] | python setup.py testr --slowest --testr-args=
2014-01-30 18:48:23.609 | running testr
2014-01-30 18:48:27.142 | INFO [migrate.
2014-01-30 18:48:27.165 | INFO [migrate.
2014-01-30 18:48:27.169 | INFO [migrate.
2014-01-30 18:48:27.199 | INFO [migrate.
2014-01-30 18:48:27.204 | INFO [migrate.
2014-01-30 18:48:27.303 | INFO [migrate.
2014-01-30 18:48:27.305 | INFO [migrate.
2014-01-30 18:48:27.330 | INFO [migrate.
2014-01-30 18:48:27.342 | INFO [migrate.
2014-01-30 18:48:27.342 | INFO [migrate.
2014-01-30 18:48:27.353 | INFO [migrate.
2014-01-30 18:48:27.382 | INFO [migrate.
2014-01-30 18:48:27.382 | INFO [migrate.
2014-01-30 18:48:27.384 | INFO [migrate.
2014-01-30 18:48:27.421 | INFO [migrate.
2014-01-30 18:48:27.421 | INFO [migrate.
2014-01-30 18:48:27.423 | INFO [migrate.
2014-01-30 18:48:27.426 | INFO [migrate.
2014-01-30 18:48:27.434 | INFO [migrate.
2014-01-30 18:48:27.437 | INFO [migrate.
2014-01-30 18:48:27.440 | INFO [migrate.
2014-01-30 18:48:27.444 | INFO [migrate.
2014-01-30 18:48:27.447 | INFO [migrate.
2014-01-30 18:48:27.452 | INFO [migrate.
2014-01-30 18:48:27.461 | INFO [migrate.
2014-01-30 18:48:27.461 | INFO [migrate.
2014-01-30 18:48:27.461 | INFO [migrate.
2014-01-30 18:48:27.463 | INFO [migrate.
2014-01-30 18:48:27.466 | INFO [migrate.
2014-01-30 18:48:27.474 | INFO [migrate.
2014-01-30 18:48:27.477 | INFO [migrate.
2014-01-30 18:48:27.491 | INFO [migrate.
2014-01-30 18:48:27.507 | INFO [migrate.
2014-01-30 18:48:27.514 | INFO [migrate.
2014-01-30 18:48:27.591 | INFO [migrate.
2014-01-30 18:48:27.606 | INFO [migrate.
2014-01-30 18:48:27.611 | INFO [migrate.
2014-01-30 18:48:27.630 | INFO [migrate.
2014-01-30 18:48:28.617 | Traceback (most recent call last):
2014-01-30 18:48:28.617 | File "/home/
2014-01-30 18:48:28.617 | timer()
2014-01-30 18:48:28.618 | File "/home/
2014-01-30 18:48:28.618 | cb(*args, **kw)
2014-01-30 18:48:28.656 | File "/home/
2014-01-30 18:48:28.657 | result = function(*args, **kwargs)
2014-01-30 18:48:28.657 | File "heat/engine/
2014-01-30 18:48:28.657 | stack.create()
2014-01-30 18:48:28.658 | File "heat/engine/
2014-01-30 18:48:28.658 | creator(
2014-01-30 18:48:28.658 | File "heat/engine/
2014-01-30 18:48:28.658 | self.start(
2014-01-30 18:48:28.659 | File "heat/engine/
2014-01-30 18:48:28.659 | self.step()
2014-01-30 18:48:28.659 | File "heat/engine/
2014-01-30 18:48:28.659 | next(self._runner)
2014-01-30 18:48:28.659 | File "heat/engine/
2014-01-30 18:48:28.660 | subtask = next(parent)
2014-01-30 18:48:28.660 | File "heat/engine/
2014-01-30 18:48:28.660 | 'Stack %s started' % action)
2014-01-30 18:48:28.660 | File "heat/engine/
2014-01-30 18:48:28.661 | stack.update_
2014-01-30 18:48:28.661 | AttributeError: 'NoneType' object has no attribute 'update_and_save'
2014-01-30 18:48:28.661 | Traceback (most recent call last):
2014-01-30 18:48:28.661 | File "/home/
2014-01-30 18:48:28.662 | timer()
2014-01-30 18:48:28.662 | File "/home/
2014-01-30 18:48:28.662 | cb(*args, **kw)
2014-01-30 18:48:28.663 | File "/home/
2014-01-30 18:48:28.663 | result = function(*args, **kwargs)
2014-01-30 18:48:28.663 | File "heat/engine/
2014-01-30 18:48:28.664 | self.state_
2014-01-30 18:48:28.664 | File "heat/engine/
2014-01-30 18:48:28.664 | stack.update_
2014-01-30 18:48:28.664 | AttributeError: 'NoneType' object has no attribute 'update_and_save'
2014-01-30 18:48:35.343 | INFO [heat.engine.
2014-01-30 18:48:35.344 | INFO [heat.engine.
2014-01-30 18:48:35.344 | INFO [heat.engine.
2014-01-30 18:48:35.354 | INFO [heat.engine.
2014-01-30 18:48:35.383 | INFO [heat.engine.
2014-01-30 18:48:35.387 | INFO [heat.engine.
2014-01-30 18:48:49.660 | running=
2014-01-30 18:48:49.660 | ${PYTHON:-python} -m subunit.run discover -s . --list
2014-01-30 18:48:49.660 | ${PYTHON:-python} -m subunit.run discover -s contrib --list
2014-01-30 18:48:49.660 | running=
2014-01-30 18:48:49.660 | ${PYTHON:-python} -m subunit.run discover -s . --load-list /tmp/tmp.
2014-01-30 18:48:49.660 | ${PYTHON:-python} -m subunit.run discover -s contrib --load-list /tmp/tmp.
2014-01-30 18:48:49.661 | running=
2014-01-30 18:48:49.661 | ${PYTHON:-python} -m subunit.run discover -s . --load-list /tmp/tmp.
2014-01-30 18:48:49.661 | ${PYTHON:-python} -m subunit.run discover -s contrib --load-list /tmp/tmp.
2014-01-30 18:48:49.661 | running=
2014-01-30 18:48:49.661 | ${PYTHON:-python} -m subunit.run discover -s . --load-list /tmp/tmp.
2014-01-30 18:48:49.661 | ${PYTHON:-python} -m subunit.run discover -s contrib --load-list /tmp/tmp.
2014-01-30 18:48:49.661 | running=
2014-01-30 18:48:49.661 | ${PYTHON:-python} -m subunit.run discover -s . --load-list /tmp/tmp.
2014-01-30 18:48:49.661 | ${PYTHON:-python} -m subunit.run discover -s contrib --load-list /tmp/tmp.
2014-01-30 18:48:49.661 | running=
2014-01-30 18:48:49.661 | ${PYTHON:-python} -m subunit.run discover -s . --load-list /tmp/tmp.
2014-01-30 18:48:49.661 | ${PYTHON:-python} -m subunit.run discover -s contrib --load-list /tmp/tmp.
2014-01-30 18:48:49.662 | running=
2014-01-30 18:48:49.662 | ${PYTHON:-python} -m subunit.run discover -s . --load-list /tmp/tmp.
2014-01-30 18:48:49.662 | ${PYTHON:-python} -m subunit.run discover -s contrib --load-list /tmp/tmp.
2014-01-30 18:48:49.662 | running=
2014-01-30 18:48:49.662 | ${PYTHON:-python} -m subunit.run discover -s . --load-list /tmp/tmp.
2014-01-30 18:48:49.662 | ${PYTHON:-python} -m subunit.run discover -s contrib --load-list /tmp/tmp.
2014-01-30 18:48:49.662 | running=
2014-01-30 18:48:49.662 | ${PYTHON:-python} -m subunit.run discover -s . --load-list /tmp/tmp.
2014-01-30 18:48:49.662 | ${PYTHON:-python} -m subunit.run discover -s contrib --load-list /tmp/tmp.
2014-01-30 18:48:49.662 | Ran 2152 tests in 19.275s
2014-01-30 18:48:49.663 | PASSED (id=0)
2014-01-30 18:48:49.663 | Slowest Tests
2014-01-30 18:48:49.663 | Test id Runtime (s)
2014-01-30 18:48:49.663 | -------
2014-01-30 18:48:49.663 | heat.tests.
Changed in heat: | |
assignee: | nobody → Jason Dunsmore (jasondunsmore) |
Changed in heat: | |
milestone: | none → icehouse-3 |
status: | Fix Committed → Fix Released |
Changed in heat: | |
milestone: | icehouse-3 → 2014.1 |
Marking as Critical, if it is in fact happening often in the unit tests it will be a problem for the check queue and the gate.