oxwhirl/smac

Core: Access Permission Error randomly occurring during runs

IronLucario2012 opened this issue · 0 comments

The SC2 instance will, at seemingly random, crash with an Access Permission Error for no apparent reason. Even when I've only got one instance running and it cannot realistically be my computer being unable to handle running it.

Here's the output from the terminal starting from the first sign of an error:

WARNING:absl:SC2 isn't running, so bailing early on the websocket connection.
Process Process-10:
Traceback (most recent call last):
  File "C:\Users\Jack\anaconda3\envs\HA-MARL\lib\multiprocessing\process.py", line 314, in _bootstrap
    self.run()
  File "C:\Users\Jack\anaconda3\envs\HA-MARL\lib\multiprocessing\process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Users\Jack\HARL\HA-MARL\environments\env_wrappers.py", line 193, in shareworker
    ob, s_ob, available_actions = env.reset()
  File "C:\Users\Jack\HARL\HA-MARL\environments\smac\StarCraft2_Env.py", line 435, in reset
    self._launch()
  File "C:\Users\Jack\HARL\HA-MARL\environments\smac\StarCraft2_Env.py", line 356, in _launch
    self._sc2_proc = self._run_config.start(
  File "C:\Users\Jack\anaconda3\envs\HA-MARL\lib\site-packages\pysc2\run_configs\platforms.py", line 83, in start
    return sc_process.StarcraftProcess(
  File "C:\Users\Jack\anaconda3\envs\HA-MARL\lib\site-packages\pysc2\lib\sc_process.py", line 137, in __init__
    self._controller = remote_controller.RemoteController(
  File "C:\Users\Jack\anaconda3\envs\HA-MARL\lib\site-packages\pysc2\lib\remote_controller.py", line 142, in __init__
    sock = self._connect(host, port, proc, timeout_seconds)
  File "C:\Users\Jack\anaconda3\envs\HA-MARL\lib\site-packages\pysc2\lib\stopwatch.py", line 205, in _stopwatch
    return func(*args, **kwargs)
  File "C:\Users\Jack\anaconda3\envs\HA-MARL\lib\site-packages\pysc2\lib\remote_controller.py", line 176, in _connect
    raise ConnectError("Failed to connect to the SC2 websocket. Is it up?")
pysc2.lib.remote_controller.ConnectError: Failed to connect to the SC2 websocket. Is it up?
Traceback (most recent call last):
  File "C:\Users\Jack\anaconda3\envs\HA-MARL\lib\multiprocessing\connection.py", line 301, in _recv_bytes
    ov, err = _winapi.ReadFile(self._handle, bsize,
BrokenPipeError: [WinError 109] The pipe has been ended

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Jack\HARL\HA-MARL\main\main.py", line 76, in <module>
    main()
  File "C:\Users\Jack\HARL\HA-MARL\main\main.py", line 71, in main
    runner.run()
  File "C:\Users\Jack\HARL\HA-MARL\runners\base_runner.py", line 264, in run
    self.eval()
  File "C:\Users\Jack\anaconda3\envs\HA-MARL\lib\site-packages\torch\utils\_contextlib.py", line 115, in decorate_context
    return func(*args, **kwargs)
  File "C:\Users\Jack\HARL\HA-MARL\runners\base_runner.py", line 505, in eval
    eval_obs, eval_share_obs, eval_available_actions = self.eval_envs.reset()
  File "C:\Users\Jack\HARL\HA-MARL\environments\env_wrappers.py", line 277, in reset
    results = [remote.recv() for remote in self.remotes]
  File "C:\Users\Jack\HARL\HA-MARL\environments\env_wrappers.py", line 277, in <listcomp>
    results = [remote.recv() for remote in self.remotes]
  File "C:\Users\Jack\anaconda3\envs\HA-MARL\lib\multiprocessing\connection.py", line 250, in recv
    buf = self._recv_bytes()
  File "C:\Users\Jack\anaconda3\envs\HA-MARL\lib\multiprocessing\connection.py", line 321, in _recv_bytes
    raise EOFError
EOFError
Exception ignored in: <function StarcraftProcess.__del__ at 0x000001AA1564BC70>
Traceback (most recent call last):
  File "C:\Users\Jack\anaconda3\envs\HA-MARL\lib\site-packages\pysc2\lib\sc_process.py", line 182, in __del__
  File "C:\Users\Jack\anaconda3\envs\HA-MARL\lib\site-packages\pysc2\lib\stopwatch.py", line 204, in _stopwatch
AttributeError: __enter__

Are there any ways I can tell why this is happening in order to fix it?