Tests fail on 32bit machines (_get_hash_str is platform dependent)

Bug #1050359 reported by Mate Lakat on 2012-09-13
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Cinder
Medium
Ben Swartzlander
Folsom
Medium
Unassigned
OpenStack Compute (nova)
Medium
Ben Swartzlander
Folsom
Medium
Chuck Short
nova (Ubuntu)
Undecided
Unassigned
Quantal
Undecided
Unassigned

Bug Description

Running the nova tests, 3 tests failed on my system, due to the fact, that My machine is running a 32 bit operating system:

======================================================================
FAIL: _get_hash_str should calculation correct value
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/matel/nova/nova/tests/test_nfs.py", line 216, in test_get_hash_str
    drv._get_hash_str(self.TEST_NFS_EXPORT1))
AssertionError: '12118957640568004265' != '18446744073140166313'
    "'12118957640568004265' != '18446744073140166313'" = '%s != %s' % (safe_repr('12118957640568004265'), safe_repr('18446744073140166313'))
    "'12118957640568004265' != '18446744073140166313'" = self._formatMessage("'12118957640568004265' != '18446744073140166313'", "'12118957640568004265' != '18446744073140166313'")
>> raise self.failureException("'12118957640568004265' != '18446744073140166313'")

======================================================================
FAIL: _get_mount_point_for_share should calculate correct value
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/matel/nova/nova/tests/test_nfs.py", line 225, in test_get_mount_point_for_share
    drv._get_mount_point_for_share(self.TEST_NFS_EXPORT1))
AssertionError: '/mnt/test/12118957640568004265' != '/mnt/test/18446744073140166313'
    "'/mnt/test/12118957640568004265' != '/mnt/test/18446744073140166313'" = '%s != %s' % (safe_repr('/mnt/test/12118957640568004265'), safe_repr('/mnt/test/18446744073140166313'))
    "'/mnt/test/12118957640568004265' != '/mnt/test/18446744073140166313'" = self._formatMessage("'/mnt/test/12118957640568004265' != '/mnt/test/18446744073140166313'", "'/mnt/test/12118957640568004265' != '/mnt/test/18446744073140166313'")
>> raise self.failureException("'/mnt/test/12118957640568004265' != '/mnt/test/18446744073140166313'")

======================================================================
FAIL: local_path common use case
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/matel/nova/nova/tests/test_nfs.py", line 113, in test_local_path
    drv.local_path(volume))
AssertionError: '/mnt/test/12118957640568004265/volume-123' != '/mnt/test/18446744073140166313/volume-123'
    "'/mnt/test/12118957640568004265/volume-123' != '/mnt/test/18446744073140166313/volume-123'" = '%s != %s' % (safe_repr('/mnt/test/12118957640568004265/volume-123'), safe_repr('/mnt/test/18446744073140166313/volume-123'))
    "'/mnt/test/12118957640568004265/volume-123' != '/mnt/test/18446744073140166313/volume-123'" = self._formatMessage("'/mnt/test/12118957640568004265/volume-123' != '/mnt/test/18446744073140166313/volume-123'", "'/mnt/test/12118957640568004265/volume-123' != '/mnt/test/18446744073140166313/volume-123'")
>> raise self.failureException("'/mnt/test/12118957640568004265/volume-123' != '/mnt/test/18446744073140166313/volume-123'")

----------------------------------------------------------------------

See my inline comments here:
https://github.com/openstack/nova/commit/772c5d47d5bdffcd4ff8e09f4116d22568bf6eb9#L3R215

Mate Lakat (mate-lakat) wrote :

On a 32 bit system:
hash('nfs-host1:/export')
-569385303

On a 64 bit (thanks, KR):
hash('nfs-host1:/export')
-6327786433141547351

