[openstack-dev] [Cinder] Getting `ValueError: Field `volume_id' cannot be None`
Deepak Shetty
dpkshetty at gmail.com
Thu Jun 4 08:36:38 UTC 2015
I was able to narrow down to the scenario where it fails only when i do:
./run_tests.sh -N cinder.tests.unit.test_remotefs
cinder.tests.unit.test_volume.VolumeTestCase
and fails with:
{0}
cinder.tests.unit.test_volume.VolumeTestCase.test_can_delete_errored_snapshot
[0.507361s] ... FAILED
Captured traceback:
~~~~~~~~~~~~~~~~~~~
Traceback (most recent call last):
File "cinder/tests/unit/test_volume.py", line 3029, in
test_can_delete_errored_snapshot
snapshot_obj = objects.Snapshot.get_by_id(self.context, snapshot_id)
File
"/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line 169,
in wrapper
result = fn(cls, context, *args, **kwargs)
File "cinder/objects/snapshot.py", line 130, in get_by_id
expected_attrs=['metadata'])
File "cinder/objects/snapshot.py", line 112, in _from_db_object
snapshot[name] = value
File
"/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line 691,
in __setitem__
setattr(self, name, value)
File
"/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line 70,
in setter
field_value = field.coerce(self, name, value)
File
"/usr/lib/python2.7/site-packages/oslo_versionedobjects/fields.py", line
183, in coerce
return self._null(obj, attr)
File
"/usr/lib/python2.7/site-packages/oslo_versionedobjects/fields.py", line
161, in _null
raise ValueError(_("Field `%s' cannot be None") % attr)
ValueError: Field `volume_id' cannot be None
Both the testsuites run fine when i run them individually, as in the below
is success:
./run_tests.sh -N cinder.tests.unit.test_remotefs - no errors
./run_tests.sh -N cinder.tests.unit.test_volume.VolumeTestCase - no errors
So i modified my patch @ https://review.openstack.org/#/c/172808/ (Patch
set 6) and
removed all testcase i added in test_remotefs.py except one, so that we
have lesser code to debug/deal with!
See
https://review.openstack.org/#/c/172808/6/cinder/tests/unit/test_remotefs.py
Now when i disable test_create_snapshot_online_success then running both
the suites work,
but when i enable test_create_snapshot_online_success then it fails as
above.
I am unable to figure whats the connection between
test_create_snapshot_online_success
in test_remotefs.py
and VolumeTestCase.test_can_delete_errored_snapshot in test_volume.py
failure
Can someone help here ?
thanx,
deepak
On Thu, Jun 4, 2015 at 1:37 PM, Deepak Shetty <dpkshetty at gmail.com> wrote:
> Hi Thang,
> Since you are working on Snapshot Objects, any idea on why the testcase
> when run all by itself, works, but when run as part of the overall suite,
> fails ?
> This seems to be related to the Snapshot Objects, hence Ccing you.
>
> On Wed, Jun 3, 2015 at 9:54 PM, Deepak Shetty <dpkshetty at gmail.com> wrote:
>
>> Hi All,
>> I am hitting a strange issue when running Cinder unit tests against my
>> patch @
>> https://review.openstack.org/#/c/172808/5
>>
>> I have spent 1 day and haven't been successfull at figuring how/why my
>> patch is causing it!
>>
>> All tests failing are part of VolumeTestCase suite and from the error
>> (see below) it seems
>> the Snapshot Object is complaining that 'volume_id' field is null (while
>> it shouldn't be)
>>
>> An example error from the associated Jenkins run can be seen @
>>
>> http://logs.openstack.org/08/172808/5/check/gate-cinder-python27/0abd15e/console.html.gz#_2015-05-22_13_28_47_140
>>
>> I am seeing a total of 21 such errors.
>>
>> Its strange because, when I try to reproduce it locally in my devstack
>> env, I see the below:
>>
>> 1) When i just run: ./run_tests.sh -N cinder.tests.unit.test_volume.
>> VolumeTestCase
>> all testcases pass
>>
>> 2) When i run 1 individual testcase: ./run_tests.sh -N
>> cinder.tests.unit.test_volume.VolumeTestCase.test_delete_busy_snapshot
>> that passes too
>>
>> 3) When i run : ./run_tests.sh -N
>> I see 21 tests failing and all are failing with error similar to the below
>>
>> {0} cinder.tests.unit.test_volume.VolumeTestCase.test_delete_busy_snapshot
>> [0.537366s] ... FAILED
>>
>> Captured traceback:
>> ~~~~~~~~~~~~~~~~~~~
>> Traceback (most recent call last):
>> File "cinder/tests/unit/test_volume.py", line 3219, in
>> test_delete_busy_snapshot
>> snapshot_obj = objects.Snapshot.get_by_id(self.context,
>> snapshot_id)
>> File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py",
>> line 163, in wrapper
>> result = fn(cls, context, *args, **kwargs)
>> File "cinder/objects/snapshot.py", line 130, in get_by_id
>> expected_attrs=['metadata'])
>> File "cinder/objects/snapshot.py", line 112, in _from_db_object
>> snapshot[name] = value
>> File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py",
>> line 675, in __setitem__
>> setattr(self, name, value)
>> File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py",
>> line 70, in setter
>> field_value = field.coerce(self, name, value)
>> File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/fields.py",
>> line 182, in coerce
>> return self._null(obj, attr)
>> File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/fields.py",
>> line 160, in _null
>> raise ValueError(_("Field `%s' cannot be None") % attr)
>> ValueError: Field `volume_id' cannot be None
>>
>> Any suggestions / thoughts on why this could be happening ?
>>
>> thanx,
>> deepak
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150604/d35b158b/attachment.html>
More information about the OpenStack-dev
mailing list