#3348 closed defect (fixed)

Tor integration tests fail because Chutney needs Python 3

Reported by: sajith Owned by: sajith
Priority: normal Milestone: undecided
Component: dev-infrastructure Version: n/a
Keywords: Cc:
Launchpad Bug:

Description (last modified by sajith)

Chutney is going to need Python 3, going forward.

Currently invoking chutney modules directly from Tahoe fails, because Tahoe uses Python 2, and Chutney now requires Python 3.

Change History (4)

comment:1 Changed at 2020-07-20T20:38:27Z by sajith

Error log, for the record:

2020-07-20T15:18:46.2736540Z _________________ ERROR at setup of test_onion_service_storage _________________
2020-07-20T15:18:46.2736840Z 
2020-07-20T15:18:46.2738660Z reactor = <twisted.internet.selectreactor.SelectReactor object at 0x104e0b990>
2020-07-20T15:18:46.2740100Z temp_dir = '/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/tahoe_6R88E'
2020-07-20T15:18:46.2740720Z chutney = '/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/tahoe_6R88E/chutney'
2020-07-20T15:18:46.2741260Z request = <SubRequest 'tor_network' for <Function test_onion_service_storage>>
2020-07-20T15:18:46.2741390Z 
2020-07-20T15:18:46.2741900Z     @pytest.fixture(scope='session')
2020-07-20T15:18:46.2742140Z     def tor_network(reactor, temp_dir, chutney, request):
2020-07-20T15:18:46.2742340Z         # this is the actual "chutney" script at the root of a chutney checkout
2020-07-20T15:18:46.2742510Z         chutney_dir = chutney
2020-07-20T15:18:46.2743400Z         chut = join(chutney_dir, 'chutney')
2020-07-20T15:18:46.2743610Z     
2020-07-20T15:18:46.2744130Z         # now, as per Chutney's README, we have to create the network
2020-07-20T15:18:46.2744350Z         # ./chutney configure networks/basic
2020-07-20T15:18:46.2744510Z         # ./chutney start networks/basic
2020-07-20T15:18:46.2744760Z     
2020-07-20T15:18:46.2745200Z         env = environ.copy()
2020-07-20T15:18:46.2745820Z         env.update({"PYTHONPATH": join(chutney_dir, "lib")})
2020-07-20T15:18:46.2746020Z         proto = _DumpOutputProtocol(None)
2020-07-20T15:18:46.2746190Z         reactor.spawnProcess(
2020-07-20T15:18:46.2746330Z             proto,
2020-07-20T15:18:46.2746650Z             sys.executable,
2020-07-20T15:18:46.2746910Z             (
2020-07-20T15:18:46.2747740Z                 sys.executable, '-m', 'chutney.TorNet', 'configure',
2020-07-20T15:18:46.2748320Z                 join(chutney_dir, 'networks', 'basic'),
2020-07-20T15:18:46.2748490Z             ),
2020-07-20T15:18:46.2748740Z             path=join(chutney_dir),
2020-07-20T15:18:46.2748850Z             env=env,
2020-07-20T15:18:46.2749020Z         )
2020-07-20T15:18:46.2749330Z >       pytest_twisted.blockon(proto.done)
2020-07-20T15:18:46.2749520Z 
2020-07-20T15:18:46.2750100Z integration/conftest.py:413: 
2020-07-20T15:18:46.2751460Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
2020-07-20T15:18:46.2752380Z .tox/integration/lib/python2.7/site-packages/pytest_twisted.py:74: in blockon
2020-07-20T15:18:46.2752930Z     return blockon_default(d)
2020-07-20T15:18:46.2753040Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
2020-07-20T15:18:46.2753650Z 
2020-07-20T15:18:46.2754510Z d = <Deferred at 0x106f64820 current result: <twisted.python.failure.Failure twisted.internet.error.ProcessTerminated: A process has ended with a probable error condition: process ended with exit code 1.>>
2020-07-20T15:18:46.2754690Z 
2020-07-20T15:18:46.2754800Z     def blockon_default(d):
2020-07-20T15:18:46.2755100Z         current = greenlet.getcurrent()
2020-07-20T15:18:46.2755460Z         assert (
2020-07-20T15:18:46.2756090Z             current is not _instances.gr_twisted
2020-07-20T15:18:46.2756420Z         ), "blockon cannot be called from the twisted greenlet"
2020-07-20T15:18:46.2756610Z         result = []
2020-07-20T15:18:46.2756710Z     
2020-07-20T15:18:46.2756990Z         def cb(r):
2020-07-20T15:18:46.2757380Z             result.append(r)
2020-07-20T15:18:46.2758060Z             if greenlet.getcurrent() is not current:
2020-07-20T15:18:46.2758390Z                 current.switch(result)
2020-07-20T15:18:46.2758870Z     
2020-07-20T15:18:46.2759190Z         d.addCallbacks(cb, cb)
2020-07-20T15:18:46.2759450Z         if not result:
2020-07-20T15:18:46.2759900Z             _result = _instances.gr_twisted.switch()
2020-07-20T15:18:46.2760570Z             assert _result is result, "illegal switch in blockon"
2020-07-20T15:18:46.2760830Z     
2020-07-20T15:18:46.2761260Z         if isinstance(result[0], failure.Failure):
2020-07-20T15:18:46.2761770Z >           result[0].raiseException()
2020-07-20T15:18:46.2762880Z E           ProcessTerminated: A process has ended with a probable error condition: process ended with exit code 1.
2020-07-20T15:18:46.2763030Z 
2020-07-20T15:18:46.2763840Z .tox/integration/lib/python2.7/site-packages/pytest_twisted.py:95: ProcessTerminated
2020-07-20T15:18:46.2764850Z ---------------------------- Captured stdout setup -----------------------------
2020-07-20T15:18:46.2765610Z Cloning into '/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/tahoe_6R88E/chutney'...
2020-07-20T15:18:46.2765810Z Traceback (most recent call last):
2020-07-20T15:18:46.2767290Z   File "/Users/runner/hostedtoolcache/Python/2.7.18/x64/lib/python2.7/runpy.py", line 163, in _run_module_as_main
2020-07-20T15:18:46.2767610Z     mod_name, _Error)
2020-07-20T15:18:46.2767920Z   File "/Users/runner/hostedtoolcache/Python/2.7.18/x64/lib/python2.7/runpy.py", line 119, in _get_module_details
2020-07-20T15:18:46.2784250Z     code = loader.get_code(mod_name)
2020-07-20T15:18:46.2784500Z   File "/Users/runner/hostedtoolcache/Python/2.7.18/x64/lib/python2.7/pkgutil.py", line 281, in get_code
2020-07-20T15:18:46.2785220Z     self.code = compile(source, self.filename, 'exec')
2020-07-20T15:18:46.2785550Z   File "/private/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/tahoe_6R88E/chutney/lib/chutney/TorNet.py", line 103
2020-07-20T15:18:46.2785720Z     def mkdir_p(*d, mode=448):
2020-07-20T15:18:46.2785870Z                        ^
2020-07-20T15:18:46.2786000Z SyntaxError: invalid syntax

comment:2 Changed at 2020-07-20T20:38:56Z by sajith

  • Summary changed from Tor integration tests fail to Tor integration tests fail because Chutney needs Python 3

comment:3 Changed at 2020-07-21T11:49:35Z by sajith

  • Description modified (diff)

comment:4 Changed at 2020-07-21T17:44:20Z by GitHub <noreply@…>

  • Resolution set to fixed
  • Status changed from new to closed

In 4d20f84/trunk:

Merge pull request #749 from sajith/3348.tor-chutney-integration-tests-python2

Use a Chutney revision that works with Python 2

Fixes: ticket:3348

Note: See TracTickets for help on using tickets.