unit test failures on 32 bit architectures

Bug #1501703 reported by James Page
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Low
James Page
neutron (Ubuntu)
Fix Released
High
James Page

Bug Description

Test all pass fine in Ubuntu on 64 bit archs, however on a 32 bit architecture (which is how we build packages in 14.04), two unit tests fail - this is a int/long type problem.

======================================================================
FAIL: neutron.tests.unit.agent.linux.test_ip_lib.TestIpRuleCommand.test__make_canonical_fwmark
neutron.tests.unit.agent.linux.test_ip_lib.TestIpRuleCommand.test__make_canonical_fwmark
----------------------------------------------------------------------
_StringException: Traceback (most recent call last):
_StringException: Empty attachments:
  pythonlogging:''
  pythonlogging:'neutron.api.extensions'
  stderr
  stdout

Traceback (most recent call last):
  File "/«PKGBUILDDIR»/neutron/tests/unit/agent/linux/test_ip_lib.py", line 633, in test__make_canonical_fwmark
    'type': 'unicast'}, actual)
  File "/usr/lib/python2.7/dist-packages/testtools/testcase.py", line 348, in assertEqual
    self.assertThat(observed, matcher, message)
  File "/usr/lib/python2.7/dist-packages/testtools/testcase.py", line 433, in assertThat
    raise mismatch_error
MismatchError: !=:
reference = {'fwmark': '0x400/0xffffffff', 'type': 'unicast'}
actual = {'fwmark': '0x400/0xffffffffL', 'type': 'unicast'}

Traceback (most recent call last):
_StringException: Empty attachments:
  pythonlogging:''
  pythonlogging:'neutron.api.extensions'
  stderr
  stdout

Traceback (most recent call last):
  File "/«PKGBUILDDIR»/neutron/tests/unit/agent/linux/test_ip_lib.py", line 633, in test__make_canonical_fwmark
    'type': 'unicast'}, actual)
  File "/usr/lib/python2.7/dist-packages/testtools/testcase.py", line 348, in assertEqual
    self.assertThat(observed, matcher, message)
  File "/usr/lib/python2.7/dist-packages/testtools/testcase.py", line 433, in assertThat
    raise mismatch_error
MismatchError: !=:
reference = {'fwmark': '0x400/0xffffffff', 'type': 'unicast'}
actual = {'fwmark': '0x400/0xffffffffL', 'type': 'unicast'}

======================================================================
FAIL: neutron.tests.unit.agent.linux.test_ip_lib.TestIpRuleCommand.test__make_canonical_fwmark_integer
neutron.tests.unit.agent.linux.test_ip_lib.TestIpRuleCommand.test__make_canonical_fwmark_integer
----------------------------------------------------------------------
_StringException: Traceback (most recent call last):
_StringException: Empty attachments:
  pythonlogging:''
  pythonlogging:'neutron.api.extensions'
  stderr
  stdout

Traceback (most recent call last):
  File "/«PKGBUILDDIR»/neutron/tests/unit/agent/linux/test_ip_lib.py", line 642, in test__make_canonical_fwmark_integer
    'type': 'unicast'}, actual)
  File "/usr/lib/python2.7/dist-packages/testtools/testcase.py", line 348, in assertEqual
    self.assertThat(observed, matcher, message)
  File "/usr/lib/python2.7/dist-packages/testtools/testcase.py", line 433, in assertThat
    raise mismatch_error
MismatchError: !=:
reference = {'fwmark': '0x400/0xffffffff', 'type': 'unicast'}
actual = {'fwmark': '0x400/0xffffffffL', 'type': 'unicast'}

Traceback (most recent call last):
_StringException: Empty attachments:
  pythonlogging:''
  pythonlogging:'neutron.api.extensions'
  stderr
  stdout

Traceback (most recent call last):
  File "/«PKGBUILDDIR»/neutron/tests/unit/agent/linux/test_ip_lib.py", line 642, in test__make_canonical_fwmark_integer
    'type': 'unicast'}, actual)
  File "/usr/lib/python2.7/dist-packages/testtools/testcase.py", line 348, in assertEqual
    self.assertThat(observed, matcher, message)
  File "/usr/lib/python2.7/dist-packages/testtools/testcase.py", line 433, in assertThat
    raise mismatch_error
MismatchError: !=:
reference = {'fwmark': '0x400/0xffffffff', 'type': 'unicast'}
actual = {'fwmark': '0x400/0xffffffffL', 'type': 'unicast'}

James Page (james-page)
Changed in neutron:
assignee: nobody → James Page (james-page)
status: New → In Progress
Changed in neutron (Ubuntu):
assignee: nobody → James Page (james-page)
importance: Undecided → High
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

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

Changed in neutron:
importance: Undecided → Low
milestone: none → mitaka-1
tags: added: liberty-rc-potential unittest
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.openstack.org/229819
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=49883f1b2bfc9a4f06b1d336553d7f0ab4289a0d
Submitter: Jenkins
Branch: master

commit 49883f1b2bfc9a4f06b1d336553d7f0ab4289a0d
Author: James Page <email address hidden>
Date: Thu Oct 1 11:54:28 2015 +0100

    Use format to convert ints to strings

    This ensures that on 32bit architectures, where
    sometimes an implicit long is created, the resulting
    string does not contain a 'L' suffix as generated
    by the hex function.

    Change-Id: I264f90d68009963fe7a217c2170e1cf2f46ae2bb
    Closes-Bug: 1501703