Thierry Carrez (ttx) on 2012-09-13
summary: - _get_hash_str is platform dependent
+ Tests fail on 32bit machines (_get_hash_str is platform dependent)
Changed in nova:
importance: Undecided → Medium
status: New → Confirmed
Changed in cinder:
assignee: nobody → Ben Swartzlander (bswartz)
Changed in nova:
assignee: nobody → Ben Swartzlander (bswartz)
Changed in cinder:
status: New → Confirmed
importance: Undecided → Medium

Fix proposed to branch: master
Review: https://review.openstack.org/13313

Changed in cinder:
status: Confirmed → In Progress
Changed in cinder:
milestone: none → folsom-rc2
status: In Progress → Triaged

Fix proposed to branch: master
Review: https://review.openstack.org/13321

Changed in nova:
status: Confirmed → In Progress
Changed in cinder:
status: Triaged → In Progress
tags: added: folsom-rc-potential
Thierry Carrez (ttx) on 2012-09-20
Changed in cinder:
milestone: folsom-rc2 → none

Reviewed: https://review.openstack.org/13321
Committed: http://github.com/openstack/nova/commit/ba8cca2b59bb2904635520ad12f6d9a73f10242c
Submitter: Jenkins
Branch: master

commit ba8cca2b59bb2904635520ad12f6d9a73f10242c
Author: Ben Swartzlander <email address hidden>
Date: Wed Sep 19 17:30:22 2012 -0400

    Replace builtin hash with MD5 to solve 32/64-bit issues.

    It seems that Python's builtin hash returns different
    values on 32-bit and 64-bit architectures, so it's
    safer to use a well-defined hash like MD5.

    bug 1050359

    Change-Id: Ibb49f7b9028085d2aedaf05b94e1e1dcdf5e4cb4

Changed in nova:
status: In Progress → Fix Committed
tags: removed: folsom-rc-potential

Reviewed: https://review.openstack.org/13838
Committed: http://github.com/openstack/nova/commit/9e2073580b0080613f7860aee56d6399d463ad30
Submitter: Jenkins
Branch: stable/folsom

commit 9e2073580b0080613f7860aee56d6399d463ad30
Author: Ben Swartzlander <email address hidden>
Date: Wed Sep 19 17:30:22 2012 -0400

    Replace builtin hash with MD5 to solve 32/64-bit issues.

    It seems that Python's builtin hash returns different
    values on 32-bit and 64-bit architectures, so it's
    safer to use a well-defined hash like MD5.

    bug 1050359

    Change-Id: Ibb49f7b9028085d2aedaf05b94e1e1dcdf5e4cb4

tags: added: in-stable-folsom

Reviewed: https://review.openstack.org/13313
Committed: http://github.com/openstack/cinder/commit/4662fa29af88783cd9e95b553c044c733ea94753
Submitter: Jenkins
Branch: master

commit 4662fa29af88783cd9e95b553c044c733ea94753
Author: Ben Swartzlander <email address hidden>
Date: Wed Sep 19 17:07:47 2012 -0400

    Replace builtin hash with MD5 to solve 32/64-bit issues.

    It seems that Python's builtin hash returns different
    values on 32-bit and 64-bit architectures, so it's
    safer to use a well-defined hash like MD5.

    bug 1050359

    Change-Id: I0a4f11b34a1f76cda279ec801cede1440c6e5966

Changed in cinder:
status: In Progress → Fix Committed
Mark McLoughlin (markmc) on 2012-10-13
tags: removed: in-stable-folsom
Thierry Carrez (ttx) on 2012-11-21
Changed in nova:
milestone: none → grizzly-1
status: Fix Committed → Fix Released
Thierry Carrez (ttx) on 2012-11-22
Changed in cinder:
milestone: none → grizzly-1
status: Fix Committed → Fix Released
Changed in nova (Ubuntu):
status: New → Fix Released
Changed in nova (Ubuntu Quantal):
status: New → Confirmed

Hello Mate, or anyone else affected,

Accepted nova into quantal-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/nova/2012.2.1+stable-20121212-a99a802e-0ubuntu1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in nova (Ubuntu Quantal):
status: Confirmed → Fix Committed
tags: added: verification-needed
Launchpad Janitor (janitor) wrote :
Download full text (8.3 KiB)

