ZEO test failures on Mac OS X 10.4 PPC

Bug #98415 reported by Philipp von Weitershausen
2
Affects Status Importance Assigned to Milestone
ZODB
Won't Fix
Undecided
Unassigned
Zope 3
Won't Fix
Critical
Unassigned
3.4
Won't Fix
Critical
Unassigned

Bug Description

ZEO tests from ZODB 3.7 fail on MacOSX (ChrisM confirms that, as well as the fact that they pass on Linux). The failures I get are these:

Error in test testNOK (ZEO.tests.testAuth.PlainTextAuth)
Traceback (most recent call last):
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/unittest.py", line 270, in run
    self.tearDown()
  File "src/ZEO/tests/testAuth.py", line 54, in tearDown
    self.__super_tearDown()
  File "src/ZEO/tests/ConnectionTests.py", line 124, in tearDown
    forker.shutdown_zeo_server(adminaddr)
  File "src/ZEO/tests/forker.py", line 181, in shutdown_zeo_server
    s.connect(adminaddr)
  File "<string>", line 1, in connect
error: (22, 'Invalid argument')

and many more of them. I tried running the tests or ZODB 3.6 but couldn't get the tests to pick up ZEO tests:

  philipp@bender:~/dev/ZODB36$ python setup.py build
  ...
  philipp@bender:~/dev/ZODB36$ python test.py -ps ZEO
  Running tests from build/lib.darwin-8.7.0-Power_Macintosh-2.4
  Total: 0 tests, 0 failures, 0 errors

Those commands work in ZODB 3.7, except for the test failures I get, obviously.

Revision history for this message
Jim Fulton (jim-zope) wrote :

I just checked in a fix that I'd made on the trunk and forgotten to check into the branch. Could you see if it makes the tests pass for you on PPC now?

Revision history for this message
Philipp von Weitershausen (philikon) wrote :

They almost pass now. This is the only failure I get:

philipp@Vigor235:~/dev/ZODB37$ python test.py -ps ZEO
Running tests from src
Running unit tests:
  Running:
    14/162 (8.6%)

Failure in test checkReconnectUpgrade (ZEO.tests.testConnection.FileStorageReconnectionTests)
Traceback (most recent call last):
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/unittest.py", line 260, in run
    testMethod()
  File "src/ZEO/tests/ConnectionTests.py", line 857, in checkReconnectUpgrade
    self.pollUp()
  File "src/ZEO/tests/ConnectionTests.py", line 232, in pollUp
    self.fail("timed out waiting for storage to connect")
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/unittest.py", line 301, in fail
    raise self.failureException, msg
AssertionError: timed out waiting for storage to connect

The following test left new threads behind:
checkReconnectUpgrade (ZEO.tests.testConnection.FileStorageReconnectionTests)
New thread(s): [<ConnectThread(Connect([(2, ('localhost', 27408))]), started daemon)>]

  Ran 162 tests with 1 failures and 0 errors in 818.417 seconds.

Revision history for this message
Jim Fulton (jim-zope) wrote :

Have you tried running the tests more than once?

Was there anything else going on on the machine at the time?

FWIW, my macbook runs these tests in 232 seconds.

I might be able to run these on a PPC mac mini tomorrow.

Revision history for this message
Philipp von Weitershausen (philikon) wrote :

I ran them twice again now. The time out error didn't occur anymore. Instead, I twice got this:

philipp@Vigor234:~/dev/ZODB37$ python test.py -ps ZEO
Running tests from src
Running unit tests:
  Running:
    33/162 (20.4%)

Error in test checkVerificationInvalidationPersists (ZEO.tests.testConnection.MappingStorageConnectionTests)
Traceback (most recent call last):
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/unittest.py", line 260, in run
    testMethod()
  File "src/ZEO/tests/ConnectionTests.py", line 531, in checkVerificationInvalidationPersists
    self._storage = self.openClientStorage('test')
  File "src/ZEO/tests/ConnectionTests.py", line 183, in openClientStorage
    realm=realm)
  File "src/ZEO/ClientStorage.py", line 321, in __init__
    self._wait(wait_timeout)
  File "src/ZEO/ClientStorage.py", line 342, in _wait
    assert self._connection.is_async()
AttributeError: 'NoneType' object has no attribute 'is_async'

  Ran 162 tests with 0 failures and 1 errors in 811.086 seconds.

The machine wasn't doing anythign else in particular, just reading emails, browsing the web, etc.

Revision history for this message
Christian Theune (ctheune) wrote :

Changes: submitter email, edited transcript, importance (3.3 Release => critical), new comment

When reviewing the list of blocking things, Jim noted that this only happens on PPC and shouldn't be release-blocking. I'm moving it to critical.

Revision history for this message
Jim Fulton (jim-zope) wrote :

I'll keep plugging away at this as I have time, but I'm not very hopeful.

I'm tempted to just remove the assertion.

I have a PPC machine that I can use at home to run the tests. On that machine, I'm getting another error. Note that both errors go away if I run the tests individually. :(

Revision history for this message
Philipp von Weitershausen (philikon) wrote :

I agree, it's not release blocking in general, it's just blocking me from making releases (I don't feel very comfortable creating releases when my tests don't all pass).

Revision history for this message
Christian Theune (ctheune) wrote :

Well, to assure you, those tests run on other platforms. :)
I'm really keen on getting another beta release (before the RC). *Really*.

Revision history for this message
Russ Ferriday (russf) wrote :

Here's a tiny clue...

If you change the 3 'test' parameters to 'testxxx', the test runs fine on OSX.

There are other calls to openClientStorage('test' ...) in previous tests.

Is there something left from a previous test that causes this error? Why only on OSX?

Revision history for this message
Russ Ferriday (russf) wrote :

I spotted the need for the patch below while tracking this one.
And, I notice that self.caches ends up with ['trace', 'trace'] which does not seem right.

*** SOMEONE APPLY THIS PLEASE ***

[streak:src/ZEO/tests] russ% svn diff
Index: ConnectionTests.py
===================================================================
--- ConnectionTests.py (revision 69562)
+++ ConnectionTests.py (working copy)
 -132,7 +132,7 @@
         for c in self.caches:
             for i in 0, 1:
                 for ext in "", ".trace":
- base = "%s-%s.zec%s" % (c, "1", ext)
+ base = "%s-%s.zec%s" % (c, i, ext)
                     path = os.path.join(tempfile.tempdir, base)
                     # On Windows before 2.3, we don't have a way to wait for
                     # the spawned server(s) to close, and they inherited

Revision history for this message
Russ Ferriday (russf) wrote :

1. Let me rephrase my *** message *** below to : *** Would somebody see if this patch makes sense ***.

2. I'm not sure about the relevance of 'trace' being in self.caches twice. Seems like that should be benign.

3. Changing 3 occurences of openClientStorage('test') to openClientStorage('testx') in checkVerificationInvalidationPersists makes the test run. But I don't know why.

Changed in zope3:
status: Unconfirmed → Confirmed
Revision history for this message
Baiju Muthukadan (baijum) wrote :

Looks like ZODB issue. Added ZODB to also affects list.

Changed in zope3:
status: Confirmed → Won't Fix
Revision history for this message
Jim Fulton (jim-zope) wrote :

This is pretty old. The lines where Philipp last reported failures don't exist any more, I don't think we care that much about PPC anyway.

Changed in zodb:
status: New → Won't Fix
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.