Changed in neutron:
status: In Progress → Fix Committed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/liberty)

Fix proposed to branch: stable/liberty
Review: https://review.openstack.org/230523

Thierry Carrez (ttx)
no longer affects: neutron/liberty
Changed in neutron:
milestone: mitaka-1 → liberty-rc2
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (stable/liberty)

Reviewed: https://review.openstack.org/230523
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=18344140bd0aae61dd6f50667d719cd9cfe149cb
Submitter: Jenkins
Branch: stable/liberty

commit 18344140bd0aae61dd6f50667d719cd9cfe149cb
Author: James Page <email address hidden>
Date: Thu Oct 1 11:54:28 2015 +0100

    Use format to convert ints to strings

    This ensures that on 32bit architectures, where
    sometimes an implicit long is created, the resulting
    string does not contain a 'L' suffix as generated
    by the hex function.

    Change-Id: I264f90d68009963fe7a217c2170e1cf2f46ae2bb
    Closes-Bug: 1501703
    (cherry picked from commit 49883f1b2bfc9a4f06b1d336553d7f0ab4289a0d)

tags: added: in-stable-liberty
Thierry Carrez (ttx)
Changed in neutron:
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package neutron - 2:7.0.0~rc1-0ubuntu4

---------------
neutron (2:7.0.0~rc1-0ubuntu4) wily; urgency=medium

  * Drop hard requirement on python-ryu for this cycle as it supports
    a new alternative agent implementation for Open vSwitch and is not
    the default, avoiding inclusion of ryu in main for Wily.
    - d/control: Drop (Build-)Depends on ryu, add Suggests.
    - d/p/drop-ryu-dep.patch: Patch out hard requirement on ryu.

 -- James Page <email address hidden> Fri, 02 Oct 2015 18:10:49 +0100

Changed in neutron (Ubuntu):
status: In Progress → Fix Released
Thierry Carrez (ttx)
Changed in neutron:
milestone: liberty-rc2 → 7.0.0
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

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

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)
Download full text (16.6 KiB)

Reviewed: https://review.openstack.org/235300
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=140ccc36d172bead2605968b3d61b36cca8a0040
Submitter: Jenkins
Branch: master

commit 6dcfe3a9362ae5fcf18e5cfb59663e43446cd59c
Author: Kevin Benton <email address hidden>
Date: Tue Oct 6 19:28:47 2015 -0700

    Mock oslo policy HTTPCheck instead of urllib

    We were mocking internal behavior of oslo policy by
    patching urllib. This will break with the upcoming oslo
    release that switches to requests.

    This patch changes the mock to the HTTPCheck level and we
    can leave implementation details testing up to oslo_policy.

    Change-Id: I07957f01307e25f1547197c720eea6e3e7f0ef5a
    Closes-Bug: #1503890
    (cherry picked from commit a0f1d9d6de1560be91d3001c8ac9f880a7a5a7e0)

    Add testresources used by oslo.db fixture

    If we use oslo.db fixtures, we'll need the package or
    the next version of oslo.db release will break us.

    Closes-Bug: #1503501
    Change-Id: I7dfbf240333095d91a414ba15a439bdc4804eb25
    (cherry picked from commit 86ad967e40c2c6752ec0fb46cfd3098ede0c7178)

    Fix functional test_server tests

    Now oslo.service 0.10.0 no longer sends SIGHUP to parent and
    children services.

    This was a chance introduced by 286a6ea, and since it invalidated
    the very logic under test, this must be revised.

    (cherry picked from commit 090fe713592c2b6398d999bfa03b80cbb2054609)

    Change-Id: I18a11283925369bc918002477774f196010a1bc3
    Closes-bug: #1505438
    (cherry picked from commit 090fe713592c2b6398d999bfa03b80cbb2054609)

    Make test_server work with older versions of oslo.service

    Change I18a11283925369bc918002477774f196010a1bc3 fixed the test for
    oslo.service >= 0.10.0, but it also broke it for older versions of
    oslo.service. Since the library has minimal version of >= 0.7.0 in
    requirements.txt, test should pass for those versions too.

    Now, instead of validating that either reset() or restart() of workers
    are triggered on SIGHUP, just validate that .start() is triggered the
    expected number of times (either way, no matter how oslo.service decide
    to clean up the children, they exit and then are respawned).

    Change-Id: I41f9d3af780b3178b075bc1e7084f417a2bd1378
    Closes-Bug: #1505645
    (cherry picked from commit 7bb40921660cf29beb68e338e205499efd6ffa36)

    Fixed multiple py34 gate issues

    1. Scope mock of 'open' to module

    By mocking 'open' at the module level, we can avoid affecting
    'open' calls from other modules.

    2. Stop using LOG.exception in contexts with no sys.exc_info set

    Python 3.4 logger fills in record.exc_info with sys.exc_info() result
    [1], and then it uses it to determine the current exception [2] to
    append to the log message. Since there is no exception, exc_info[1] is
    None, and we get AttributeError inside traceback module.

    It's actually a bug in Python interpreter that it attempt to access the
    attribute when there is no exception. It turns out that it's fixed in
    latest master of cPython [3] (...

Revision history for this message
Thierry Carrez (ttx) wrote : Fix included in openstack/neutron 8.0.0.0b1

This issue was fixed in the openstack/neutron 8.0.0.0b1 development milestone.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.