This bug was fixed in the package nova - 2012.2.1+stable-20121212-a99a802e-0ubuntu1

---------------
nova (2012.2.1+stable-20121212-a99a802e-0ubuntu1) quantal-proposed; urgency=low

  * Ubuntu updates:
    - debian/control: Ensure novaclient is upgraded with nova,
      require python-keystoneclient >= 1:2.9.0. (LP: #1073289)
    - d/p/avoid_setuptools_git_dependency.patch: Refresh.
  * Dropped patches, applied upstream:
    - debian/patches/CVE-2012-5625.patch: [a99a802]
  * Resynchronize with stable/folsom (b55014ca) (LP: #1085255):
    - [a99a802] create_lvm_image allocates dirty blocks (LP: #1070539)
    - [670b388] RPC exchange name defaults to 'openstack' (LP: #1083944)
    - [3ede373] disassociate_floating_ip with multi_host=True fails
      (LP: #1074437)
    - [22d7c3b] libvirt imagecache should handle shared image storage
      (LP: #1075018)
    - [e787786] Detached and deleted RBD volumes remain associated with insance
      (LP: #1083818)
    - [9265eb0] live_migration missing migrate_data parameter in Hyper-V driver
      (LP: #1066513)
    - [3d99848] use_single_default_gateway does not function correctly
      (LP: #1075859)
    - [65a2d0a] resize does not migrate DHCP host information (LP: #1065440)
    - [102c76b] Nova backup image fails (LP: #1065053)
    - [48a3521] Fix config-file overrides for nova-dhcpbridge
    - [69663ee] Cloudpipe in Folsom: no such option: cnt_vpn_clients
      (LP: #1069573)
    - [6e47cc8] DisassociateAddress can cause Internal Server Error
      (LP: #1080406)
    - [22c3d7b] API calls to dis-associate an auto-assigned floating IP should
      return proper warning (LP: #1061499)
    - [bd11d15] libvirt: if exception raised during volume_detach, volume state
      is inconsistent (LP: #1057756)
    - [dcb59c3] admin can't describe all images in ec2 api (LP: #1070138)
    - [78de622] Incorrect Exception raised during Create server when metadata
      over 255 characters (LP: #1004007)
    - [c313de4] Fixed IP isn't released before updating DHCP host file
      (LP: #1078718)
    - [f4ab42d] Enabling Return Reservation ID with XML create server request
      returns no body (LP: #1061124)
    - [3db2a38] 'BackupCreate' should accept rotation parameter greater than or
      equal to zero (LP: #1071168)
    - [f7e5dde] libvirt reboot sometimes fails to reattach volumes
      (LP: #1073720)
    - [ff776d4] libvirt: detaching volume may fail while terminating other
      instances on the same host concurrently (LP: #1060836)
    - [85a8bc2] Used instance uuid rather than id in remove-fixed-ip
    - [42a85c0] Fix error on invalid delete_on_termination value
    - [6a17579] xenapi migrations fail w/ swap (LP: #1064083)
    - [97649b8] attach-time field for volumes is not updated for detach volume
      (LP: #1056122)
    - [8f6a718] libvirt: rebuild is not using kernel and ramdisk associated with
      the new image (LP: #1060925)
    - [fbe835f] live-migration and volume host assignement (LP: #1066887)
    - [c2a9150] typo prevents volume_tmp_dir flag from working (LP: #1071536)
    - [93efa21] Instances deleted during spawn leak network allocations
      (LP: #1068716)
    - [ebabd02] After restartin...

Read more...

Changed in nova (Ubuntu Quantal):
status: Fix Committed → Fix Released
Thierry Carrez (ttx) on 2013-04-04
Changed in nova:
milestone: grizzly-1 → 2013.1
Thierry Carrez (ttx) on 2013-04-04
Changed in cinder:
milestone: grizzly-1 → 2013.1
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers