test_connect_put_node_timeout failed in gate/check job

Bug #1302781 reported by Peter Portante
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Object Storage (swift)
Fix Released
Undecided
Unassigned

Bug Description

See: http://logs.openstack.org/39/84339/3/check/gate-swift-python27/aa3d7a6/console.html

2014-04-04 11:34:31.587 | ======================================================================
2014-04-04 11:34:31.587 | FAIL: test_connect_put_node_timeout (test.unit.proxy.controllers.test_obj.TestObjControllerWriteAffinity)
2014-04-04 11:34:31.588 | ----------------------------------------------------------------------
2014-04-04 11:34:31.588 | Traceback (most recent call last):
2014-04-04 11:34:31.588 | File "/home/jenkins/workspace/gate-swift-python27/test/unit/proxy/controllers/test_obj.py", line 89, in test_connect_put_node_timeout
2014-04-04 11:34:31.588 | self.assertTrue(res is None)
2014-04-04 11:34:31.589 | AssertionError: False is not true
2014-04-04 11:34:31.589 | 'False is not true' = self._formatMessage('False is not true', "%s is not true" % safe_repr(False))
2014-04-04 11:34:31.589 | >> raise self.failureException('False is not true')
2014-04-04 11:34:31.590 |

It looks like the "slow_connect" option for FakeConn adds a sleep delay of 0.1, which is the same value for the connect_timeout used by the test. It is possible that the two timeouts end up having the same time value, such that in some queue the connect timeout fires after the sleep() timeout, allowing the connection to be "made". However, there is little evidence to support this.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to swift (master)

Reviewed: https://review.openstack.org/85457
Committed: https://git.openstack.org/cgit/openstack/swift/commit/?id=9d0067a0f546ce8a0fddb257655f2944c05e35e6
Submitter: Jenkins
Branch: master

commit 9d0067a0f546ce8a0fddb257655f2944c05e35e6
Author: Peter Portante <email address hidden>
Date: Fri Apr 4 15:26:32 2014 -0400

    Attempt to ensure connect always timesout

    It seems that the test_connect_put_timeout() test does not always fail
    when it is expected. Sometimes, not very often, the attempt to connect
    succeeds, resulting in a failed test.

    This might be because the fake-connection infrastructure uses a
    sleep(0.1) and the test uses a connect timeout of 0.1. There might be a
    case where the two values result in the exact time where the entries
    happen to be added in the wrong order such that the sleep() completes
    first before the connect timeout fires, where the connect completes
    successfully.

    Closes bug 1302781

    Change-Id: Ie23e40cf294170eccdf0713e313f9a31a92f9071

Changed in swift:
status: New → Fix Committed
Revision history for this message
Openstack Gerrit (openstack-gerrit) wrote : Fix proposed to swift (feature/ec)

Fix proposed to branch: feature/ec
Review: https://review.openstack.org/88359

Revision history for this message
Openstack Gerrit (openstack-gerrit) wrote : Fix merged to swift (feature/ec)
Download full text (8.0 KiB)

Reviewed: https://review.openstack.org/88359
Committed: https://git.openstack.org/cgit/openstack/swift/commit/?id=282548d538153fa2fae1d2a4ec19d75dc2a41028
Submitter: Jenkins
Branch: feature/ec

commit 856c15539a958dabe3b8a1f22d305048ca39de9a
Author: Paul Luse <email address hidden>
Date: Mon Apr 14 15:19:22 2014 -0700

    Fix testcase test_print_db_info_metadata()

    Test compares cluster info to hardcoded expected data and wasn't
    sorting the two sets of things being compared leading to some
    sporadic unit test failures.

    Change-Id: I3ef98260a62c15d06ba8cc196196d4e90abca3f0

commit 67fff5b2973f5ca12316041664eddf3e8ece45be
Author: Madhuri Kumari <email address hidden>
Date: Fri Apr 11 11:53:48 2014 +0530

    Print 'Container Count' in data base info

    Currently, 'Container Count' was missing in data base info.
    So this patch will help printing 'Container Count' also.

    Change-Id: I1ca80ee79e71b086b30fd2d1ab024ea1cfb324f5

commit deb0dfd090cee2feef664bdd4449194c274d830e
Author: Peter Portante <email address hidden>
Date: Thu Apr 10 14:36:43 2014 -0400

    Add includes of referenced SAIO bin scripts

    Change-Id: I6810e69a757336a3aed0a38146c27f270fe2dde1

commit 2c2ede22338d6ca9637233076157f1d26248fbf1
Author: Chuck Thier <email address hidden>
Date: Thu Apr 10 18:59:01 2014 +0000

    Fix logging issue when services stop on py26

    On older versions of python 2.6, exceptions would be spewed to the error
    log whenever a service would stop. This gets magnified by the
    container-updater which seems to do it with every pass. This catches
    and squelches the error.

    Change-Id: I128c09c240e768e8195af1f6fe79b10d4e432471
    Closes-Bug: #1306027

commit 5ff6a4d5d6cdbf39ba9f6d5d416cdd1c6c6a52ac
Author: Peter Portante <email address hidden>
Date: Mon Apr 7 13:01:44 2014 -0400

    Use eventlet instead of threading for timeout

    The only explicit use of Python threading is found in the
    testFileSizeLimit test. Using eventlet seems a bit easier to follow,
    accomplishing the same goal, and does not constrain us to a
    multi-threaded environment.

    The chunks() and timeout() module level functions are only used by one
    test each, so we just move them to those tests to indicate they are not
    used globally.

    Change-Id: I50b9fb798fbfd1d552b3c3f90309f6b86da34853

commit 58fe2f256fccc14f5078e9fde9b9f7b2219a06e5
Author: anc <email address hidden>
Date: Tue Apr 8 18:44:06 2014 +0100

    Add tests and comments re constraints in /info

    Add test to check that only the expected keys are
    reported by proxy in /info, and add comments to
    raise awareness that default constraints will be
    automatically published by proxy in response to /info
    requests.

    Change-Id: Ia5f6339b06cdc2e1dc960d1f75562a2505530202

commit c2744caac43586b745c43c37a9c31483f7a126fc
Author: Samuel Merritt <email address hidden>
Date: Tue Apr 8 11:44:58 2014 -0700

    Fix deprecation warning

    Accessing BaseException.message spews a warning; we can get the same
    information with str(err), which does not spew.

    Change-Id: I67...

Read more...

Thierry Carrez (ttx)
Changed in swift:
status: Fix Committed → Fix Released
milestone: none → 2.0.0
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.