Skip to content

Error in tournament on a given machine #78

Closed
@drvinceknight

Description

@drvinceknight

@marcharper and @meatballs not sure if you can offer any insight here, following #77 I'm giving the following code a go (a simple tournament with all strategies):

import axelrod as axl

from axelrod_fortran import Player
from axelrod_fortran.strategies import second_tournament_strategies

if __name__ == "__main__":
    players = [Player(name) for name in second_tournament_strategies]
    tournament = axl.Tournament(players, repetitions=1)
    results = tournament.play(processes=4)
    print(results.ranked_names)

I get the following error(s), then the tournament continues to run:

(investigate-axlf) vince@siren:~$ python test_axlf.py 
Playing matches:   0%|                                                                                                       | 0/2016 [00:00<?, ?it/s]Exception ignored in: <bound method Player.__del__ of k31r>
Traceback (most recent call last):
  File "/home/vince/.conda/envs/investigate-axlf/lib/python3.6/site-packages/axelrod_fortran/player.py", line 134, in __del__
    self._release_shared_library()
  File "/home/vince/.conda/envs/investigate-axlf/lib/python3.6/site-packages/axelrod_fortran/player.py", line 122, in _release_shared_library
    shared_library_manager.release(self.original_name, self.index)
  File "<string>", line 2, in release
  File "/home/vince/.conda/envs/investigate-axlf/lib/python3.6/multiprocessing/managers.py", line 772, in _callmethod
    raise convert_to_error(kind, result)
KeyError: 1
Process Process-4:
Traceback (most recent call last):
  File "/home/vince/.conda/envs/investigate-axlf/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/home/vince/.conda/envs/investigate-axlf/lib/python3.6/multiprocessing/process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "/home/vince/.conda/envs/investigate-axlf/lib/python3.6/site-packages/axelrod/tournament.py", line 401, in _worker
    interactions = self._play_matches(chunk, build_results)
  File "/home/vince/.conda/envs/investigate-axlf/lib/python3.6/site-packages/axelrod/tournament.py", line 430, in _play_matches
    match.play()
  File "/home/vince/.conda/envs/investigate-axlf/lib/python3.6/site-packages/axelrod/match.py", line 142, in play
    p.reset()
  File "/home/vince/.conda/envs/investigate-axlf/lib/python3.6/site-packages/axelrod_fortran/player.py", line 128, in reset
    self._release_shared_library()
  File "/home/vince/.conda/envs/investigate-axlf/lib/python3.6/site-packages/axelrod_fortran/player.py", line 122, in _release_shared_library
    shared_library_manager.release(self.original_name, self.index)
  File "<string>", line 2, in release
  File "/home/vince/.conda/envs/investigate-axlf/lib/python3.6/multiprocessing/managers.py", line 772, in _callmethod
    raise convert_to_error(kind, result)
KeyError: 3
Playing matches:   2%|

It does seem to hang on a final match (2015/2016):

Playing matches: 100%|█████████████████████████▉| 2015/2016 [02:00<00:00, 16.82it/s]

I get similar results when running different number of repetitions.

I seem unable to reproduce this on other machines of mine (where this code runs just fine).

I was aiming to give the full tournament a whirl for comparison with the reproducing paper and it could just be something weird on the specific server I tried so it's not the end of the world, I can run on something else.

Any immediate thoughts?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions