Giter Club home page Giter Club logo

universe's Introduction

This repository has been deprecated in favor of the Retro (https://github.com/openai/retro) library. See our Retro Contest (https://blog.openai.com/retro-contest) blog post for detalis.

Universe is a software platform for measuring and training an AI's general intelligence across the world's supply of games, websites and other applications. This is the universe open-source library, which provides a simple Gym interface to each Universe environment.

Universe allows anyone to train and evaluate AI agents on an extremely wide range of real-time, complex environments.

Universe makes it possible for any existing program to become an OpenAI Gym environment, without needing special access to the program's internals, source code, or APIs. It does this by packaging the program into a Docker container, and presenting the AI with the same interface a human uses: sending keyboard and mouse events, and receiving screen pixels. Our initial release contains over 1,000 environments in which an AI agent can take actions and gather observations.

Additionally, some environments include a reward signal sent to the agent, to guide reinforcement learning. We've included a few hundred environments with reward signals. These environments also include automated start menu clickthroughs, allowing your agent to skip to the interesting part of the environment.

We'd like the community's help to grow the number of available environments, including integrating increasingly large and complex games.

The following classes of tasks are packaged inside of publicly-available Docker containers, and can be run today with no work on your part:

  • Atari and CartPole environments over VNC: gym-core.Pong-v3, gym-core.CartPole-v0, etc.
  • Flashgames over VNC: flashgames.DuskDrive-v0, etc.
  • Browser tasks ("World of Bits") over VNC: wob.mini.TicTacToe-v0, etc.

We've scoped out integrations for many other games, including completing a high-quality GTA V integration (thanks to Craig Quiter and NVIDIA), but these aren't included in today's release.

Installation

Supported systems

We currently support Linux and OSX running Python 2.7 or 3.5.

We recommend setting up a conda environment before getting started, to keep all your Universe-related packages in the same place.

Install Universe

To get started, first install universe:

git clone https://github.com/openai/universe.git
cd universe
pip install -e .

If this errors out, you may be missing some required packages. Here's the list of required packages we know about so far (please let us know if you had to install any others).

On Ubuntu 16.04:

pip install numpy
sudo apt-get install golang libjpeg-turbo8-dev make

On Ubuntu 14.04:

sudo add-apt-repository ppa:ubuntu-lxc/lxd-stable  # for newer golang
sudo apt-get update
sudo apt-get install golang libjpeg-turbo8-dev make

On OSX:

You might need to install Command Line Tools by running:

xcode-select --install

Or numpy, libjpeg-turbo and incremental packages:

pip install numpy incremental
brew install golang libjpeg-turbo
Install Docker

The majority of the environments in Universe run inside Docker containers, so you will need to install Docker (on OSX, we recommend Docker for Mac). You should be able to run docker ps and get something like this:

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
Alternate configuration - running the agent in docker

The above instructions result in an agent that runs as a regular python process in your OS, and launches docker containers as needed for the remotes. Alternatively, you can build a docker image for the agent and run it as a container as well. You can do this in any operating system that has a recent version of docker installed, and the git client.

To get started, clone the universe repo:

git clone https://github.com/openai/universe.git
cd universe

Build a docker image, tag it as 'universe':

docker build -t universe .

This may take a while the first time, as the docker image layers are pulled from docker hub.

Once the image is built, you can do a quick run of the test cases to make sure everything is working:

docker run --privileged --rm -e DOCKER_NET_HOST=172.17.0.1 -v /var/run/docker.sock:/var/run/docker.sock universe pytest

Here's a breakdown of that command:

  • docker run - launch a docker container
  • --rm - delete the container once the launched process finishes
  • -e DOCKER_NET_HOST=172.17.0.1 - tells the universe remote (when launched) to make its VNC connection back to this docker-allocated IP
  • -v /var/run/docker.sock:/var/run/docker.sock - makes the docker unix socket from the host available to the container. This is a common technique used to allow containers to launch other containers alongside itself.
  • universe - use the imaged named 'universe' built above
  • pytest - run 'pytest' in the container, which runs all the tests

At this point, you'll see a bunch of tests run and hopefully all pass.

To do some actual development work, you probably want to do another volume map from the universe repo on your host into the container, then shell in interactively:

docker run --privileged --rm -it -e DOCKER_NET_HOST=172.17.0.1 -v /var/run/docker.sock:/var/run/docker.sock -v (full path to cloned repo above):/usr/local/universe universe python

As you edit the files in your cloned git repo, they will be changed in your docker container and you'll be able to run them in python.

Note if you are using docker for Windows, you'll need to enable the relevant shared drive for this to work.

Notes on installation
  • When installing universe, you may see warning messages. These lines occur when installing numpy and are normal.
  • You'll need a go version of at least 1.5. Ubuntu 14.04 has an older Go, so you'll need to upgrade your Go installation.
  • We run Python 3.5 internally, so the Python 3.5 variants will be much more thoroughly performance tested. Please let us know if you see any issues on 2.7.
  • While we don't officially support Windows, we expect our code to be very close to working there. We'd be happy to take pull requests that take our Windows compatibility to 100%. In the meantime, the easiest way for Windows users to run universe is to use the alternate configuration described above.

System overview

A Universe environment is similar to any other Gym environment: the agent submits actions and receives observations using the step() method.

Internally, a Universe environment consists of two pieces: a client and a remote:

  • The client is a VNCEnv instance which lives in the same process as the agent. It performs functions like receiving the agent's actions, proxying them to the remote, queuing up rewards for the agent, and maintaining a local view of the current episode state.
  • The remote is the running environment dynamics, usually a program running inside of a Docker container. It can run anywhere -- locally, on a remote server, or in the cloud. (We have a separate page describing how to manage remotes.)
  • The client and the remote communicate with one another using the VNC remote desktop system, as well as over an auxiliary WebSocket channel for reward, diagnostic, and control messages. (For more information on client-remote communication, see the separate page on the Universe internal communication protocols.)

The code in this repository corresponds to the client side of the Universe environments. Additionally, you can freely access the Docker images for the remotes. We'll release the source repositories for the remotes in the future, along with tools to enable users to integrate new environments. Please sign up for our beta if you'd like early access.

Run your first agent

Now that you've installed the universe library, you should make sure it actually works. You can paste the example below into your python REPL. (You may need to press enter an extra time to make sure the while loop is executing.)

import gym
import universe  # register the universe environments

env = gym.make('flashgames.DuskDrive-v0')
env.configure(remotes=1)  # automatically creates a local docker container
observation_n = env.reset()

while True:
  action_n = [[('KeyEvent', 'ArrowUp', True)] for ob in observation_n]  # your agent here
  observation_n, reward_n, done_n, info = env.step(action_n)
  env.render()

The example will instantiate a client in your Python process, automatically pull the quay.io/openai/universe.flashgames image, and will start that image as the remote. (In our remotes documentation page, we explain other ways you can run remotes.)

It will take a few minutes for the image to pull the first time. After that, if all goes well, a window like the one below will soon pop up. Your agent, which is just pressing the up arrow repeatedly, is now playing a Flash racing game called Dusk Drive. Your agent is programmatically controlling a VNC client, connected to a VNC server running inside of a Docker container in the cloud, rendering a headless Chrome with Flash enabled:

https://github.com/openai/universe/blob/master/doc/dusk-drive.png?raw=true

You can even connect your own VNC client to the environment, either just to observe or to interfere with your agent. Our flashgames and gym-core images conveniently bundle a browser-based VNC client, which can be accessed at http://localhost:15900/viewer/?password=openai. If you're on Mac, connecting to a VNC server is as easy as running: open vnc://localhost:5900.

(If using docker-machine, you'll need to replace "localhost" with the IP address of your Docker daemon, and use openai as the password.)

Breaking down the example

So we managed to run an agent, what did all the code actually mean? We'll go line-by-line through the example.

  • First, we import the gym library, which is the base on which Universe is built. We also import universe, which registers all the Universe environments.
import gym
import universe # register the universe environments
  • Next, we create the environment instance. Behind the scenes, gym looks up the registration for flashgames.DuskDrive-v0, and instantiates a VNCEnv object which has been wrapped to add a few useful diagnostics and utilities. The VNCEnv object is the client part of the environment, and it is not yet connected to a remote.
env = gym.make('flashgames.DuskDrive-v0')
  • The call to configure() connects the client to a remote environment server. When called with configure(remotes=1), Universe will automatically create a Docker image running locally on your computer. The local client connects to the remote using VNC. (More information on client-remote communication can be found in the page on universe internal communication protocols. More on configuring remotes is at remotes.)
env.configure(remotes=1)
  • When starting a new environment, you call env.reset(). Universe environments run in real-time, rather than stepping synchronously with the agent's actions, so reset is asynchronous and returns immediately. Since the environment will not have waited to finish connecting to the VNC server before returning, the initial observations from reset will be None to indicate that there is not yet a valid observation.

    Similarly, the environment keeps running in the background even if the agent does not call env.step(). This means that an agent that successfully learns from a Universe environment cannot take "thinking breaks": it must keep sending actions to the environment at all times.

    Additionally, Universe introduces the vectorized Gym API. Rather than controlling a single environment at a time, the agent can control a fixed-size vector of n environments, each with its own remote. The return value from reset is therefore a vector of observations. For more information, see the separate page on environment semantics)

observation_n = env.reset()
  • At each step() call, the agent submits a vector of actions; one for each environment instance it is controlling. Each VNC action is a list of events; above, each action is the single event "press the ArrowUp key". The agent could press and release the key in one action by instead submitting [('KeyEvent', 'ArrowUp', True), ('KeyEvent', 'ArrowUp', False)] for each observation.

    In fact, the agent could largely have the same effect by just submitting ('KeyEvent', 'ArrowUp', True) once and then calling env.step([[] for ob in observation_n]) thereafter, without ever releasing the key using ('KeyEvent', 'ArrowUp', False). The browser running inside the remote would continue to statefully represent the arrow key as being pressed. Sending other unrelated keypresses would not disrupt the up arrow keypress; only explicitly releasing the key would cancel it. There's one slight subtlety: when the episode resets, the browser will reset, and will forget about the keypress; you'd need to submit a new ArrowUp at the start of each episode.

action_n = [[('KeyEvent', 'ArrowUp', True)] for ob in observation_n]
  • After we submit the action to the environment and render one frame, step() returns a list of observations, a list of rewards, a list of "done" booleans indicating whether the episode has ended, and then finally an info dictionary of the form {'n': [{}, ...]}, in which you can access the info for environment i as info['n'][i].

    Each environment's info message contains useful diagnostic information, including latency data, client and remote timings, VNC update counts, and reward message counts.

observation_n, reward_n, done_n, info = env.step(action_n)
env.render()
  • We call step in what looks like a busy loop. In reality, there is a Throttle wrapper on the client which defaults to a target frame rate of 60fps, or one frame every 16.7ms. If you call it more frequently than that, step will sleep with any leftover time.

We are using pytest for tests. You can run them via:

pytest

Run pytest --help for useful options, such as pytest -s (disables output capture) or pytest -k <expression> (runs only specific tests).

More documentation not covered in this README can be found in the doc folder of this repository.

If you encounter a problem that is not addressed in this README page or in the extra docs, then try our wiki page of solutions to common problems - and add to it if your solution isn't there!

You can also search through the issues on this repository and our discussion board to see if another user has posted about the same problem or to ask for help from the community.

If you still can't solve your problem after trying all of the above steps, please post an issue on this repository.

  • Get started training RL algorithms! You can try out the Universe Starter Agent, an implementation of the A3C algorithm that can solve several VNC environments.
  • For more information on how to manage remotes, see the separate documentation page on remotes.
  • Sign up for a beta to get early access to upcoming Universe releases, such as tools to integrate new Universe environments or a dataset of recorded human demonstrations.

Changelog

  • 2017-02-08: The old location for wrappers.SafeActionSpace has been moved to wrappers.experimental.SafeActionSpace. SoftmaxClickMouse has also been moved to wrappers.experimental.SoftmaxClickMouse
  • 2017-01-08: The wrappers.SafeActionSpace has been moved to wrappers.experimental.SafeActionSpace. The old location will remain with a deprecation warning until 2017-02-08.
  • 2016-12-27: BACKWARDS INCOMPATIBILITY: The gym monitor is now a wrapper. Rather than starting monitoring as env.monitor.start(directory), envs are now wrapped as follows: env = wrappers.Monitor(env, directory). This change is on master and will be released with 0.21.0.

universe's People

Contributors

albertstartup avatar alexandercbooth avatar catherio avatar colinmorris avatar crizcraig avatar damodei avatar gdb avatar html5cat avatar jamesweakley avatar jeremyschlatter avatar jietang avatar jonasschneider avatar jonathathan avatar karpathy avatar manuel-delverme avatar mhodgson avatar nottombrown avatar siemanko avatar tambetm avatar tlbtlbtlb avatar vra avatar yazinsai avatar zuzoovn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

universe's Issues

egg_info failed with error code 1

raph@raph-VirtualBox:~/universe$ pip install -e .Obtaining file:///home/raph/universe
Complete output from command python setup.py egg_info:
running egg_info
writing requirements to universe.egg-info/requires.txt
writing universe.egg-info/PKG-INFO
writing top-level names to universe.egg-info/top_level.txt
writing dependency_links to universe.egg-info/dependency_links.txt
warning: manifest_maker: standard file '-c' not found

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/raph/universe/setup.py", line 26, in <module>
    'atari': 'gym[atari]',
  File "/usr/lib/python2.7/distutils/core.py", line 151, in setup
    dist.run_commands()
  File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "/usr/lib/python2.7/dist-packages/setuptools/command/egg_info.py", line 186, in run
    self.find_sources()
  File "/usr/lib/python2.7/dist-packages/setuptools/command/egg_info.py", line 209, in find_sources
    mm.run()
  File "/usr/lib/python2.7/dist-packages/setuptools/command/egg_info.py", line 293, in run
    self.add_defaults()
  File "/usr/lib/python2.7/dist-packages/setuptools/command/egg_info.py", line 322, in add_defaults
    sdist.add_defaults(self)
  File "/usr/lib/python2.7/dist-packages/setuptools/command/sdist.py", line 127, in add_defaults
    for _, src_dir, _, filenames in build_py.data_files:
  File "/usr/lib/python2.7/dist-packages/setuptools/command/build_py.py", line 65, in __getattr__
    self.data_files = self._get_data_files()
  File "/usr/lib/python2.7/dist-packages/setuptools/command/build_py.py", line 79, in _get_data_files
    return list(map(self._get_pkg_data_files, self.packages or ()))
  File "/usr/lib/python2.7/dist-packages/setuptools/command/build_py.py", line 91, in _get_pkg_data_files
    for file in self.find_data_files(package, src_dir)
  File "/usr/lib/python2.7/dist-packages/setuptools/command/build_py.py", line 98, in find_data_files
    + self.package_data.get(package, []))
TypeError: can only concatenate list (not "str") to list

----------------------------------------

Command "python setup.py egg_info" failed with error code 1 in /home/raph/universe/

gym.error.UnregisteredEnv: No registered env with id: flashgames.DuskDrive-v0

[2016-12-05 10:11:34,087] Making new env: flashgames.DuskDrive-v0
Traceback (most recent call last):
File "/usr/local/lib/python3.5/dist-packages/gym/envs/registration.py", line 106, in spec
return self.env_specs[id]
KeyError: 'flashgames.DuskDrive-v0'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "main.py", line 2, in
import universe # register the universe environments
File "/home/r2d2/tmp/main.py", line 4, in
env = gym.make('flashgames.DuskDrive-v0')
File "/usr/local/lib/python3.5/dist-packages/gym/envs/registration.py", line 130, in make
return registry.make(id)
File "/usr/local/lib/python3.5/dist-packages/gym/envs/registration.py", line 94, in make
spec = self.spec(id)
File "/usr/local/lib/python3.5/dist-packages/gym/envs/registration.py", line 116, in spec
raise error.UnregisteredEnv('No registered env with id: {}'.format(id))
gym.error.UnregisteredEnv: No registered env with id: flashgames.DuskDrive-v0

'Run your first agent' example code hangs on download

Running the example code on MacOSX with anaconda. import universe is successful, but the program hangs when downloading the flash game content.

screen shot 2016-12-06 at 10 48 41 pm

This same issue is also seen when running pytest. Upon cancelling the download with a keyboard interrupt an import error for 'atari_py' is seen.

screen shot 2016-12-07 at 12 05 04 am

Failed to initialize EGL: EGL is not or could not be initialized

Hi,

I successfully follow the README to download various universe packages and docker installation. I can download the docker images when type "sudo python random-agent.py" but i receive the following error

"failed to initialize glfw: APIUnavailable: EGL: Failed to initialize EGL: EGL is not or could not be initialized"

Can you please help me how to fix this problem?

Thanks,

Ben

Attached is the log:

[2016-12-12 20:54:41,327] Making new env: flashgames.NeonRace-v0
[2016-12-12 20:54:41,329] Writing logs to file: /tmp/universe-15402.log
[2016-12-12 20:54:41,336] [0] Creating container: image=quay.io/openai/universe.flashgames:0.20.7. Run the same thing by hand as: docker run -p 5909:5900 -p 15909:15900 --cap-add SYS_ADMIN --ipc host --privileged quay.io/openai/universe.flashgames:0.20.7
universe-RMMsiy-0 | Setting VNC and rewarder password: openai
universe-RMMsiy-0 | [Mon Dec 12 12:54:42 UTC 2016] Waiting for /tmp/.X11-unix/X0 to be created (try 1/10)
universe-RMMsiy-0 | [Mon Dec 12 12:54:43 UTC 2016] [/usr/local/bin/sudoable-env-setup] Disabling outbound network traffic for none
universe-RMMsiy-0 | [init] [2016-12-12 12:54:43,030] PID 55 launched with command ['sudo', '-H', '-u', 'nobody', 'DISPLAY=:0', 'DBUS_SESSION_BUS_ADDRESS=/dev/null', '/app/universe-envs/controlplane/bin/controlplane.py', '--rewarder-port=15901']
universe-RMMsiy-0 | [init] [2016-12-12 12:54:43,031] init detected end of child process 23 with exit code 0, not killed by signal
universe-RMMsiy-0 | WebSocket server settings:
universe-RMMsiy-0 | - Listen on :5898
universe-RMMsiy-0 | - Flash security policy server
universe-RMMsiy-0 | - No SSL/TLS support (no cert file)
universe-RMMsiy-0 | - proxying from :5898 to localhost:5900
universe-RMMsiy-0 | [2016-12-12 12:54:43,536] [INFO:root] Starting play_controlplane.py with the following: command=['/app/universe-envs/controlplane/bin/controlplane.py', '--rewarder-port=15901'] args=Namespace(bot_demonstration=False, demonstration=False, env_id=None, idle_timeout=None, integrator_mode=False, no_env=False, no_rewarder=False, no_scorer=False, no_vexpect=False, remotes='vnc://127.0.0.1:5900', rewarder_fps=60, rewarder_port=15901, verbosity=0) env=environ({'PATH': '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin', 'HOSTNAME': 'f5d99c73c4e3', 'SUDO_USER': 'root', 'LOGNAME': 'nobody', 'DBUS_SESSION_BUS_ADDRESS': '/dev/null', 'USER': 'nobody', 'SUDO_UID': '0', 'SUDO_GID': '0', 'HOME': '/nonexistent', 'SUDO_COMMAND': '/app/universe-envs/controlplane/bin/controlplane.py --rewarder-port=15901', 'DISPLAY': ':0', 'TERM': 'xterm', 'USERNAME': 'nobody', 'SHELL': '/usr/sbin/nologin', 'MAIL': '/var/mail/nobody'})
universe-RMMsiy-0 | [2016-12-12 12:54:43,536] [INFO:root] [EnvStatus] Changing env_state: None (env_id=None) -> None (env_id=None) (episode_id: 0->0, fps=60)
universe-RMMsiy-0 | [2016-12-12 12:54:43,536] [INFO:universe.rewarder.remote] Starting Rewarder on port=15901
universe-RMMsiy-0 | [2016-12-12 12:54:43,538] [INFO:universe.extra.universe.wrappers.logger] Running VNC environments with Logger set to print_frequency=5. To change this, pass "print_frequency=k" or "print_frequency=None" to "env.configure".
universe-RMMsiy-0 | [2016-12-12 12:54:43,540] [INFO:universe.envs.vnc_env] Using the golang VNC implementation
universe-RMMsiy-0 | [2016-12-12 12:54:43,540] [INFO:universe.envs.vnc_env] Using VNCSession arguments: {'fine_quality_level': 50, 'compress_level': 9, 'encoding': 'zrle', 'subsample_level': 2, 'start_timeout': 7}. (Customize by running "env.configure(vnc_kwargs={...})"
universe-RMMsiy-0 | [2016-12-12 12:54:43,540] [INFO:universe.envs.vnc_env] Printed stats will ignore clock skew. (This usually makes sense only when the environment and agent are on the same machine.)
universe-RMMsiy-0 | [2016-12-12 12:54:43,542] [INFO:universe.envs.vnc_env] [0] Connecting to environment: vnc://127.0.0.1:5900 password=openai. Use the browser-based VNC client: http://None/viewer/?password=openai
universe-RMMsiy-0 | [2016-12-12 12:54:43,542] [INFO:universe.extra.universe.envs.vnc_env] [0] Connecting to environment details: vnc_address=127.0.0.1:5900 vnc_password=openai rewarder_address=None rewarder_password=openai
universe-RMMsiy-0 | 2016/12/12 12:54:43 I1212 12:54:43.542602 56 gymvnc.go:417] [0:127.0.0.1:5900] opening connection to VNC server
universe-RMMsiy-0 | [2016-12-12 12:54:43,542] [INFO:root] [EnvStatus] Changing env_state: None (env_id=None) -> resetting (env_id=None) (episode_id: 0->1, fps=60)
universe-RMMsiy-0 | [2016-12-12 12:54:43,542] [INFO:root] [MainThread] Env state: env_id=None episode_id=1
universe-RMMsiy-0 | 2016/12/12 12:54:43 I1212 12:54:43.549981 56 gymvnc.go:550] [0:127.0.0.1:5900] connection established
universe-RMMsiy-0 | [Mon Dec 12 12:54:43 UTC 2016] [/usr/local/bin/sudoable-env-setup] Disabling outbound network traffic for none
universe-RMMsiy-0 | [2016-12-12 12:54:43,565] [INFO:gym_flashgames.launcher] [MainThread] Launching new Chrome process (attempt 0/10)
universe-RMMsiy-0 | [2016-12-12 12:54:43,565] [INFO:root] Replacing selenium_wrapper_server since we currently do it at every episode boundary
universe-RMMsiy-0 | [2016-12-12 12:54:43,675] [selenium_wrapper_server] Calling webdriver.Chrome()
[2016-12-12 20:54:43,976] Using the golang VNC implementation
[2016-12-12 20:54:43,977] Using VNCSession arguments: {'subsample_level': 2, 'start_timeout': 7, 'fine_quality_level': 50, 'encoding': 'tight'}. (Customize by running "env.configure(vnc_kwargs={...})"
[2016-12-12 20:54:43,979] [0] Connecting to environment: vnc://localhost:5909 password=openai. Use the browser-based VNC client: http://localhost:15909/viewer/?password=openai
2016/12/12 20:54:43 I1212 20:54:43.980002 15402 gymvnc.go:417] [0:localhost:5909] opening connection to VNC server
universe-RMMsiy-0 | [init] [2016-12-12 12:54:43,950] init detected end of child process 17 with exit code 0, not killed by signal
2016/12/12 20:54:43 I1212 20:54:43.983501 15402 gymvnc.go:550] [0:localhost:5909] connection established
universe-RMMsiy-0 | [2016-12-12 12:54:43,976] [INFO:universe.rewarder.remote] Client connecting: peer=tcp4:127.0.0.1:57764 observer=True
universe-RMMsiy-0 | [2016-12-12 12:54:43,976] [INFO:universe.rewarder.remote] WebSocket connection established
universe-RMMsiy-0 | [2016-12-12 12:54:43,977] [INFO:universe.rewarder.remote] WebSocket connection closed: connection was closed uncleanly (peer dropped the TCP connection without previous WebSocket closing handshake)
universe-RMMsiy-0 | [2016-12-12 12:54:43,977] [INFO:universe.rewarder.remote] [Twisted] Non-active client disconnected
universe-RMMsiy-0 | [2016-12-12 12:54:43,987] [INFO:universe.rewarder.remote] Client connecting: peer=tcp4:127.0.0.1:57774 observer=False
universe-RMMsiy-0 | [2016-12-12 12:54:43,988] [INFO:universe.rewarder.remote] WebSocket connection established
2016/12/12 20:54:44 C1212 20:54:44.034406 15402 vncgl.go:40] failed to initialize glfw: APIUnavailable: EGL: Failed to initialize EGL: EGL is not or could not be initialized

import universe error in python

my platform is ubuntu 16
I have installed:

pip install numpy
sudo apt-get install golang libjpeg-turbo8-dev make

git clone https://github.com/openai/universe.git
cd universe
pip install -e .

But when I add "import universe" in python, error is :

Python 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.

import gym
import universe
Traceback (most recent call last):
File "", line 1, in
File "/home/ubuntu/universe/universe/init.py", line 20, in
import universe.scoreboard
File "/home/ubuntu/universe/universe/scoreboard/init.py", line 49, in
scorer=scoring.RewardPerTime(),
AttributeError: 'module' object has no attribute 'RewardPerTime'

Could you give me help to solve it?

Go-vnc fails to start Debian

When running the demo code everything works fine until it tries to connect to the vnc server, then everything crashes.

import gym
import universe 

env = gym.make('flashgames.DuskDrive-v0')
env.configure(remotes=1)
observation_n = env.reset()

while True:
  action_n = [[('KeyEvent', 'ArrowUp', True)] for ob in observation_n] 
  observation_n, reward_n, done_n, info = env.step(action_n)
  env.render()

The output:

[2016-12-06 13:18:32,101] Making new env: flashgames.DuskDrive-v0
[2016-12-06 13:18:32,103] Writing logs to file: /tmp/universe-11006.log
[2016-12-06 13:18:32,111] [0] Creating container: image=quay.io/openai/universe.flashgames:0.20.1. Run the same thing by hand as: docker run -p 5900:5900 -p 15900:15900 --cap-add SYS_ADMIN --ipc host --privileged quay.io/openai/universe.flashgames:0.20.1
[2016-12-06 13:18:32,910] Remote closed: address=localhost:5900
[2016-12-06 13:18:32,912] At least one sockets was closed by the remote. Sleeping 1s...
universe-tWuaTp-0 | Setting VNC and rewarder password: openai
universe-tWuaTp-0 | [Tue Dec  6 12:18:33 UTC 2016] Waiting for /tmp/.X11-unix/X0 to be created (try 1/10)
universe-tWuaTp-0 | [Tue Dec  6 12:18:33 UTC 2016] [/usr/local/bin/sudoable-env-setup] Disabling outbound network traffic for none
universe-tWuaTp-0 | [init] [2016-12-06 12:18:33,023] PID 53 launched with command ['sudo', '-H', '-u', 'nobody', 'DISPLAY=:0', 'DBUS_SESSION_BUS_ADDRESS=/dev/null', '/app/universe-envs/controlplane/bin/controlplane.py', '--rewarder-port=15901']
universe-tWuaTp-0 | [init] [2016-12-06 12:18:33,024] init detected end of child process 20 with exit code 0, not killed by signal
universe-tWuaTp-0 | WebSocket server settings:
universe-tWuaTp-0 |   - Listen on :5898
universe-tWuaTp-0 |   - Flash security policy server
universe-tWuaTp-0 |   - No SSL/TLS support (no cert file)
universe-tWuaTp-0 |   - proxying from :5898 to localhost:5900
universe-tWuaTp-0 | [2016-12-06 12:18:33,481] [INFO:root] Starting play_controlplane.py with the following: command=['/app/universe-envs/controlplane/bin/controlplane.py', '--rewarder-port=15901'] args=Namespace(bot_demonstration=False, demonstration=False, env_id=None, idle_timeout=None, integrator_mode=False, no_env=False, no_rewarder=False, no_scorer=False, no_vexpect=False, remotes='vnc://127.0.0.1:5900', rewarder_fps=60, rewarder_port=15901, verbosity=0) env=environ({'DBUS_SESSION_BUS_ADDRESS': '/dev/null', 'SUDO_GID': '0', 'HOSTNAME': '50631ace7f21', 'PATH': '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin', 'USER': 'nobody', 'LOGNAME': 'nobody', 'DISPLAY': ':0', 'HOME': '/nonexistent', 'SHELL': '/usr/sbin/nologin', 'SUDO_USER': 'root', 'TERM': 'xterm', 'MAIL': '/var/mail/nobody', 'USERNAME': 'nobody', 'SUDO_COMMAND': '/app/universe-envs/controlplane/bin/controlplane.py --rewarder-port=15901', 'SUDO_UID': '0'})
universe-tWuaTp-0 | [2016-12-06 12:18:33,481] [INFO:root] [EnvStatus] Changing env_state: None (env_id=None) -> None (env_id=None) (episode_id: 0->0, fps=60)
universe-tWuaTp-0 | [2016-12-06 12:18:33,481] [INFO:universe.rewarder.remote] Starting Rewarder on port=15901
universe-tWuaTp-0 | [2016-12-06 12:18:33,484] [INFO:universe.extra.universe.wrappers.logger] Running VNC environments with Logger set to print_frequency=5. To change this, pass "print_frequency=k" or "print_frequency=None" to "env.configure".
universe-tWuaTp-0 | [2016-12-06 12:18:33,485] [INFO:universe.envs.vnc_env] Using the golang VNC implementation
universe-tWuaTp-0 | [2016-12-06 12:18:33,485] [INFO:universe.envs.vnc_env] Using VNCSession arguments: {'start_timeout': 7, 'encoding': 'zrle', 'fine_quality_level': 50, 'compress_level': 9, 'subsample_level': 2}. (Customize by running "env.configure(vnc_kwargs={...})"
universe-tWuaTp-0 | [2016-12-06 12:18:33,485] [INFO:universe.envs.vnc_env] Printed stats will ignore clock skew. (This usually makes sense only when the environment and agent are on the same machine.)
universe-tWuaTp-0 | [2016-12-06 12:18:33,487] [INFO:universe.envs.vnc_env] [0] Connecting to environment: vnc://127.0.0.1:5900 password=openai. Use the browser-based VNC client: http://None/viewer/?password=openai
universe-tWuaTp-0 | [2016-12-06 12:18:33,487] [INFO:universe.extra.universe.envs.vnc_env] [0] Connecting to environment details: vnc_address=127.0.0.1:5900 vnc_password=openai rewarder_address=None rewarder_password=openai
universe-tWuaTp-0 | 2016/12/06 12:18:33 I1206 12:18:33.487607 55 gymvnc.go:417] [0:127.0.0.1:5900] opening connection to VNC server
universe-tWuaTp-0 | [2016-12-06 12:18:33,487] [INFO:root] [EnvStatus] Changing env_state: None (env_id=None) -> resetting (env_id=None) (episode_id: 0->1, fps=60)
universe-tWuaTp-0 | [2016-12-06 12:18:33,487] [INFO:root] [MainThread] Env state: env_id=None episode_id=1
universe-tWuaTp-0 | 2016/12/06 12:18:33 I1206 12:18:33.492326 55 gymvnc.go:550] [0:127.0.0.1:5900] connection established
universe-tWuaTp-0 | [Tue Dec  6 12:18:33 UTC 2016] [/usr/local/bin/sudoable-env-setup] Disabling outbound network traffic for none
universe-tWuaTp-0 | [2016-12-06 12:18:33,500] [INFO:gym_flashgames.launcher] [MainThread] Launching new Chrome process (attempt 0/10)
universe-tWuaTp-0 | [2016-12-06 12:18:33,500] [INFO:root] Replacing selenium_wrapper_server since we currently do it at every episode boundary
universe-tWuaTp-0 | [2016-12-06 12:18:33,605] [selenium_wrapper_server] Calling webdriver.Chrome()
[2016-12-06 13:18:33,915] Remote closed: address=localhost:5900
[2016-12-06 13:18:33,915] Remote closed: address=localhost:15900
[2016-12-06 13:18:33,916] At least one sockets was closed by the remote. Sleeping 1s...
universe-tWuaTp-0 | [2016-12-06 12:18:33,920] [INFO:universe.rewarder.remote] Client connecting: peer=tcp4:127.0.0.1:48346 observer=True
universe-tWuaTp-0 | [2016-12-06 12:18:33,920] [INFO:universe.rewarder.remote] WebSocket connection established
universe-tWuaTp-0 | [init] [2016-12-06 12:18:34,007] init detected end of child process 17 with exit code 0, not killed by signal
universe-tWuaTp-0 | [init] [2016-12-06 12:18:34,679] init detected end of child process 107 with exit code 0, not killed by signal
universe-tWuaTp-0 | [init] [2016-12-06 12:18:34,679] init detected end of child process 106 with exit code 0, not killed by signal
[2016-12-06 13:18:34,917] Using the golang VNC implementation
[2016-12-06 13:18:34,918] Using VNCSession arguments: {'subsample_level': 2, 'start_timeout': 7, 'fine_quality_level': 50, 'encoding': 'tight'}. (Customize by running "env.configure(vnc_kwargs={...})"
[2016-12-06 13:18:34,921] [0] Connecting to environment: vnc://localhost:5900 password=openai. Use the browser-based VNC client: http://localhost:15900/viewer/?password=openai
2016/12/06 13:18:34 I1206 13:18:34.922135 11006 gymvnc.go:417] [0:localhost:5900] opening connection to VNC server
2016/12/06 13:18:34 I1206 13:18:34.92497 11006 gymvnc.go:550] [0:localhost:5900] connection established
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x7f3130eaceb0 pc=0x7f3130eaceb0]

runtime stack:
runtime.throw(0x7f31724358df, 0x2a)
	/usr/lib/go-1.7/src/runtime/panic.go:566 +0x97
runtime.sigpanic()
	/usr/lib/go-1.7/src/runtime/sigpanic_unix.go:12 +0x2d0

goroutine 17 [syscall, locked to thread]:
runtime.cgocall(0x7f317241e09a, 0xc420040bc0, 0xc400000000)
	/usr/lib/go-1.7/src/runtime/cgocall.go:131 +0x116 fp=0xc420040b78 sp=0xc420040b38
github.com/openai/go-vncdriver/vendor/github.com/go-gl/glfw/v3.2/glfw._Cfunc_glfwCreateWindow(0x30000000400, 0x562236267a10, 0x0, 0x0, 0x0)
	??:0 +0x50 fp=0xc420040bc0 sp=0xc420040b78
github.com/openai/go-vncdriver/vendor/github.com/go-gl/glfw/v3.2/glfw.CreateWindow(0x400, 0x300, 0xc42009c0c0, 0x25, 0x0, 0x0, 0x0, 0x0, 0x0)
	/tmp/pip-build-ma4U7r/go-vncdriver/.build/src/github.com/openai/go-vncdriver/vendor/github.com/go-gl/glfw/v3.2/glfw/window.go:272 +0x1ad fp=0xc420040c48 sp=0xc420040bc0
github.com/openai/go-vncdriver/vncgl.(*VNCGL).Init(0xc4205ae0c0, 0x7f3103000400, 0xc42009c0c0, 0x25, 0xc4200f0000, 0xc0000, 0xc0000, 0xc420012b80, 0xc42059a114)
	/tmp/pip-build-ma4U7r/go-vncdriver/.build/src/github.com/openai/go-vncdriver/vncgl/vncgl.go:58 +0x6f fp=0xc420040cb8 sp=0xc420040c48
github.com/openai/go-vncdriver/gymvnc.(*VNCSession).Render(0xc420092140, 0xc420014c00, 0xc42059a114, 0x1)
	/tmp/pip-build-ma4U7r/go-vncdriver/.build/src/github.com/openai/go-vncdriver/gymvnc/gymvnc.go:244 +0x285 fp=0xc420040d50 sp=0xc420040cb8
github.com/openai/go-vncdriver/gymvnc.(*VNCBatch).Render(0xc4200300a8, 0xc42059a114, 0x1, 0x0, 0x0, 0x7f31726ee880)
	/tmp/pip-build-ma4U7r/go-vncdriver/.build/src/github.com/openai/go-vncdriver/gymvnc/gymvnc.go:655 +0x7a fp=0xc420040db8 sp=0xc420040d50
main.GoVNCDriver_VNCSession_render(0x7f3166b73b90, 0x7f3165865910, 0x0, 0x0)
	/tmp/pip-build-ma4U7r/go-vncdriver/.build/src/github.com/openai/go-vncdriver/main.go:412 +0x2c9 fp=0xc420040e50 sp=0xc420040db8
main._cgoexpwrap_f4a5df30d895_GoVNCDriver_VNCSession_render(0x7f3166b73b90, 0x7f3165865910, 0x0, 0x0)
	??:0 +0x74 fp=0xc420040e80 sp=0xc420040e50
runtime.call32(0x0, 0x7ffe501fab98, 0x7ffe501fac50, 0x20)
	/usr/lib/go-1.7/src/runtime/asm_amd64.s:479 +0x4e fp=0xc420040eb0 sp=0xc420040e80
runtime.cgocallbackg1(0x0)
	/usr/lib/go-1.7/src/runtime/cgocall.go:283 +0x1a1 fp=0xc420040f28 sp=0xc420040eb0
runtime.cgocallbackg(0x0)
	/usr/lib/go-1.7/src/runtime/cgocall.go:170 +0x86 fp=0xc420040f90 sp=0xc420040f28
runtime.cgocallback_gofunc(0x0, 0x0, 0x0, 0x0)
	/usr/lib/go-1.7/src/runtime/asm_amd64.s:728 +0x71 fp=0xc420040fb0 sp=0xc420040f90
runtime.goexit()
	/usr/lib/go-1.7/src/runtime/asm_amd64.s:2086 +0x1 fp=0xc420040fb8 sp=0xc420040fb0

goroutine 5 [select]:
github.com/openai/go-vncdriver/gymvnc.(*VNCSession).connect(0xc420092140, 0xc42001a540, 0x0, 0x0)
	/tmp/pip-build-ma4U7r/go-vncdriver/.build/src/github.com/openai/go-vncdriver/gymvnc/gymvnc.go:566 +0x1137
github.com/openai/go-vncdriver/gymvnc.(*VNCSession).start.func1(0xc420092140, 0xc42001a540)
	/tmp/pip-build-ma4U7r/go-vncdriver/.build/src/github.com/openai/go-vncdriver/gymvnc/gymvnc.go:149 +0x37
created by github.com/openai/go-vncdriver/gymvnc.(*VNCSession).start
	/tmp/pip-build-ma4U7r/go-vncdriver/.build/src/github.com/openai/go-vncdriver/gymvnc/gymvnc.go:157 +0x8f

goroutine 18 [syscall, locked to thread]:
runtime.goexit()
	/usr/lib/go-1.7/src/runtime/asm_amd64.s:2086 +0x1

goroutine 6 [chan receive]:
github.com/openai/go-vncdriver/gymvnc.(*VNCSession).start.func2(0xc420092140)
	/tmp/pip-build-ma4U7r/go-vncdriver/.build/src/github.com/openai/go-vncdriver/gymvnc/gymvnc.go:160 +0x61
created by github.com/openai/go-vncdriver/gymvnc.(*VNCSession).start
	/tmp/pip-build-ma4U7r/go-vncdriver/.build/src/github.com/openai/go-vncdriver/gymvnc/gymvnc.go:165 +0xb1

goroutine 20 [IO wait]:
net.runtime_pollWait(0x7f316400ff00, 0x72, 0x8)
	/usr/lib/go-1.7/src/runtime/netpoll.go:160 +0x5b
net.(*pollDesc).wait(0xc4200ca1b0, 0x72, 0xc4203449f8, 0xc420012300)
	/usr/lib/go-1.7/src/net/fd_poll_runtime.go:73 +0x3a
net.(*pollDesc).waitRead(0xc4200ca1b0, 0x7f31728416c0, 0xc420012300)
	/usr/lib/go-1.7/src/net/fd_poll_runtime.go:78 +0x36
net.(*netFD).Read(0xc4200ca150, 0xc4203343f8, 0x1, 0x8, 0x0, 0x7f31728416c0, 0xc420012300)
	/usr/lib/go-1.7/src/net/fd_unix.go:243 +0x1a3
net.(*conn).Read(0xc4200d6020, 0xc4203343f8, 0x1, 0x8, 0x0, 0x0, 0x0)
	/usr/lib/go-1.7/src/net/net.go:173 +0x72
io.ReadAtLeast(0x7f316400ffc0, 0xc4200d6020, 0xc4203343f8, 0x1, 0x8, 0x1, 0x7f3172706440, 0x1, 0xc4203343f8)
	/usr/lib/go-1.7/src/io/io.go:307 +0xa6
io.ReadFull(0x7f316400ffc0, 0xc4200d6020, 0xc4203343f8, 0x1, 0x8, 0xc420334022, 0xc4203343a0, 0x7f31727665a0)
	/usr/lib/go-1.7/src/io/io.go:325 +0x5a
encoding/binary.Read(0x7f316400ffc0, 0xc4200d6020, 0x7f3172843ce0, 0x7f3172873670, 0x7f31726f7b80, 0xc4203343f0, 0x0, 0x0)
	/usr/lib/go-1.7/src/encoding/binary/binary.go:168 +0x122
github.com/openai/go-vncdriver/vncclient.(*ClientConn).mainLoop(0xc4200ea000)
	/tmp/pip-build-ma4U7r/go-vncdriver/.build/src/github.com/openai/go-vncdriver/vncclient/client.go:567 +0x46c
created by github.com/openai/go-vncdriver/vncclient.Client
	/tmp/pip-build-ma4U7r/go-vncdriver/.build/src/github.com/openai/go-vncdriver/vncclient/client.go:115 +0x18a

goroutine 21 [select]:
github.com/openai/go-vncdriver/gymvnc.(*VNCSession).connect.func2(0xc4200d4060, 0xc420092140)
	/tmp/pip-build-ma4U7r/go-vncdriver/.build/src/github.com/openai/go-vncdriver/gymvnc/gymvnc.go:472 +0x21f
created by github.com/openai/go-vncdriver/gymvnc.(*VNCSession).connect
	/tmp/pip-build-ma4U7r/go-vncdriver/.build/src/github.com/openai/go-vncdriver/gymvnc/gymvnc.go:477 +0x6b9

goroutine 7 [select]:
github.com/openai/go-vncdriver/gymvnc.(*VNCSession).maintainFrameBuffer(0xc420092140, 0xc42001a540, 0x0, 0x0)
	/tmp/pip-build-ma4U7r/go-vncdriver/.build/src/github.com/openai/go-vncdriver/gymvnc/gymvnc.go:359 +0x61d
github.com/openai/go-vncdriver/gymvnc.(*VNCSession).connect.func3(0xc420092140, 0xc42001a540)
	/tmp/pip-build-ma4U7r/go-vncdriver/.build/src/github.com/openai/go-vncdriver/gymvnc/gymvnc.go:555 +0x37
created by github.com/openai/go-vncdriver/gymvnc.(*VNCSession).connect
	/tmp/pip-build-ma4U7r/go-vncdriver/.build/src/github.com/openai/go-vncdriver/gymvnc/gymvnc.go:563 +0xc63
Aborted

go_vncdriver was installed without OpenGL support

When run demo example,

universe-wyFLTW-0 | [init] [2016-12-10 11:06:54,947] init detected end of child process 20 with exit code 0, not killed by signal
Traceback (most recent call last):
  File "test_universe.py", line 11, in <module>
    env.render()
[2016-12-10 19:06:54,992] [0:localhost:5900] Waiting on rewarder: Could not establish rewarder TCP connection. Retry in 1s (slept 0s/7s): connection was closed uncleanly (WebSocket connection upgrade failed (502 - BadGateway))
  File "/home/hzxiahouzuoxin/miniconda2/lib/python2.7/site-packages/gym/core.py", line 192, in render
    return self._render(mode=mode, close=close)
  File "/home/hzxiahouzuoxin/miniconda2/lib/python2.7/site-packages/gym/core.py", line 342, in _render
    return self.env.render(mode, close)
  File "/home/hzxiahouzuoxin/miniconda2/lib/python2.7/site-packages/gym/core.py", line 192, in render
    return self._render(mode=mode, close=close)
  File "/home/hzxiahouzuoxin/Prjs/universe/universe/wrappers/render.py", line 49, in _render
    return self.env.render(mode=mode, *args, **kwargs)
  File "/home/hzxiahouzuoxin/miniconda2/lib/python2.7/site-packages/gym/core.py", line 192, in render
    return self._render(mode=mode, close=close)
  File "/home/hzxiahouzuoxin/miniconda2/lib/python2.7/site-packages/gym/core.py", line 342, in _render
    return self.env.render(mode, close)
  File "/home/hzxiahouzuoxin/miniconda2/lib/python2.7/site-packages/gym/core.py", line 192, in render
    return self._render(mode=mode, close=close)
  File "/home/hzxiahouzuoxin/Prjs/universe/universe/envs/vnc_env.py", line 533, in _render
    self.vnc_session.render(self.connection_names[0])
go_vncdriver.Error: /tmp/pip-build-kAJF1h/go-vncdriver/.build/src/github.com/openai/go-vncdriver/main.go:387: go_vncdriver was installed without OpenGL support. See https://github.com/openai/go-vncdriver for details on how debug.

env.action_space.sample() Equivalent?

I'm just messing around with gym-core.PongDeterministic-v3 and was wondering how does one do the equivalent of a random action for the Universe agent.

json: cannot unmarshal bool into Go value of type docker.APIErrors

I cannot get universe to start. I get the following error

jonathan@ouran-high-school-host-club ~/P/p/universe-test> python test.py                 
[2016-12-05 13:22:27,398] Making new env: flashgames.DuskDrive-v0
[2016-12-05 13:22:27,402] Writing logs to file: /tmp/universe-583.log
[2016-12-05 13:22:27,413] [0] Creating container: image=quay.io/openai/universe.flashgames:0.20.1. Run the same thing by hand as: docker run -p 5900:5900 -p 15900:15900 --cap-add SYS_ADMIN --ipc host --privileged quay.io/openai/universe.flashgames:0.20.1
[2016-12-05 13:22:27,417] Image quay.io/openai/universe.flashgames:0.20.1 not present locally; pulling
Trying to pull repository quay.io/openai/universe.flashgames ... 
Traceback (most recent call last):
  File "test.py", line 6, in <module>
    env.configure(remotes=1) # automatically creates a local docker container
  File "/usr/lib/python2.7/site-packages/gym/core.py", line 246, in configure
    self._configure(*args, **kwargs)
  File "/home/jonathan/Programming/python3/universe/universe/vectorized/core.py", line 57, in _configure
    super(Wrapper, self)._configure(**kwargs)
  File "/usr/lib/python2.7/site-packages/gym/core.py", line 350, in _configure
    return self.env.configure(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/gym/core.py", line 246, in configure
    self._configure(*args, **kwargs)
  File "/home/jonathan/Programming/python3/universe/universe/wrappers/render.py", line 18, in _configure
    super(Render, self)._configure(**kwargs)
  File "/home/jonathan/Programming/python3/universe/universe/vectorized/core.py", line 57, in _configure
    super(Wrapper, self)._configure(**kwargs)
  File "/usr/lib/python2.7/site-packages/gym/core.py", line 350, in _configure
    return self.env.configure(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/gym/core.py", line 246, in configure
    self._configure(*args, **kwargs)
  File "/home/jonathan/Programming/python3/universe/universe/wrappers/throttle.py", line 27, in _configure
    super(Throttle, self)._configure(**kwargs)
  File "/home/jonathan/Programming/python3/universe/universe/vectorized/core.py", line 57, in _configure
    super(Wrapper, self)._configure(**kwargs)
  File "/usr/lib/python2.7/site-packages/gym/core.py", line 350, in _configure
    return self.env.configure(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/gym/core.py", line 246, in configure
    self._configure(*args, **kwargs)
  File "/home/jonathan/Programming/python3/universe/universe/envs/vnc_env.py", line 192, in _configure
    api_key=api_key,
  File "/home/jonathan/Programming/python3/universe/universe/remotes/build.py", line 19, in build
    n=n,
  File "/home/jonathan/Programming/python3/universe/universe/remotes/docker_remote.py", line 54, in __init__
    self._start()
  File "/home/jonathan/Programming/python3/universe/universe/remotes/docker_remote.py", line 81, in _start
    [instance.start() for instance in self.instances]
  File "/home/jonathan/Programming/python3/universe/universe/remotes/docker_remote.py", line 219, in start
    self._spawn()
  File "/home/jonathan/Programming/python3/universe/universe/remotes/docker_remote.py", line 249, in _spawn
    self._pull_image()
  File "/home/jonathan/Programming/python3/universe/universe/remotes/docker_remote.py", line 258, in _pull_image
    progress_stream.stream_output(output, sys.stdout))
  File "/home/jonathan/Programming/python3/universe/universe/remotes/compose/progress_stream.py", line 23, in stream_output
    print_output_event(event, stream, is_terminal)
  File "/home/jonathan/Programming/python3/universe/universe/remotes/compose/progress_stream.py", line 58, in print_output_event
    raise StreamOutputError(event['errorDetail']['message'])
universe.remotes.compose.progress_stream.StreamOutputError: json: cannot unmarshal bool into Go value of type docker.APIErrors

Provide list of available actions in documentation

The list of available KeyEvents and the format of PointerEvents should be available and visible in the documentation (if they are please close this ticket, I couldn't find them).

KeyEvents appear to be here:

KEYMAP = {
'bsp': KEY_BackSpace,
'tab': KEY_Tab,
'return': KEY_Return,
'enter': KEY_Return,
'esc': KEY_Escape,
'ins': KEY_Insert,
'delete': KEY_Delete,
'del': KEY_Delete,
'home': KEY_Home,
'end': KEY_End,
'pgup': KEY_PageUp,
'pgdn': KEY_PageDown,
'ArrowLeft': KEY_Left,
'left': KEY_Left,
'ArrowUp': KEY_Up,
'up': KEY_Up,
'ArrowRight': KEY_Right,
'right': KEY_Right,
'ArrowDown': KEY_Down,
'down': KEY_Down,
'slash': KEY_BackSlash,
'bslash': KEY_BackSlash,
'fslash': KEY_ForwardSlash,
'spacebar': KEY_SpaceBar,
'space': KEY_SpaceBar,
'sb': KEY_SpaceBar,
'f1': KEY_F1,
'f2': KEY_F2,
'f3': KEY_F3,
'f4': KEY_F4,
'f5': KEY_F5,
'f6': KEY_F6,
'f7': KEY_F7,
'f8': KEY_F8,
'f9': KEY_F9,
'f10': KEY_F10,
'f11': KEY_F11,
'f12': KEY_F12,
'f13': KEY_F13,
'f14': KEY_F14,
'f15': KEY_F15,
'f16': KEY_F16,
'f17': KEY_F17,
'f18': KEY_F18,
'f19': KEY_F19,
'f20': KEY_F20,
'lshift': KEY_ShiftLeft,
'shift': KEY_ShiftLeft,
'rshift': KEY_ShiftRight,
'lctrl': KEY_ControlLeft,
'ctrl': KEY_ControlLeft,
'rctrl': KEY_ControlRight,
'lmeta': KEY_MetaLeft,
'meta': KEY_MetaLeft,
'rmeta': KEY_MetaRight,
'lalt': KEY_AltLeft,
'alt': KEY_AltLeft,
'ralt': KEY_AltRight,
'scrlk': KEY_Scroll_Lock,
'sysrq': KEY_Sys_Req,
'numlk': KEY_Num_Lock,
'caplk': KEY_Caps_Lock,
'pause': KEY_Pause,
'lsuper': KEY_Super_L,
'super': KEY_Super_L,
'rsuper': KEY_Super_R,
'lhyper': KEY_Hyper_L,
'hyper': KEY_Hyper_L,
'rhyper': KEY_Hyper_R,
'kp0': KEY_KP_0,
'kp1': KEY_KP_1,
'kp2': KEY_KP_2,
'kp3': KEY_KP_3,
'kp4': KEY_KP_4,
'kp5': KEY_KP_5,
'kp6': KEY_KP_6,
'kp7': KEY_KP_7,
'kp8': KEY_KP_8,
'kp9': KEY_KP_9,
'kpenter': KEY_KP_Enter,
}

And the format of pointer events appears to be vnc.PointerEvent(x, y, button_mask) but this is just from reading the code.

For KeyEvents should it be spaces.KeyEvent.by_name('c', down=True) I'm not sure what format to use?

Link not found

script.py is the basic file in the readme.

  • I just pulled in the latest code from master and ran this installation. I have configured universe correctly, since importing it works, so I'm sure configuration is not an issue. Please tell me if I am doing something wrong.
 flipswitch@devcenter ๎‚ฐ ~ ๎‚ฐ python
Python 3.5.2 |Anaconda 4.2.0 (64-bit)| (default, Jul  2 2016, 17:53:06) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import universe
>>> import gym
>>> exit()

 flipswitch@devcenter ๎‚ฐ ~ ๎‚ฐ cd junkyard/universe-example 

 flipswitch@devcenter ๎‚ฐ ~/junkyard/universe-example ๎‚ฐ ls
script.py

 flipswitch@devcenter ๎‚ฐ ~/junkyard/universe-example ๎‚ฐ python script.py 
[2016-12-06 03:31:29,706] Making new env: flashgames.DuskDrive-v0
[2016-12-06 03:31:29,723] Writing logs to file: /tmp/universe-10115.log
[2016-12-06 03:31:29,724] Configuring VNCEnv
[2016-12-06 03:31:29,751] [0] Creating container: image=quay.io/openai/universe.flashgames:0.19.45. Run the same thing by hand as: docker run -p 10000:5900 -p 10001:15900 --ipc host --cap-add NET_ADMIN --cap-add SYS_ADMIN quay.io/openai/universe.flashgames:0.19.45
[2016-12-06 03:31:29,756] Image quay.io/openai/universe.flashgames:0.19.45 not present locally; pulling
Pulling repository quay.io/openai/universe.flashgames
Traceback (most recent call last):
  File "/opt/anaconda3/lib/python3.5/site-packages/docker/client.py", line 170, in _raise_for_status
    response.raise_for_status()
  File "/opt/anaconda3/lib/python3.5/site-packages/requests/models.py", line 844, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: http+docker://localunixsocket/v1.24/containers/create?name=universe-gXhBpc-0

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/flipswitch/junkyard/universe/universe/remotes/docker_remote.py", line 243, in _spawn
    container = self._spawn_container()
  File "/home/flipswitch/junkyard/universe/universe/remotes/docker_remote.py", line 282, in _spawn_container
    'com.openai.automanaged': 'true',
  File "/opt/anaconda3/lib/python3.5/site-packages/docker/api/container.py", line 135, in create_container
    return self.create_container_from_config(config, name)
  File "/opt/anaconda3/lib/python3.5/site-packages/docker/api/container.py", line 146, in create_container_from_config
    return self._result(res, True)
  File "/opt/anaconda3/lib/python3.5/site-packages/docker/client.py", line 178, in _result
    self._raise_for_status(response)
  File "/opt/anaconda3/lib/python3.5/site-packages/docker/client.py", line 173, in _raise_for_status
    raise errors.NotFound(e, response, explanation=explanation)
docker.errors.NotFound: 404 Client Error: Not Found ("b'{"message":"No such image: quay.io/openai/universe.flashgames:0.19.45"}'")

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "script.py", line 5, in <module>
    env.configure(remotes=1)  # automatically creates a local docker container
  File "/opt/anaconda3/lib/python3.5/site-packages/gym/core.py", line 246, in configure
    self._configure(*args, **kwargs)
  File "/home/flipswitch/junkyard/universe/universe/vectorized/core.py", line 57, in _configure
    super(Wrapper, self)._configure(**kwargs)
  File "/opt/anaconda3/lib/python3.5/site-packages/gym/core.py", line 350, in _configure
    return self.env.configure(*args, **kwargs)
  File "/opt/anaconda3/lib/python3.5/site-packages/gym/core.py", line 246, in configure
    self._configure(*args, **kwargs)
  File "/home/flipswitch/junkyard/universe/universe/wrappers/render.py", line 18, in _configure
    super(Render, self)._configure(**kwargs)
  File "/home/flipswitch/junkyard/universe/universe/vectorized/core.py", line 57, in _configure
    super(Wrapper, self)._configure(**kwargs)
  File "/opt/anaconda3/lib/python3.5/site-packages/gym/core.py", line 350, in _configure
    return self.env.configure(*args, **kwargs)
  File "/opt/anaconda3/lib/python3.5/site-packages/gym/core.py", line 246, in configure
    self._configure(*args, **kwargs)
  File "/home/flipswitch/junkyard/universe/universe/wrappers/throttle.py", line 27, in _configure
    super(Throttle, self)._configure(**kwargs)
  File "/home/flipswitch/junkyard/universe/universe/vectorized/core.py", line 57, in _configure
    super(Wrapper, self)._configure(**kwargs)
  File "/opt/anaconda3/lib/python3.5/site-packages/gym/core.py", line 350, in _configure
    return self.env.configure(*args, **kwargs)
  File "/opt/anaconda3/lib/python3.5/site-packages/gym/core.py", line 246, in configure
    self._configure(*args, **kwargs)
  File "/home/flipswitch/junkyard/universe/universe/envs/vnc_env.py", line 180, in _configure
    api_key=api_key,
  File "/home/flipswitch/junkyard/universe/universe/remotes/build.py", line 19, in build
    n=n,
  File "/home/flipswitch/junkyard/universe/universe/remotes/docker_remote.py", line 54, in __init__
    self._start()
  File "/home/flipswitch/junkyard/universe/universe/remotes/docker_remote.py", line 81, in _start
    [instance.start() for instance in self.instances]
  File "/home/flipswitch/junkyard/universe/universe/remotes/docker_remote.py", line 81, in <listcomp>
    [instance.start() for instance in self.instances]
  File "/home/flipswitch/junkyard/universe/universe/remotes/docker_remote.py", line 219, in start
    self._spawn()
  File "/home/flipswitch/junkyard/universe/universe/remotes/docker_remote.py", line 249, in _spawn
    self._pull_image()
  File "/home/flipswitch/junkyard/universe/universe/remotes/docker_remote.py", line 258, in _pull_image
    progress_stream.stream_output(output, sys.stdout))
  File "/home/flipswitch/junkyard/universe/universe/remotes/compose/progress_stream.py", line 23, in stream_output
    print_output_event(event, stream, is_terminal)
  File "/home/flipswitch/junkyard/universe/universe/remotes/compose/progress_stream.py", line 58, in print_output_event
    raise StreamOutputError(event['errorDetail']['message'])
universe.remotes.compose.progress_stream.StreamOutputError: Tag 0.19.45 not found in repository quay.io/openai/universe.flashgames
 flipswitch@devcenter ๎‚ฐ ~/junkyard/universe-example ๎‚ฐ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
 flipswitch@devcenter ๎‚ฐ ~/junkyard/universe-example ๎‚ฐ 

This is /tmp/universe-10115.log

[2016-12-06 03:31:29,724] Configuring VNCEnv
[2016-12-06 03:31:29,751] [0] Creating container: image=quay.io/openai/universe.flashgames:0.19.45. Run the same thing by hand as: docker run -p 10000:5900 -p 10001:15900 --ipc host --cap-add NET_ADMIN --cap-add SYS_ADMIN quay.io/openai/universe.flashgames:0.19.45
[2016-12-06 03:31:29,756] Image quay.io/openai/universe.flashgames:0.19.45 not present locally; pulling

Agent example crashes after clicking play

OS: Ubuntu 16.04

I have followed all the install instructions for openai/universe and have installed docker. The example game "flashgames.DuskDrive-v0" initially loads fine but always crashed around the "Play" button. I tried a few other games such as "flashgames.LuxUltimate-v0", "flashgames.NeonRaceLvl6-v0" and "flashgames.Cruisin-v0" which all worked 100%.

The following games just crash before the start button: "flashgames.HeatRushUsa-v0", "flashgames.DuskDrive-v0"

The below error is for "flashgames.DuskDrive-v0":

[2016-12-05 15:35:21,349] Making new env: flashgames.DuskDrive-v0
[2016-12-05 15:35:21,353] Writing logs to file: /tmp/universe-17257.log
[2016-12-05 15:35:21,362] [0] Creating container: image=quay.io/openai/universe.flashgames:0.20.1. Run the same thing by hand as: docker run -p 5900:5900 -p 15900:15900 --cap-add SYS_ADMIN --ipc host --privileged quay.io/openai/universe.flashgames:0.20.1
[2016-12-05 15:35:22,366] Remote closed: address=localhost:15900
[2016-12-05 15:35:22,368] At least one sockets was closed by the remote. Sleeping 1s...
universe-OPnD83-0 | Setting VNC and rewarder password: openai
universe-OPnD83-0 | [Mon Dec  5 13:35:22 UTC 2016] Waiting for /tmp/.X11-unix/X0 to be created (try 1/10)
universe-OPnD83-0 | [Mon Dec  5 13:35:22 UTC 2016] [/usr/local/bin/sudoable-env-setup] Disabling outbound network traffic for none
universe-OPnD83-0 | [init] [2016-12-05 13:35:22,454] PID 54 launched with command ['sudo', '-H', '-u', 'nobody', 'DISPLAY=:0', 'DBUS_SESSION_BUS_ADDRESS=/dev/null', '/app/universe-envs/controlplane/bin/controlplane.py', '--rewarder-port=15901']
universe-OPnD83-0 | [init] [2016-12-05 13:35:22,454] init detected end of child process 25 with exit code 0, not killed by signal
universe-OPnD83-0 | WebSocket server settings:
universe-OPnD83-0 |   - Listen on :5898
universe-OPnD83-0 |   - Flash security policy server
universe-OPnD83-0 |   - No SSL/TLS support (no cert file)
universe-OPnD83-0 |   - proxying from :5898 to localhost:5900
universe-OPnD83-0 | [2016-12-05 13:35:22,892] [INFO:root] Starting play_controlplane.py with the following: command=['/app/universe-envs/controlplane/bin/controlplane.py', '--rewarder-port=15901'] args=Namespace(bot_demonstration=False, demonstration=False, env_id=None, idle_timeout=None, integrator_mode=False, no_env=False, no_rewarder=False, no_scorer=False, no_vexpect=False, remotes='vnc://127.0.0.1:5900', rewarder_fps=60, rewarder_port=15901, verbosity=0) env=environ({'TERM': 'xterm', 'MAIL': '/var/mail/nobody', 'SHELL': '/usr/sbin/nologin', 'PATH': '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin', 'SUDO_USER': 'root', 'LOGNAME': 'nobody', 'USER': 'nobody', 'SUDO_UID': '0', 'DISPLAY': ':0', 'HOSTNAME': '6b4b7d7f0631', 'HOME': '/nonexistent', 'DBUS_SESSION_BUS_ADDRESS': '/dev/null', 'SUDO_COMMAND': '/app/universe-envs/controlplane/bin/controlplane.py --rewarder-port=15901', 'USERNAME': 'nobody', 'SUDO_GID': '0'})
universe-OPnD83-0 | [2016-12-05 13:35:22,892] [INFO:root] [EnvStatus] Changing env_state: None (env_id=None) -> None (env_id=None) (episode_id: 0->0, fps=60)
universe-OPnD83-0 | [2016-12-05 13:35:22,892] [INFO:universe.rewarder.remote] Starting Rewarder on port=15901
universe-OPnD83-0 | [2016-12-05 13:35:22,895] [INFO:universe.extra.universe.wrappers.logger] Running VNC environments with Logger set to print_frequency=5. To change this, pass "print_frequency=k" or "print_frequency=None" to "env.configure".
universe-OPnD83-0 | [2016-12-05 13:35:22,896] [INFO:universe.envs.vnc_env] Using the golang VNC implementation
universe-OPnD83-0 | [2016-12-05 13:35:22,896] [INFO:universe.envs.vnc_env] Using VNCSession arguments: {'fine_quality_level': 50, 'encoding': 'zrle', 'start_timeout': 7, 'subsample_level': 2, 'compress_level': 9}. (Customize by running "env.configure(vnc_kwargs={...})"
universe-OPnD83-0 | [2016-12-05 13:35:22,896] [INFO:universe.envs.vnc_env] Printed stats will ignore clock skew. (This usually makes sense only when the environment and agent are on the same machine.)
universe-OPnD83-0 | [2016-12-05 13:35:22,898] [INFO:universe.envs.vnc_env] [0] Connecting to environment: vnc://127.0.0.1:5900 password=openai. Use the browser-based VNC client: http://None/viewer/?password=openai
universe-OPnD83-0 | [2016-12-05 13:35:22,898] [INFO:universe.extra.universe.envs.vnc_env] [0] Connecting to environment details: vnc_address=127.0.0.1:5900 vnc_password=openai rewarder_address=None rewarder_password=openai
universe-OPnD83-0 | 2016/12/05 13:35:22 I1205 13:35:22.899036 55 gymvnc.go:417] [0:127.0.0.1:5900] opening connection to VNC server
universe-OPnD83-0 | [2016-12-05 13:35:22,899] [INFO:root] [EnvStatus] Changing env_state: None (env_id=None) -> resetting (env_id=None) (episode_id: 0->1, fps=60)
universe-OPnD83-0 | [2016-12-05 13:35:22,899] [INFO:root] [MainThread] Env state: env_id=None episode_id=1
universe-OPnD83-0 | 2016/12/05 13:35:22 I1205 13:35:22.902228 55 gymvnc.go:550] [0:127.0.0.1:5900] connection established
universe-OPnD83-0 | [Mon Dec  5 13:35:22 UTC 2016] [/usr/local/bin/sudoable-env-setup] Disabling outbound network traffic for none
universe-OPnD83-0 | [2016-12-05 13:35:22,917] [INFO:gym_flashgames.launcher] [MainThread] Launching new Chrome process (attempt 0/10)
universe-OPnD83-0 | [2016-12-05 13:35:22,917] [INFO:root] Replacing selenium_wrapper_server since we currently do it at every episode boundary
universe-OPnD83-0 | [2016-12-05 13:35:23,007] [selenium_wrapper_server] Calling webdriver.Chrome()
[2016-12-05 15:35:23,369] Remote closed: address=localhost:5900
[2016-12-05 15:35:23,369] Remote closed: address=localhost:15900
[2016-12-05 15:35:23,369] At least one sockets was closed by the remote. Sleeping 1s...
universe-OPnD83-0 | [2016-12-05 13:35:23,372] [INFO:universe.rewarder.remote] Client connecting: peer=tcp4:127.0.0.1:42064 observer=True
universe-OPnD83-0 | [2016-12-05 13:35:23,372] [INFO:universe.rewarder.remote] WebSocket connection established
universe-OPnD83-0 | [init] [2016-12-05 13:35:23,414] init detected end of child process 16 with exit code 0, not killed by signal
universe-OPnD83-0 | [2016-12-05 13:35:24,244] [selenium_wrapper_server] Call to webdriver.Chrome() completed: 1.24s
universe-OPnD83-0 | [2016-12-05 13:35:24,245] [INFO:gym_flashgames.launcher] [MainThread] Navigating browser to url=http://localhost
[2016-12-05 15:35:24,371] Using the golang VNC implementation
[2016-12-05 15:35:24,371] Using VNCSession arguments: {'subsample_level': 2, 'start_timeout': 7, 'fine_quality_level': 50, 'encoding': 'tight'}. (Customize by running "env.configure(vnc_kwargs={...})"
[2016-12-05 15:35:24,372] [0] Connecting to environment: vnc://localhost:5900 password=openai. Use the browser-based VNC client: http://localhost:15900/viewer/?password=openai
2016/12/05 15:35:24 I1205 15:35:24.373164 17257 gymvnc.go:417] [0:localhost:5900] opening connection to VNC server
universe-OPnD83-0 | [2016-12-05 13:35:24,372] [INFO:universe.rewarder.remote] WebSocket connection closed: connection was closed uncleanly (peer dropped the TCP connection without previous WebSocket closing handshake)
2016/12/05 15:35:24 I1205 15:35:24.38598 17257 gymvnc.go:550] [0:localhost:5900] connection established
universe-OPnD83-0 | [2016-12-05 13:35:24,687] [INFO:universe.rewarder.remote] Client connecting: peer=tcp4:127.0.0.1:42126 observer=False
universe-OPnD83-0 | [2016-12-05 13:35:24,687] [INFO:universe.rewarder.remote] WebSocket connection established
universe-OPnD83-0 | [2016-12-05 13:35:25,146] [INFO:root] [EnvStatus] Changing env_state: resetting (env_id=None) -> running (env_id=None) (episode_id: 1->1, fps=60)
universe-OPnD83-0 | Manhole[1480944925.1541]: Patched <built-in function fork> and <built-in function fork>.
universe-OPnD83-0 | Manhole[1480944925.1545]: Manhole UDS path: /tmp/manhole-55
universe-OPnD83-0 | Manhole[1480944925.1548]: Waiting for new connection (in pid:55) ...
universe-OPnD83-0 | [2016-12-05 13:35:27,901] [INFO:universe.wrappers.logger] Stats for the past 5.00s: vnc_updates_ps=2.2 n=1 reaction_time=None observation_lag=None action_lag=None reward_ps=0.0 reward_total=0.0 vnc_bytes_ps[total]=351133.9 vnc_pixels_ps[total]=530146.2 reward_lag=None rewarder_message_lag=None fps=33
universe-OPnD83-0 | [2016-12-05 13:35:30,150] [INFO:universe.pyprofile] [pyprofile] period=5.00s timers={"vnc_env.VNCEnv.vnc_session.step": {"mean": "103.39us", "calls": 301, "std": "248.40us"}, "rewarder.sleep": {"mean": "16.30ms", "calls": 300, "std": "275.40us"}, "rewarder.frame": {"mean": "16.75ms", "calls": 300, "std": "28.51us"}, "rewarder.compute_reward": {"mean": "225.51us", "calls": 301, "std": "270.79us"}} counters={} gauges={} (export_time=74.63us)
universe-OPnD83-0 | [2016-12-05 13:35:30,151] [INFO:universe.rewarder.remote] [Rewarder] Over past 5.00s, sent 1 reward messages to agent: reward=0 reward_min=0 reward_max=0 done=False info={'rewarder.profile': '<607 bytes>', 'rewarder.vnc.updates.bytes': None, 'rewarder.vnc.updates.pixels': None, 'rewarder.vnc.updates.n': None}
universe-OPnD83-0 | [2016-12-05 13:35:32,917] [INFO:universe.wrappers.logger] Stats for the past 5.02s: vnc_updates_ps=0.0 n=1 reaction_time=None observation_lag=None action_lag=None reward_ps=0.0 reward_total=0.0 vnc_bytes_ps[total]=0.0 vnc_pixels_ps[total]=0.0 reward_lag=None rewarder_message_lag=None fps=60
universe-OPnD83-0 | [2016-12-05 13:35:35,167] [INFO:universe.pyprofile] [pyprofile] period=5.02s timers={"vnc_env.VNCEnv.vnc_session.step": {"mean": "86.31us", "calls": 301, "std": "35.10us"}, "rewarder.sleep": {"mean": "16.33ms", "calls": 301, "std": "70.47us"}, "rewarder.frame": {"mean": "16.74ms", "calls": 301, "std": "11.31us"}, "rewarder.compute_reward": {"mean": "202.39us", "calls": 301, "std": "55.66us"}} counters={"agent_conn.reward": {"mean": 0.0, "std": 0, "calls": 1}} gauges={} (export_time=94.41us)
universe-OPnD83-0 | [2016-12-05 13:35:35,167] [INFO:universe.rewarder.remote] [Rewarder] Over past 5.02s, sent 1 reward messages to agent: reward=0 reward_min=0 reward_max=0 done=False info={'rewarder.profile': '<677 bytes>', 'rewarder.vnc.updates.bytes': None, 'rewarder.vnc.updates.pixels': None, 'rewarder.vnc.updates.n': None}
universe-OPnD83-0 | [2016-12-05 13:35:37,934] [INFO:universe.wrappers.logger] Stats for the past 5.02s: vnc_updates_ps=0.0 n=1 reaction_time=None observation_lag=None action_lag=None reward_ps=0.0 reward_total=0.0 vnc_bytes_ps[total]=0.0 vnc_pixels_ps[total]=0.0 reward_lag=None rewarder_message_lag=None fps=60
[2016-12-05 15:35:38,816] [0:localhost:5900] Sending reset for env_id=flashgames.DuskDrive-v0 fps=60 episode_id=0
universe-OPnD83-0 | [2016-12-05 13:35:38,807] [INFO:universe.rewarder.remote] CONNECTION STATUS: Marking connection as active: observer=False peer=tcp4:127.0.0.1:42126 total_conns=1
universe-OPnD83-0 | [2016-12-05 13:35:38,816] [INFO:universe.rewarder.remote] Received reset message: {'headers': {'message_id': 10, 'episode_id': '0', 'sent_at': 1480944938.816497}, 'method': 'v0.env.reset', 'body': {'env_id': 'flashgames.DuskDrive-v0', 'fps': 60, 'seed': None}}
universe-OPnD83-0 | [2016-12-05 13:35:38,821] [INFO:root] [EnvStatus] Changing env_state: running (env_id=None) -> resetting (env_id=flashgames.DuskDrive-v0) (episode_id: 1->2, fps=60)
universe-OPnD83-0 | [2016-12-05 13:35:38,821] [ERROR:root] Closing server (via subprocess.close()) and all chromes (via pkill chromedriver || :; pkill chrome || :)
universe-OPnD83-0 | [2016-12-05 13:35:38,821] [INFO:root] [Rewarder] Blocking until env finishes resetting
universe-OPnD83-0 | [init] [2016-12-05 13:35:38,830] init detected end of child process 91 with exit code 0, killed by SIGTERM: 15
universe-OPnD83-0 | [2016-12-05 13:35:38,832] [INFO:root] [EnvController] RESET CAUSE: changing out environments due to v0.env.reset (with episode_id=0): flashgames.DuskDrive-v0 -> flashgames.DuskDrive-v0 (new episode_id=2 fps=60)
universe-OPnD83-0 | [2016-12-05 13:35:38,832] [INFO:root] [EnvController] Env state: env_id=flashgames.DuskDrive-v0 episode_id=2
universe-OPnD83-0 | [Mon Dec  5 13:35:38 UTC 2016] [/usr/local/bin/sudoable-env-setup] Allowing outbound network traffic to non-private IPs for git-lfs. (Going to fetch files via git lfs.)
universe-OPnD83-0 | [unpack-lfs] [2016-12-05 13:35:38,920] Fetching files: git lfs pull -I git-lfs/flashgames.DuskDrive-v0.tar.gz
universe-OPnD83-0 | [init] [2016-12-05 13:35:39,006] init detected end of child process 102 with exit code 0, not killed by signal
universe-OPnD83-0 | [init] [2016-12-05 13:35:39,006] init detected end of child process 94 with exit code 0, not killed by signal
universe-OPnD83-0 | [init] [2016-12-05 13:35:39,006] init detected end of child process 103 with exit code 0, not killed by signal
universe-OPnD83-0 | [unpack-lfs] [2016-12-05 13:36:28,253] Finished running git lfs pull
universe-OPnD83-0 | [unpack-lfs] [2016-12-05 13:36:28,253] git-lfs fetch succeeded
universe-OPnD83-0 | [unpack-lfs] [2016-12-05 13:36:28,253] Unpacking files for flashgames.DuskDrive-v0
universe-OPnD83-0 | [unpack-lfs] [2016-12-05 13:36:28,312] Merged 5 files from /tmp/flashgames.DuskDrive-v0/public -> /app/universe-envs/flashgames/build/public/flashgames.DuskDrive-v0
universe-OPnD83-0 | [unpack-lfs] [2016-12-05 13:36:28,313] Merged 20 files from /tmp/flashgames.DuskDrive-v0/private -> /app/universe-envs/flashgames/build/private/flashgames.DuskDrive-v0
universe-OPnD83-0 | [unpack-lfs] [2016-12-05 13:36:28,313] Completed unpack for flashgames.DuskDrive-v0 in 49.394s
universe-OPnD83-0 | [Mon Dec  5 13:36:28 UTC 2016] [/usr/local/bin/sudoable-env-setup] [debug] unpack-lfs completed with status code: 0. Created completion file: /usr/local/openai/git-lfs/flashgames.DuskDrive-v0
universe-OPnD83-0 | [Mon Dec  5 13:36:28 UTC 2016] [/usr/local/bin/sudoable-env-setup] Disabling outbound network traffic for flashgames.DuskDrive-v0
universe-OPnD83-0 | [2016-12-05 13:36:28,439] [INFO:gym_flashgames.launcher] [EnvController] Launching new Chrome process (attempt 0/10)
universe-OPnD83-0 | [2016-12-05 13:36:28,440] [INFO:root] Replacing selenium_wrapper_server since we currently do it at every episode boundary
universe-OPnD83-0 | [2016-12-05 13:36:28,530] [selenium_wrapper_server] Calling webdriver.Chrome()
universe-OPnD83-0 | [2016-12-05 13:36:29,795] [selenium_wrapper_server] Call to webdriver.Chrome() completed: 1.27s
universe-OPnD83-0 | [2016-12-05 13:36:29,802] [INFO:gym_flashgames.launcher] [EnvController] Navigating browser to url=http://localhost/flashgames.DuskDrive-v0
universe-OPnD83-0 | [2016-12-05 13:36:30,014] [INFO:root] [EnvController] Running command: /app/universe-envs/controlplane/bin/play_vexpect -e flashgames.DuskDrive-v0 -r vnc://127.0.0.1:5900 -d
universe-OPnD83-0 | [2016-12-05 13:36:30,914] [play_vexpect] Using the golang VNC implementation
universe-OPnD83-0 | [2016-12-05 13:36:30,914] [play_vexpect] Using VNCSession arguments: {'subsample_level': 2, 'start_timeout': 7, 'compress_level': 0, 'encoding': 'zrle', 'fine_quality_level': 50}. (Customize by running "env.configure(vnc_kwargs={...})"
universe-OPnD83-0 | [2016-12-05 13:36:30,914] [play_vexpect] Printed stats will ignore clock skew. (This usually makes sense only when the environment and agent are on the same machine.)
universe-OPnD83-0 | [2016-12-05 13:36:30,952] [play_vexpect] [0] Connecting to environment: vnc://127.0.0.1:5900 password=openai. Use the browser-based VNC client: http://None/viewer/?password=openai
universe-OPnD83-0 | [2016-12-05 13:36:30,952] [play_vexpect] [0] Connecting to environment details: vnc_address=127.0.0.1:5900 vnc_password=openai rewarder_address=None rewarder_password=openai
universe-OPnD83-0 | 2016/12/05 13:36:30 I1205 13:36:30.952508 707 gymvnc.go:417] [0:127.0.0.1:5900] opening connection to VNC server
universe-OPnD83-0 | 2016/12/05 13:36:30 I1205 13:36:30.956262 707 gymvnc.go:550] [0:127.0.0.1:5900] connection established
universe-OPnD83-0 | [2016-12-05 13:36:31,442] [play_vexpect] Waiting for any of [MaskState<initializing0>] to activate
universe-OPnD83-0 | 2016/12/05 13:36:36 I1205 13:36:36.518733 55 gymvnc.go:374] [0:127.0.0.1:5900] update queue max of 60 reached; pausing further updates
universe-OPnD83-0 | [2016-12-05 13:36:38,542] [play_vexpect] Applying transition: ClickTransition<initializing0->['initializing1'] x=429 y=539 buttonmask=1> for active state MaskState<initializing0>. (Summary: plausible_states=MaskState<initializing0> distance_m=0.048 match_time_m=186us)
universe-OPnD83-0 | [2016-12-05 13:36:38,559] [play_vexpect] Waiting for any of [MaskState<initializing1>] to activate (or whether any of [MaskState<initializing0>] are still active)
[2016-12-05 15:36:38,814] [0:localhost:5900] Attached to running environment without reset
[2016-12-05 15:36:38,818] [0] Closing rewarder connection
Traceback (most recent call last):
  File "openai.py", line 10, in <module>
    observation_n, reward_n, done_n, info = env.step(action_n)
  File "/home/grant/.local/lib/python2.7/site-packages/gym/core.py", line 122, in step
    observation, reward, done, info = self._step(action)
  File "/home/grant/SDK/universe/universe/wrappers/timer.py", line 20, in _step
    observation_n, reward_n, done_n, info = self.env.step(action_n)
  File "/home/grant/.local/lib/python2.7/site-packages/gym/core.py", line 122, in step
    observation, reward, done, info = self._step(action)
  File "/home/grant/SDK/universe/universe/wrappers/render.py", line 30, in _step
    observation_n, reward_n, done_n, info_n = self.env.step(action_n)
  File "/home/grant/.local/lib/python2.7/site-packages/gym/core.py", line 122, in step
    observation, reward, done, info = self._step(action)
  File "/home/grant/SDK/universe/universe/wrappers/throttle.py", line 117, in _step
    observation_n, reward_n, done_n, info = self._substep(action_n)
  File "/home/grant/SDK/universe/universe/wrappers/throttle.py", line 132, in _substep
    observation_n, reward_n, done_n, info = self.env.step(action_n)
  File "/home/grant/.local/lib/python2.7/site-packages/gym/core.py", line 122, in step
    observation, reward, done, info = self._step(action)
  File "/home/grant/SDK/universe/universe/envs/vnc_env.py", line 447, in _step
    self._handle_crashed_n(info_n)
  File "/home/grant/SDK/universe/universe/envs/vnc_env.py", line 518, in _handle_crashed_n
    raise error.Error('{}/{} environments have crashed! Most recent error: {}'.format(len(self.crashed), self.n, errors))
universe.error.Error: 1/1 environments have crashed! Most recent error: {'0': 'Rewarder session failed: Lost connection: connection was closed uncleanly (peer dropped the TCP connection without previous WebSocket closing handshake) (clean=False code=1006)'}
universe-OPnD83-0 | [2016-12-05 13:36:38,815] [INFO:universe.rewarder.remote] WebSocket connection closed: connection was closed uncleanly (peer dropped the TCP connection without previous WebSocket closing handshake)
universe-OPnD83-0 | [tigervnc] 
universe-OPnD83-0 | [tigervnc] Xvnc TigerVNC 1.7.0 - built Sep  8 2016 10:39:22
universe-OPnD83-0 | [tigervnc] Copyright (C) 1999-2016 TigerVNC Team and many others (see README.txt)
universe-OPnD83-0 | [tigervnc] See http://www.tigervnc.org for information on TigerVNC.
universe-OPnD83-0 | [tigervnc] Underlying X server release 11400000, The X.Org Foundation
universe-OPnD83-0 | [tigervnc] 
universe-OPnD83-0 | [tigervnc] Initializing built-in extension VNC-EXTENSION
universe-OPnD83-0 | [tigervnc] Initializing built-in extension Generic Event Extension
universe-OPnD83-0 | [tigervnc] Initializing built-in extension SHAPE
universe-OPnD83-0 | [tigervnc] Initializing built-in extension MIT-SHM
universe-OPnD83-0 | [tigervnc] Initializing built-in extension XInputExtension
universe-OPnD83-0 | [tigervnc] Initializing built-in extension XTEST
universe-OPnD83-0 | [tigervnc] Initializing built-in extension BIG-REQUESTS
universe-OPnD83-0 | [tigervnc] Initializing built-in extension SYNC
universe-OPnD83-0 | [tigervnc] Initializing built-in extension XKEYBOARD
universe-OPnD83-0 | [tigervnc] Initializing built-in extension XC-MISC
universe-OPnD83-0 | [tigervnc] Initializing built-in extension XINERAMA
universe-OPnD83-0 | [tigervnc] Initializing built-in extension XFIXES
universe-OPnD83-0 | [tigervnc] Initializing built-in extension RENDER
universe-OPnD83-0 | [tigervnc] Initializing built-in extension RANDR
universe-OPnD83-0 | [tigervnc] Initializing built-in extension COMPOSITE
universe-OPnD83-0 | [tigervnc] Initializing built-in extension DAMAGE
universe-OPnD83-0 | [tigervnc] Initializing built-in extension MIT-SCREEN-SAVER
universe-OPnD83-0 | [tigervnc] Initializing built-in extension DOUBLE-BUFFER
universe-OPnD83-0 | [tigervnc] Initializing built-in extension RECORD
universe-OPnD83-0 | [tigervnc] Initializing built-in extension DPMS
universe-OPnD83-0 | [tigervnc] Initializing built-in extension X-Resource
universe-OPnD83-0 | [tigervnc] Initializing built-in extension XVideo
universe-OPnD83-0 | [tigervnc] Initializing built-in extension XVideo-MotionCompensation
universe-OPnD83-0 | [tigervnc] Initializing built-in extension GLX
universe-OPnD83-0 | [tigervnc] 
universe-OPnD83-0 | [tigervnc] Mon Dec  5 13:35:22 2016
universe-OPnD83-0 | [tigervnc]  vncext:      VNC extension running!
universe-OPnD83-0 | [tigervnc]  vncext:      Listening for VNC connections on all interface(s), port 5900
universe-OPnD83-0 | [tigervnc]  vncext:      created VNC server for screen 0
universe-OPnD83-0 | [tigervnc] [dix] Could not init font path element /usr/share/fonts/X11/Type1/, removing from list!
universe-OPnD83-0 | [tigervnc] [dix] Could not init font path element /usr/share/fonts/X11/75dpi/, removing from list!
universe-OPnD83-0 | [tigervnc] [dix] Could not init font path element /usr/share/fonts/X11/100dpi/, removing from list!
universe-OPnD83-0 | [tigervnc]  Connections: accepted: 127.0.0.1::39710
universe-OPnD83-0 | [tigervnc]  SConnection: Client needs protocol version 3.8
universe-OPnD83-0 | [tigervnc]  SConnection: Client requests security type VncAuth(2)
universe-OPnD83-0 | [tigervnc]  VNCSConnST:  Server default pixel format depth 24 (32bpp) little-endian rgb888
universe-OPnD83-0 | [tigervnc]  VNCSConnST:  Client pixel format depth 24 (32bpp) little-endian bgr888
universe-OPnD83-0 | [tigervnc] 
universe-OPnD83-0 | [tigervnc] Mon Dec  5 13:35:23 2016
universe-OPnD83-0 | [tigervnc]  Connections: accepted: 172.17.0.1::44842
universe-OPnD83-0 | [tigervnc] 
universe-OPnD83-0 | [tigervnc] Mon Dec  5 13:35:24 2016
universe-OPnD83-0 | [tigervnc]  Connections: closed: 172.17.0.1::44842 (Clean disconnection)
universe-OPnD83-0 | [tigervnc]  EncodeManager: Framebuffer updates: 0
universe-OPnD83-0 | [tigervnc]  EncodeManager:   Total: 0 rects, 0 pixels
universe-OPnD83-0 | [tigervnc]  EncodeManager:          0 B (1:-nan ratio)
universe-OPnD83-0 | [tigervnc]  Connections: accepted: 172.17.0.1::44904
universe-OPnD83-0 | [tigervnc]  SConnection: Client needs protocol version 3.8
universe-OPnD83-0 | [tigervnc]  SConnection: Client requests security type VncAuth(2)
universe-OPnD83-0 | [tigervnc]  VNCSConnST:  Server default pixel format depth 24 (32bpp) little-endian rgb888
universe-OPnD83-0 | [tigervnc]  VNCSConnST:  Client pixel format depth 24 (32bpp) little-endian bgr888
universe-OPnD83-0 | [tigervnc] 
universe-OPnD83-0 | [tigervnc] Mon Dec  5 13:36:30 2016
universe-OPnD83-0 | [tigervnc]  Connections: accepted: 127.0.0.1::39954
universe-OPnD83-0 | [tigervnc]  SConnection: Client needs protocol version 3.8
universe-OPnD83-0 | [tigervnc]  SConnection: Client requests security type VncAuth(2)
universe-OPnD83-0 | [tigervnc]  VNCSConnST:  Server default pixel format depth 24 (32bpp) little-endian rgb888
universe-OPnD83-0 | [tigervnc]  VNCSConnST:  Client pixel format depth 24 (32bpp) little-endian bgr888
universe-OPnD83-0 | [tigervnc] 
universe-OPnD83-0 | [tigervnc] Mon Dec  5 13:36:38 2016
universe-OPnD83-0 | [tigervnc]  Connections: closed: 172.17.0.1::44904 (Clean disconnection)
universe-OPnD83-0 | [tigervnc]  EncodeManager: Framebuffer updates: 107
universe-OPnD83-0 | [tigervnc]  EncodeManager:   Tight:
universe-OPnD83-0 | [tigervnc]  EncodeManager:     Solid: 59 rects, 2.85646 Mpixels
universe-OPnD83-0 | [tigervnc]  EncodeManager:            944 B (1:12104.4 ratio)
universe-OPnD83-0 | [tigervnc]  EncodeManager:     Bitmap RLE: 62 rects, 1.30439 Mpixels
universe-OPnD83-0 | [tigervnc]  EncodeManager:                 8.69727 KiB (1:585.93 ratio)
[2016-12-05 15:36:39,054] Killing and removing container: id=6b4b7d7f0631ff592e1f72b043c0a350977a90cc9988ba4bacd524fd12d6ab08. (If this command errors, you can always kill all automanaged environments on this Docker daemon via: docker rm -f $(docker ps -q -a -f 'label=com.openai.automanaged=true')
universe-OPnD83-0 | [tigervnc]  Encod

Couldn't import universe without doing 'pip install -U cryptography'

Got the following error after following installation steps for each aspect (Docker, making sure every version of dependency was greater than the requirement):

AttributeError: 'FFILibrary' object has no attribute 'Cryptography_HAS_SSL_ST'

Doing pip install -U cryptography per this seems to fix the issue.

In flashgames.DuskDrive-v0 mouse jumps for some time and then environment crashes

I seem to have been able to install all the dependencies and run the following code:

import gym
import universe # register the universe environments

env = gym.make('flashgames.DuskDrive-v0')
env.configure(remotes=1) # automatically creates a local docker container
observation_n = env.reset()

while True:
  action_n = [[('KeyEvent', 'ArrowUp', True)] for ob in observation_n] # your agent here
  observation_n, reward_n, done_n, info = env.step(action_n)
  env.render()

however the result that I see is that the mouse pointer jumps in the rendered environment, and after some time the environment crashes:

https://www.youtube.com/watch?v=8WDDzbGVJ3o

the output that I get in console is as follows:

[2016-12-05 13:48:17,797] Making new env: flashgames.DuskDrive-v0
[2016-12-05 13:48:17,800] Writing logs to file: /tmp/universe-4612.log
[2016-12-05 13:48:17,809] [0] Creating container: image=quay.io/openai/universe.flashgames:0.20.1. Run the same thing by hand as: docker run -p 5900:5900 -p 15900:15900 --cap-add SYS_ADMIN --ipc host --privileged quay.io/openai/universe.flashgames:0.20.1
[2016-12-05 13:48:18,060] Remote closed: address=localhost:5900
[2016-12-05 13:48:18,062] At least one sockets was closed by the remote. Sleeping 1s...
universe-psnd10-0 | Setting VNC and rewarder password: openai
universe-psnd10-0 | [Mon Dec  5 12:48:18 UTC 2016] Waiting for /tmp/.X11-unix/X0 to be created (try 1/10)
universe-psnd10-0 | [Mon Dec  5 12:48:18 UTC 2016] [/usr/local/bin/sudoable-env-setup] Disabling outbound network traffic for none
universe-psnd10-0 | [init] [2016-12-05 12:48:18,155] PID 55 launched with command ['sudo', '-H', '-u', 'nobody', 'DISPLAY=:0', 'DBUS_SESSION_BUS_ADDRESS=/dev/null', '/app/universe-envs/controlplane/bin/controlplane.py', '--rewarder-port=15901']
universe-psnd10-0 | [init] [2016-12-05 12:48:18,156] init detected end of child process 23 with exit code 0, not killed by signal
universe-psnd10-0 | WebSocket server settings:
universe-psnd10-0 |   - Listen on :5898
universe-psnd10-0 |   - Flash security policy server
universe-psnd10-0 |   - No SSL/TLS support (no cert file)
universe-psnd10-0 |   - proxying from :5898 to localhost:5900
universe-psnd10-0 | [2016-12-05 12:48:18,710] [INFO:root] Starting play_controlplane.py with the following: command=['/app/universe-envs/controlplane/bin/controlplane.py', '--rewarder-port=15901'] args=Namespace(bot_demonstration=False, demonstration=False, env_id=None, idle_timeout=None, integrator_mode=False, no_env=False, no_rewarder=False, no_scorer=False, no_vexpect=False, remotes='vnc://127.0.0.1:5900', rewarder_fps=60, rewarder_port=15901, verbosity=0) env=environ({'SUDO_USER': 'root', 'DBUS_SESSION_BUS_ADDRESS': '/dev/null', 'USER': 'nobody', 'USERNAME': 'nobody', 'SUDO_COMMAND': '/app/universe-envs/controlplane/bin/controlplane.py --rewarder-port=15901', 'TERM': 'xterm', 'SHELL': '/usr/sbin/nologin', 'HOME': '/nonexistent', 'LOGNAME': 'nobody', 'PATH': '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin', 'SUDO_UID': '0', 'HOSTNAME': '657c3c28301b', 'SUDO_GID': '0', 'MAIL': '/var/mail/nobody', 'DISPLAY': ':0'})
universe-psnd10-0 | [2016-12-05 12:48:18,710] [INFO:root] [EnvStatus] Changing env_state: None (env_id=None) -> None (env_id=None) (episode_id: 0->0, fps=60)
universe-psnd10-0 | [2016-12-05 12:48:18,710] [INFO:universe.rewarder.remote] Starting Rewarder on port=15901
universe-psnd10-0 | [2016-12-05 12:48:18,713] [INFO:universe.extra.universe.wrappers.logger] Running VNC environments with Logger set to print_frequency=5. To change this, pass "print_frequency=k" or "print_frequency=None" to "env.configure".
universe-psnd10-0 | [2016-12-05 12:48:18,715] [INFO:universe.envs.vnc_env] Using the golang VNC implementation
universe-psnd10-0 | [2016-12-05 12:48:18,715] [INFO:universe.envs.vnc_env] Using VNCSession arguments: {'encoding': 'zrle', 'start_timeout': 7, 'fine_quality_level': 50, 'subsample_level': 2, 'compress_level': 9}. (Customize by running "env.configure(vnc_kwargs={...})"
universe-psnd10-0 | [2016-12-05 12:48:18,716] [INFO:universe.envs.vnc_env] Printed stats will ignore clock skew. (This usually makes sense only when the environment and agent are on the same machine.)
universe-psnd10-0 | [2016-12-05 12:48:18,719] [INFO:universe.envs.vnc_env] [0] Connecting to environment: vnc://127.0.0.1:5900 password=openai. Use the browser-based VNC client: http://None/viewer/?password=openai
universe-psnd10-0 | [2016-12-05 12:48:18,720] [INFO:universe.extra.universe.envs.vnc_env] [0] Connecting to environment details: vnc_address=127.0.0.1:5900 vnc_password=openai rewarder_address=None rewarder_password=openai
universe-psnd10-0 | 2016/12/05 12:48:18 I1205 12:48:18.720314 56 gymvnc.go:417] [0:127.0.0.1:5900] opening connection to VNC server
universe-psnd10-0 | [2016-12-05 12:48:18,720] [INFO:root] [EnvStatus] Changing env_state: None (env_id=None) -> resetting (env_id=None) (episode_id: 0->1, fps=60)
universe-psnd10-0 | [2016-12-05 12:48:18,720] [INFO:root] [MainThread] Env state: env_id=None episode_id=1
universe-psnd10-0 | 2016/12/05 12:48:18 I1205 12:48:18.724959 56 gymvnc.go:550] [0:127.0.0.1:5900] connection established
universe-psnd10-0 | [Mon Dec  5 12:48:18 UTC 2016] [/usr/local/bin/sudoable-env-setup] Disabling outbound network traffic for none
universe-psnd10-0 | [2016-12-05 12:48:18,745] [INFO:gym_flashgames.launcher] [MainThread] Launching new Chrome process (attempt 0/10)
universe-psnd10-0 | [2016-12-05 12:48:18,746] [INFO:root] Replacing selenium_wrapper_server since we currently do it at every episode boundary
universe-psnd10-0 | [2016-12-05 12:48:18,857] [selenium_wrapper_server] Calling webdriver.Chrome()
[2016-12-05 13:48:19,064] Remote closed: address=localhost:5900
[2016-12-05 13:48:19,064] Remote closed: address=localhost:15900
[2016-12-05 13:48:19,064] At least one sockets was closed by the remote. Sleeping 1s...
universe-psnd10-0 | [2016-12-05 12:48:19,067] [INFO:universe.rewarder.remote] Client connecting: peer=tcp4:127.0.0.1:60428 observer=True
universe-psnd10-0 | [2016-12-05 12:48:19,067] [INFO:universe.rewarder.remote] WebSocket connection established
universe-psnd10-0 | [init] [2016-12-05 12:48:19,129] init detected end of child process 17 with exit code 0, not killed by signal
[2016-12-05 13:48:20,065] Using the golang VNC implementation
[2016-12-05 13:48:20,065] Using VNCSession arguments: {'subsample_level': 2, 'start_timeout': 7, 'fine_quality_level': 50, 'encoding': 'tight'}. (Customize by running "env.configure(vnc_kwargs={...})"
[2016-12-05 13:48:20,068] [0] Connecting to environment: vnc://localhost:5900 password=openai. Use the browser-based VNC client: http://localhost:15900/viewer/?password=openai
2016/12/05 13:48:20 I1205 13:48:20.069146 4612 gymvnc.go:417] [0:localhost:5900] opening connection to VNC server
2016/12/05 13:48:20 I1205 13:48:20.071467 4612 gymvnc.go:550] [0:localhost:5900] connection established
universe-psnd10-0 | [2016-12-05 12:48:20,066] [INFO:universe.rewarder.remote] WebSocket connection closed: connection was closed uncleanly (peer dropped the TCP connection without previous WebSocket closing handshake)
universe-psnd10-0 | [2016-12-05 12:48:20,080] [INFO:universe.rewarder.remote] Client connecting: peer=tcp4:127.0.0.1:60468 observer=False
universe-psnd10-0 | [2016-12-05 12:48:20,080] [INFO:universe.rewarder.remote] WebSocket connection established
universe-psnd10-0 | [2016-12-05 12:48:20,131] [selenium_wrapper_server] Call to webdriver.Chrome() completed: 1.27s
universe-psnd10-0 | [2016-12-05 12:48:20,131] [INFO:gym_flashgames.launcher] [MainThread] Navigating browser to url=http://localhost
universe-psnd10-0 | [2016-12-05 12:48:20,375] [INFO:root] [EnvStatus] Changing env_state: resetting (env_id=None) -> running (env_id=None) (episode_id: 1->1, fps=60)
universe-psnd10-0 | Manhole[1480942100.3775]: Patched <built-in function fork> and <built-in function fork>.
universe-psnd10-0 | Manhole[1480942100.3777]: Manhole UDS path: /tmp/manhole-56
universe-psnd10-0 | Manhole[1480942100.3778]: Waiting for new connection (in pid:56) ...
universe-psnd10-0 | [2016-12-05 12:48:23,727] [INFO:universe.wrappers.logger] Stats for the past 5.01s: vnc_updates_ps=2.2 n=1 reaction_time=None observation_lag=None action_lag=None reward_ps=0.0 reward_total=0.0 vnc_bytes_ps[total]=359679.6 vnc_pixels_ps[total]=532589.2 reward_lag=None rewarder_message_lag=None fps=40
universe-psnd10-0 | [2016-12-05 12:48:25,377] [INFO:universe.pyprofile] [pyprofile] period=5.00s timers={"rewarder.compute_reward": {"mean": "214.29us", "calls": 301, "std": "284.49us"}, "vnc_env.VNCEnv.vnc_session.step": {"mean": "86.38us", "calls": 301, "std": "82.80us"}, "rewarder.frame": {"mean": "16.77ms", "calls": 300, "std": "35.17us"}, "rewarder.sleep": {"mean": "16.30ms", "calls": 300, "std": "283.67us"}} counters={} gauges={} (export_time=92.27us)
universe-psnd10-0 | [2016-12-05 12:48:25,377] [INFO:universe.rewarder.remote] [Rewarder] Over past 5.00s, sent 1 reward messages to agent: reward=0 reward_min=0 reward_max=0 done=False info={'rewarder.vnc.updates.n': None, 'rewarder.vnc.updates.pixels': None, 'rewarder.profile': '<606 bytes>', 'rewarder.vnc.updates.bytes': None}
universe-psnd10-0 | [2016-12-05 12:48:28,744] [INFO:universe.wrappers.logger] Stats for the past 5.02s: vnc_updates_ps=0.0 n=1 reaction_time=None observation_lag=None action_lag=None reward_ps=0.0 reward_total=0.0 vnc_bytes_ps[total]=0.0 vnc_pixels_ps[total]=0.0 reward_lag=None rewarder_message_lag=None fps=60
universe-psnd10-0 | [2016-12-05 12:48:30,393] [INFO:universe.pyprofile] [pyprofile] period=5.02s timers={"rewarder.compute_reward": {"mean": "195.87us", "calls": 301, "std": "64.43us"}, "vnc_env.VNCEnv.vnc_session.step": {"mean": "81.01us", "calls": 301, "std": "31.80us"}, "rewarder.frame": {"mean": "16.76ms", "calls": 301, "std": "34.13us"}, "rewarder.sleep": {"mean": "16.32ms", "calls": 301, "std": "93.57us"}} counters={"agent_conn.reward": {"std": 0, "calls": 1, "mean": 0.0}} gauges={} (export_time=93.46us)
universe-psnd10-0 | [2016-12-05 12:48:30,393] [INFO:universe.rewarder.remote] [Rewarder] Over past 5.02s, sent 1 reward messages to agent: reward=0 reward_min=0 reward_max=0 done=False info={'rewarder.vnc.updates.n': None, 'rewarder.vnc.updates.pixels': None, 'rewarder.profile': '<677 bytes>', 'rewarder.vnc.updates.bytes': None}
universe-psnd10-0 | [2016-12-05 12:48:33,760] [INFO:universe.wrappers.logger] Stats for the past 5.02s: vnc_updates_ps=0.0 n=1 reaction_time=None observation_lag=None action_lag=None reward_ps=0.0 reward_total=0.0 vnc_bytes_ps[total]=0.0 vnc_pixels_ps[total]=0.0 reward_lag=None rewarder_message_lag=None fps=60
universe-psnd10-0 | [2016-12-05 12:48:35,393] [INFO:universe.pyprofile] [pyprofile] period=5.00s timers={"rewarder.compute_reward": {"mean": "187.30us", "calls": 300, "std": "60.73us"}, "vnc_env.VNCEnv.vnc_session.step": {"mean": "77.51us", "calls": 300, "std": "30.43us"}, "rewarder.frame": {"mean": "16.76ms", "calls": 300, "std": "32.75us"}, "rewarder.sleep": {"mean": "16.34ms", "calls": 300, "std": "85.00us"}} counters={"agent_conn.reward": {"std": 0, "calls": 1, "mean": 0.0}} gauges={} (export_time=87.98us)
universe-psnd10-0 | [2016-12-05 12:48:35,393] [INFO:universe.rewarder.remote] [Rewarder] Over past 5.00s, sent 1 reward messages to agent: reward=0 reward_min=0 reward_max=0 done=False info={'rewarder.vnc.updates.n': None, 'rewarder.vnc.updates.pixels': None, 'rewarder.profile': '<673 bytes>', 'rewarder.vnc.updates.bytes': None}
universe-psnd10-0 | [2016-12-05 12:48:38,777] [INFO:universe.wrappers.logger] Stats for the past 5.02s: vnc_updates_ps=0.0 n=1 reaction_time=None observation_lag=None action_lag=None reward_ps=0.0 reward_total=0.0 vnc_bytes_ps[total]=0.0 vnc_pixels_ps[total]=0.0 reward_lag=None rewarder_message_lag=None fps=60
[2016-12-05 13:48:40,089] [0:localhost:5900] ntpdate -q -p 8 localhost call timed out after 20.0s; killing the subprocess. This is ok, but you could have more accurate timings by enabling UDP port 123 traffic to your env. (Alternatively, you can try increasing the timeout by setting environment variable UNIVERSE_NTPDATE_TIMEOUT=10.)
[2016-12-05 13:48:40,109] [0:localhost:5900] Sending reset for env_id=flashgames.DuskDrive-v0 fps=60 episode_id=0
universe-psnd10-0 | [2016-12-05 12:48:40,098] [INFO:universe.rewarder.remote] CONNECTION STATUS: Marking connection as active: observer=False peer=tcp4:127.0.0.1:60468 total_conns=1
universe-psnd10-0 | [2016-12-05 12:48:40,109] [INFO:universe.rewarder.remote] Received reset message: {'body': {'seed': None, 'env_id': 'flashgames.DuskDrive-v0', 'fps': 60}, 'method': 'v0.env.reset', 'headers': {'sent_at': 1480942120.109446, 'message_id': 10, 'episode_id': '0'}}
universe-psnd10-0 | [2016-12-05 12:48:40,117] [INFO:root] [EnvStatus] Changing env_state: running (env_id=None) -> resetting (env_id=flashgames.DuskDrive-v0) (episode_id: 1->2, fps=60)
universe-psnd10-0 | [2016-12-05 12:48:40,117] [ERROR:root] Closing server (via subprocess.close()) and all chromes (via pkill chromedriver || :; pkill chrome || :)
universe-psnd10-0 | [2016-12-05 12:48:40,126] [INFO:root] [Rewarder] Blocking until env finishes resetting
universe-psnd10-0 | [init] [2016-12-05 12:48:40,128] init detected end of child process 96 with exit code 0, killed by SIGTERM: 15
universe-psnd10-0 | [2016-12-05 12:48:40,129] [INFO:root] [EnvController] RESET CAUSE: changing out environments due to v0.env.reset (with episode_id=0): flashgames.DuskDrive-v0 -> flashgames.DuskDrive-v0 (new episode_id=2 fps=60)
universe-psnd10-0 | [2016-12-05 12:48:40,130] [INFO:root] [EnvController] Env state: env_id=flashgames.DuskDrive-v0 episode_id=2
universe-psnd10-0 | [Mon Dec  5 12:48:40 UTC 2016] [/usr/local/bin/sudoable-env-setup] Allowing outbound network traffic to non-private IPs for git-lfs. (Going to fetch files via git lfs.)
universe-psnd10-0 | [init] [2016-12-05 12:48:40,163] init detected end of child process 99 with exit code 0, not killed by signal
universe-psnd10-0 | [init] [2016-12-05 12:48:40,163] init detected end of child process 107 with exit code 0, not killed by signal
universe-psnd10-0 | [init] [2016-12-05 12:48:40,163] init detected end of child process 108 with exit code 0, not killed by signal
universe-psnd10-0 | [unpack-lfs] [2016-12-05 12:48:40,231] Fetching files: git lfs pull -I git-lfs/flashgames.DuskDrive-v0.tar.gz
universe-psnd10-0 | [unpack-lfs] [2016-12-05 12:48:46,921] Finished running git lfs pull
universe-psnd10-0 | [unpack-lfs] [2016-12-05 12:48:46,922] git-lfs fetch succeeded
universe-psnd10-0 | [unpack-lfs] [2016-12-05 12:48:46,922] Unpacking files for flashgames.DuskDrive-v0
universe-psnd10-0 | [unpack-lfs] [2016-12-05 12:48:46,985] Merged 5 files from /tmp/flashgames.DuskDrive-v0/public -> /app/universe-envs/flashgames/build/public/flashgames.DuskDrive-v0
universe-psnd10-0 | [unpack-lfs] [2016-12-05 12:48:46,987] Merged 20 files from /tmp/flashgames.DuskDrive-v0/private -> /app/universe-envs/flashgames/build/private/flashgames.DuskDrive-v0
universe-psnd10-0 | [unpack-lfs] [2016-12-05 12:48:46,987] Completed unpack for flashgames.DuskDrive-v0 in 6.756s
universe-psnd10-0 | [Mon Dec  5 12:48:47 UTC 2016] [/usr/local/bin/sudoable-env-setup] [debug] unpack-lfs completed with status code: 0. Created completion file: /usr/local/openai/git-lfs/flashgames.DuskDrive-v0
universe-psnd10-0 | [Mon Dec  5 12:48:47 UTC 2016] [/usr/local/bin/sudoable-env-setup] Disabling outbound network traffic for flashgames.DuskDrive-v0
universe-psnd10-0 | [2016-12-05 12:48:47,085] [INFO:gym_flashgames.launcher] [EnvController] Launching new Chrome process (attempt 0/10)
universe-psnd10-0 | [2016-12-05 12:48:47,085] [INFO:root] Replacing selenium_wrapper_server since we currently do it at every episode boundary
universe-psnd10-0 | [2016-12-05 12:48:47,202] [selenium_wrapper_server] Calling webdriver.Chrome()
universe-psnd10-0 | [2016-12-05 12:48:48,497] [selenium_wrapper_server] Call to webdriver.Chrome() completed: 1.29s
universe-psnd10-0 | [2016-12-05 12:48:48,497] [INFO:gym_flashgames.launcher] [EnvController] Navigating browser to url=http://localhost/flashgames.DuskDrive-v0
universe-psnd10-0 | [2016-12-05 12:48:48,521] [INFO:root] [EnvController] Running command: /app/universe-envs/controlplane/bin/play_vexpect -e flashgames.DuskDrive-v0 -r vnc://127.0.0.1:5900 -d
universe-psnd10-0 | [2016-12-05 12:48:49,096] [play_vexpect] Using the golang VNC implementation
universe-psnd10-0 | [2016-12-05 12:48:49,096] [play_vexpect] Using VNCSession arguments: {'encoding': 'zrle', 'start_timeout': 7, 'subsample_level': 2, 'compress_level': 0, 'fine_quality_level': 50}. (Customize by running "env.configure(vnc_kwargs={...})"
universe-psnd10-0 | [2016-12-05 12:48:49,096] [play_vexpect] Printed stats will ignore clock skew. (This usually makes sense only when the environment and agent are on the same machine.)
universe-psnd10-0 | [2016-12-05 12:48:49,099] [play_vexpect] [0] Connecting to environment: vnc://127.0.0.1:5900 password=openai. Use the browser-based VNC client: http://None/viewer/?password=openai
universe-psnd10-0 | [2016-12-05 12:48:49,099] [play_vexpect] [0] Connecting to environment details: vnc_address=127.0.0.1:5900 vnc_password=openai rewarder_address=None rewarder_password=openai
universe-psnd10-0 | 2016/12/05 12:48:49 I1205 12:48:49.099818 711 gymvnc.go:417] [0:127.0.0.1:5900] opening connection to VNC server
universe-psnd10-0 | 2016/12/05 12:48:49 I1205 12:48:49.101615 711 gymvnc.go:550] [0:127.0.0.1:5900] connection established
universe-psnd10-0 | [2016-12-05 12:48:49,555] [play_vexpect] Waiting for any of [MaskState<initializing0>] to activate
universe-psnd10-0 | 2016/12/05 12:48:55 I1205 12:48:55.444911 56 gymvnc.go:374] [0:127.0.0.1:5900] update queue max of 60 reached; pausing further updates
[2016-12-05 13:49:40,151] [0:localhost:5900] Attached to running environment without reset
universe-psnd10-0 | [2016-12-05 12:49:40,150] [INFO:universe.rewarder.remote] WebSocket connection closed: connection was closed uncleanly (peer dropped the TCP connection without previous WebSocket closing handshake)
[2016-12-05 13:49:40,163] [0] Closing rewarder connection
Traceback (most recent call last):
  File "utest.py", line 10, in <module>
    observation_n, reward_n, done_n, info = env.step(action_n)
  File "/usr/local/lib/python2.7/dist-packages/gym/core.py", line 122, in step
    observation, reward, done, info = self._step(action)
  File "/home/iaroslav/universe/universe/wrappers/timer.py", line 20, in _step
    observation_n, reward_n, done_n, info = self.env.step(action_n)
  File "/usr/local/lib/python2.7/dist-packages/gym/core.py", line 122, in step
    observation, reward, done, info = self._step(action)
  File "/home/iaroslav/universe/universe/wrappers/render.py", line 30, in _step
    observation_n, reward_n, done_n, info_n = self.env.step(action_n)
  File "/usr/local/lib/python2.7/dist-packages/gym/core.py", line 122, in step
    observation, reward, done, info = self._step(action)
  File "/home/iaroslav/universe/universe/wrappers/throttle.py", line 117, in _step
    observation_n, reward_n, done_n, info = self._substep(action_n)
  File "/home/iaroslav/universe/universe/wrappers/throttle.py", line 132, in _substep
    observation_n, reward_n, done_n, info = self.env.step(action_n)
  File "/usr/local/lib/python2.7/dist-packages/gym/core.py", line 122, in step
    observation, reward, done, info = self._step(action)
  File "/home/iaroslav/universe/universe/envs/vnc_env.py", line 447, in _step
    self._handle_crashed_n(info_n)
  File "/home/iaroslav/universe/universe/envs/vnc_env.py", line 518, in _handle_crashed_n
    raise error.Error('{}/{} environments have crashed! Most recent error: {}'.format(len(self.crashed), self.n, errors))
universe.error.Error: 1/1 environments have crashed! Most recent error: {'0': 'Rewarder session failed: Lost connection: connection was closed uncleanly (peer dropped the TCP connection without previous WebSocket closing handshake) (clean=False code=1006)'}
universe-psnd10-0 | [tigervnc] 
universe-psnd10-0 | [tigervnc] Xvnc TigerVNC 1.7.0 - built Sep  8 2016 10:39:22
universe-psnd10-0 | [tigervnc] Copyright (C) 1999-2016 TigerVNC Team and many others (see README.txt)
universe-psnd10-0 | [tigervnc] See http://www.tigervnc.org for information on TigerVNC.
universe-psnd10-0 | [tigervnc] Underlying X server release 11400000, The X.Org Foundation
universe-psnd10-0 | [tigervnc] 
universe-psnd10-0 | [tigervnc] Initializing built-in extension VNC-EXTENSION
universe-psnd10-0 | [tigervnc] Initializing built-in extension Generic Event Extension
universe-psnd10-0 | [tigervnc] Initializing built-in extension SHAPE
universe-psnd10-0 | [tigervnc] Initializing built-in extension MIT-SHM
universe-psnd10-0 | [tigervnc] Initializing built-in extension XInputExtension
universe-psnd10-0 | [tigervnc] Initializing built-in extension XTEST
universe-psnd10-0 | [tigervnc] Initializing built-in extension BIG-REQUESTS
universe-psnd10-0 | [tigervnc] Initializing built-in extension SYNC
universe-psnd10-0 | [tigervnc] Initializing built-in extension XKEYBOARD
universe-psnd10-0 | [tigervnc] Initializing built-in extension XC-MISC
universe-psnd10-0 | [tigervnc] Initializing built-in extension XINERAMA
universe-psnd10-0 | [tigervnc] Initializing built-in extension XFIXES
universe-psnd10-0 | [tigervnc] Initializing built-in extension RENDER
universe-psnd10-0 | [tigervnc] Initializing built-in extension RANDR
universe-psnd10-0 | [tigervnc] Initializing built-in extension COMPOSITE
universe-psnd10-0 | [tigervnc] Initializing built-in extension DAMAGE
universe-psnd10-0 | [tigervnc] Initializing built-in extension MIT-SCREEN-SAVER
universe-psnd10-0 | [tigervnc] Initializing built-in extension DOUBLE-BUFFER
universe-psnd10-0 | [tigervnc] Initializing built-in extension RECORD
universe-psnd10-0 | [tigervnc] Initializing built-in extension DPMS
universe-psnd10-0 | [tigervnc] Initializing built-in extension X-Resource
universe-psnd10-0 | [tigervnc] Initializing built-in extension XVideo
universe-psnd10-0 | [tigervnc] Initializing built-in extension XVideo-MotionCompensation
universe-psnd10-0 | [tigervnc] Initializing built-in extension GLX
universe-psnd10-0 | [tigervnc] 
universe-psnd10-0 | [tigervnc] Mon Dec  5 12:48:18 2016
universe-psnd10-0 | [tigervnc]  vncext:      VNC extension running!
universe-psnd10-0 | [tigervnc]  vncext:      Listening for VNC connections on all interface(s), port 5900
universe-psnd10-0 | [tigervnc]  vncext:      created VNC server for screen 0
universe-psnd10-0 | [tigervnc] [dix] Could not init font path element /usr/share/fonts/X11/Type1/, removing from list!
universe-psnd10-0 | [tigervnc] [dix] Could not init font path element /usr/share/fonts/X11/75dpi/, removing from list!
universe-psnd10-0 | [tigervnc] [dix] Could not init font path element /usr/share/fonts/X11/100dpi/, removing from list!
universe-psnd10-0 | [tigervnc]  Connections: accepted: 127.0.0.1::48030
universe-psnd10-0 | [tigervnc]  SConnection: Client needs protocol version 3.8
universe-psnd10-0 | [tigervnc]  SConnection: Client requests security type VncAuth(2)
universe-psnd10-0 | [tigervnc]  VNCSConnST:  Server default pixel format depth 24 (32bpp) little-endian rgb888
universe-psnd10-0 | [tigervnc]  VNCSConnST:  Client pixel format depth 24 (32bpp) little-endian bgr888
universe-psnd10-0 | [tigervnc] 
universe-psnd10-0 | [tigervnc] Mon Dec  5 12:48:19 2016
universe-psnd10-0 | [tigervnc]  Connections: accepted: 172.17.0.1::36246
universe-psnd10-0 | [tigervnc] 
universe-psnd10-0 | [tigervnc] Mon Dec  5 12:48:20 2016
universe-psnd10-0 | [tigervnc]  Connections: closed: 172.17.0.1::36246 (Clean disconnection)
universe-psnd10-0 | [tigervnc]  EncodeManager: Framebuffer updates: 0
universe-psnd10-0 | [tigervnc]  EncodeManager:   Total: 0 rects, 0 pixels
universe-psnd10-0 | [tigervnc]  EncodeManager:          0 B (1:-nan ratio)
universe-psnd10-0 | [tigervnc]  Connections: accepted: 172.17.0.1::36286
universe-psnd10-0 | [tigervnc]  SConnection: Client needs protocol version 3.8
universe-psnd10-0 | [tigervnc]  SConnection: Client requests security type VncAuth(2)
universe-psnd10-0 | [tigervnc]  VNCSConnST:  Server default pixel format depth 24 (32bpp) little-endian rgb888
universe-psnd10-0 | [tigervnc]  VNCSConnST:  Client pixel format depth 24 (32bpp) little-endian bgr888
universe-psnd10-0 | [tigervnc] 
universe-psnd10-0 | [tigervnc] Mon Dec  5 12:48:49 2016
universe-psnd10-0 | [tigervnc]  Connections: accepted: 127.0.0.1::48294
universe-psnd10-0 | [tigervnc]  SConnection: Client needs protocol version 3.8
universe-psnd10-0 | [tigervnc]  SConnection: Client requests security type VncAuth(2)
universe-psnd10-0 | [tigervnc]  VNCSConnST:  Server default pixel format depth 24 (32bpp) little-endian rgb888
universe-psnd10-0 | [tigervnc]  VNCSConnST:  Client pixel format depth 24 (32bpp) little-endian bgr888
universe-psnd10-0 | [tigervnc] 
universe-psnd10-0 | [tigervnc] Mon Dec  5 12:49:40 2016
universe-psnd10-0 | [tigervnc]  Connections: closed: 172.17.0.1::36286 (Clean disconnection)
universe-psnd10-0 | [tigervnc]  EncodeManager: Framebuffer updates: 516
universe-psnd10-0 | [tigervnc]  EncodeManager:   Tight:
universe-psnd10-0 | [tigervnc]  EncodeManager:     Solid: 61 rects, 3.26606 Mpixels
universe-psnd10-0 | [tigervnc]  EncodeManager:            976 B (1:13386.2 ratio)
universe-psnd10-0 | [tigervnc]  EncodeManager:     Bitmap RLE: 261 rects, 3.17045 Mpixels
universe-psnd10-0 | [tigervnc]  EncodeManager:                 43.0459 KiB (1:287.777 ratio)
[2016-12-05 13:49:40,324] Killing and removing container: id=657c3c28301b3a75e90606a12b29025229d8eed7b516874c2c5a69e655f3ad55. (If this command errors, you can always kill all automanaged environments on this Docker daemon via: docker rm -f $(docker ps -q -a -f 'label=com.openai.automanaged=true')

There seem to be some exceptions thrown by the code.

My system is Ubuntu 16.04, running with 8 core cpu, 16 gb of ram, and Titan GPU.

Do you know what could cause such behavior? Is there something I am missing?

Log everything to disk automatically

We're currently asking users to re-run their programs and capture stdout from docker and agent manually. Would be nice if they all logged to separate files on disk automatically. Probably all in one temporary directory.

Undefined Symbol: libiconv on Ubuntu 16.04

Hello, I tried to install the universe package as in the installation guide but when I import it I get this error:

>>> import universe
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "universe/__init__.py", line 21, in <module>
    from universe import error, envs
  File "universe/envs/__init__.py", line 1, in <module>
    import universe.envs.vnc_env
  File "universe/envs/vnc_env.py", line 18, in <module>
    from universe.envs import diagnostics
  File "universe/envs/diagnostics.py", line 2, in <module>
    import fastzbarlight
  File "/home/vruiz/ws/game-ml/.venv/local/lib/python2.7/site-packages/fastzbarlight/__init__.py", line 7, in <module>
    from ._zbarlight import zbar_code_scanner
ImportError: /home/vruiz/ws/game-ml/.venv/local/lib/python2.7/site-packages/fastzbarlight/_zbarlight.so: undefined symbol: libiconv
>>> 

I think I have that lib on my system:

(.venv) โžœ  universe git:(master) ldconfig -p | grep libiconv
	libiconv_hook.so.1 (libc6,x86-64) => /usr/lib/libiconv_hook.so.1
	libiconv_hook.so (libc6,x86-64) => /usr/lib/libiconv_hook.so
	libiconv.so.2 (libc6,x86-64) => /usr/local/lib/libiconv.so.2
	libiconv.so (libc6,x86-64) => /usr/local/lib/libiconv.so

Any idea on how to solve this? Thank you.

How could I build an custom env (without vnc)

I got an arduino powered robot here and I would like to be able to add an custom env with that I want connect via wlan (or lets say for simplicity per gpio) to let universe control it. Which things would I have to modify or where should I start to build that? Is there some file which I could use as base that does let me add some kind of env for my robot? Especialy I mean which file I have to modify to get signals from universe to the robot and the other way around.

Ubuntu 16.04, gym.scoreboard.scoring.RewardPerTime() error

When we install universe it installs gym via pip. This version of gym is outdated I presume, so it needs to be fixed. In the scoreboard's scoring.py file there is no RewardPerTime() in that version. Cloning the latest gym from github and using it there however fixes the issue. Could the pip version of gym be updated or is there something else that I am missing here?

docker behind proxy

if my docker is behind a socks5 proxy, how can i download the games?

the games is download into host or docker?

Installation stops while installing pillow

I am using bash on windows. The new feature which gives native ubuntu bash on windows. For further information on it you may refer to the link - https://msdn.microsoft.com/commandline/wsl/about

I typed the command, pip install -e . as given in README and the installation started. In the middle of it during installation of pillow, it gave an error. The exact terminal output is as follows,

Downloading/unpacking Pillow (from universe==0.20.4)
Downloading Pillow-3.4.2.tar.gz (10.8MB): 7.8MB downloaded
Cleaning up...
Exception:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
status = self.run(options, args)
File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 278, in run
requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
File "/usr/lib/python2.7/dist-packages/pip/req.py", line 1198, in prepare_files
do_download,
File "/usr/lib/python2.7/dist-packages/pip/req.py", line 1376, in unpack_url
self.session,
File "/usr/lib/python2.7/dist-packages/pip/download.py", line 572, in unpack_http_url
download_hash = _download_url(resp, link, temp_location)
File "/usr/lib/python2.7/dist-packages/pip/download.py", line 433, in _download_url
for chunk in resp_read(4096):
File "/usr/lib/python2.7/dist-packages/pip/download.py", line 421, in resp_read
chunk_size, decode_content=False):
File "/usr/share/python-wheels/urllib3-1.7.1-py2.py3-none-any.whl/urllib3/response.py", line 225, in stream
data = self.read(amt=amt, decode_content=decode_content)
File "/usr/share/python-wheels/urllib3-1.7.1-py2.py3-none-any.whl/urllib3/response.py", line 174, in read
data = self._fp.read(amt)
File "/usr/lib/python2.7/httplib.py", line 602, in read
s = self.fp.read(amt)
File "/usr/lib/python2.7/socket.py", line 380, in read
data = self._sock.recv(left)
File "/usr/lib/python2.7/ssl.py", line 341, in recv
return self.read(buflen)
File "/usr/lib/python2.7/ssl.py", line 260, in read
return self._sslobj.read(len)
SSLError: The read operation timed out

Storing debug log for failure in /home/vaidyalabs/.pip/pip.log


For information in detail, please refer to an issues created by me on WSL's github repo, microsoft/WSL#1483
Please tell me what went wrong and what steps must be taken.

APIError: 400 Client Error: Bad Request

I was trying the example given, but I'm seeing the exception: APIError: 400 Client Error: Bad Request ("b'client is newer than server (client API version: 1.24, server API version: 1.23)'"). This is the full log:

$ ipython3
Python 3.5.2 (default, Nov 17 2016, 17:05:23) 
Type "copyright", "credits" or "license" for more information.

IPython 5.1.0 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: import gym

In [2]: import universe

In [3]: env = gym.make('flashgames.DuskDrive-v0')
   ...: env.configure(remotes=1) # automatically creates a local docker container
   ...: observation_n = env.reset()
   ...: 
[2016-12-05 09:52:12,155] Making new env: flashgames.DuskDrive-v0
[2016-12-05 09:52:12,204] Writing logs to file: /tmp/universe-2178.log
---------------------------------------------------------------------------
HTTPError                                 Traceback (most recent call last)
/usr/local/lib/python3.5/dist-packages/docker/client.py in _raise_for_status(self, response, explanation)
    169         try:
--> 170             response.raise_for_status()
    171         except requests.exceptions.HTTPError as e:

/usr/local/lib/python3.5/dist-packages/requests/models.py in raise_for_status(self)
    850         if http_error_msg:
--> 851             raise HTTPError(http_error_msg, response=self)
    852 

HTTPError: 400 Client Error: Bad Request

During handling of the above exception, another exception occurred:

APIError                                  Traceback (most recent call last)
<ipython-input-3-f5ed367c9a56> in <module>()
      1 env = gym.make('flashgames.DuskDrive-v0')
----> 2 env.configure(remotes=1) # automatically creates a local docker container
      3 observation_n = env.reset()

/usr/local/lib/python3.5/dist-packages/gym/core.py in configure(self, *args, **kwargs)
    244 
    245         try:
--> 246             self._configure(*args, **kwargs)
    247         except TypeError as e:
    248             # It can be confusing if you have the wrong environment

/tmp/universe/universe/vectorized/core.py in _configure(self, **kwargs)
     55 
     56     def _configure(self, **kwargs):
---> 57         super(Wrapper, self)._configure(**kwargs)
     58         assert self.env.n is not None, "Did not set self.env.n: self.n={} self.env={} self={}".format(self.env.n, self.env, self)
     59         self.n = self.env.n

/usr/local/lib/python3.5/dist-packages/gym/core.py in _configure(self, *args, **kwargs)
    348 
    349     def _configure(self, *args, **kwargs):
--> 350         return self.env.configure(*args, **kwargs)
    351 
    352     def _seed(self, seed=None):

/usr/local/lib/python3.5/dist-packages/gym/core.py in configure(self, *args, **kwargs)
    244 
    245         try:
--> 246             self._configure(*args, **kwargs)
    247         except TypeError as e:
    248             # It can be confusing if you have the wrong environment

/tmp/universe/universe/wrappers/render.py in _configure(self, **kwargs)
     16 
     17     def _configure(self, **kwargs):
---> 18         super(Render, self)._configure(**kwargs)
     19         self.metadata = self.metadata.copy()
     20         modes = self.metadata.setdefault('render.modes', [])

/tmp/universe/universe/vectorized/core.py in _configure(self, **kwargs)
     55 
     56     def _configure(self, **kwargs):
---> 57         super(Wrapper, self)._configure(**kwargs)
     58         assert self.env.n is not None, "Did not set self.env.n: self.n={} self.env={} self={}".format(self.env.n, self.env, self)
     59         self.n = self.env.n

/usr/local/lib/python3.5/dist-packages/gym/core.py in _configure(self, *args, **kwargs)
    348 
    349     def _configure(self, *args, **kwargs):
--> 350         return self.env.configure(*args, **kwargs)
    351 
    352     def _seed(self, seed=None):

/usr/local/lib/python3.5/dist-packages/gym/core.py in configure(self, *args, **kwargs)
    244 
    245         try:
--> 246             self._configure(*args, **kwargs)
    247         except TypeError as e:
    248             # It can be confusing if you have the wrong environment

/tmp/universe/universe/wrappers/throttle.py in _configure(self, skip_metadata, fps, **kwargs)
     25 
     26     def _configure(self, skip_metadata=False, fps='default', **kwargs):
---> 27         super(Throttle, self)._configure(**kwargs)
     28         if fps == 'default':
     29             fps = self.metadata['video.frames_per_second']

/tmp/universe/universe/vectorized/core.py in _configure(self, **kwargs)
     55 
     56     def _configure(self, **kwargs):
---> 57         super(Wrapper, self)._configure(**kwargs)
     58         assert self.env.n is not None, "Did not set self.env.n: self.n={} self.env={} self={}".format(self.env.n, self.env, self)
     59         self.n = self.env.n

/usr/local/lib/python3.5/dist-packages/gym/core.py in _configure(self, *args, **kwargs)
    348 
    349     def _configure(self, *args, **kwargs):
--> 350         return self.env.configure(*args, **kwargs)
    351 
    352     def _seed(self, seed=None):

/usr/local/lib/python3.5/dist-packages/gym/core.py in configure(self, *args, **kwargs)
    244 
    245         try:
--> 246             self._configure(*args, **kwargs)
    247         except TypeError as e:
    248             # It can be confusing if you have the wrong environment

/tmp/universe/universe/envs/vnc_env.py in _configure(self, remotes, client_id, start_timeout, docker_image, ignore_clock_skew, disable_action_probes, vnc_driver, vnc_kwargs, rewarder_driver, replace_on_crash, allocate_sync, observer, api_key)
    190             client_id=client_id,
    191             remotes=remotes, runtime=runtime, start_timeout=start_timeout,
--> 192             api_key=api_key,
    193         )
    194         self.connection_names = [None] * self.n

/tmp/universe/universe/remotes/build.py in build(client_id, remotes, runtime, start_timeout, **kwargs)
     17             start_timeout=start_timeout,
     18             reuse=kwargs.get('reuse', False),
---> 19             n=n,
     20         ), n
     21     elif remotes.startswith('vnc://'):

/tmp/universe/universe/remotes/docker_remote.py in __init__(self, runtime, n, reuse, start_timeout)
     41         self.connect_vnc = True
     42         self.connect_rewarder = True
---> 43         self._assigner = PortAssigner(reuse=reuse)
     44 
     45         self._popped = False

/tmp/universe/universe/remotes/docker_remote.py in __init__(self, reuse)
    146         self.instance_id = 'universe-' + random_alphanumeric(length=6)
    147         self.client, self.info = get_client()
--> 148         self._refresh_ports()
    149 
    150     def _refresh_ports(self):

/tmp/universe/universe/remotes/docker_remote.py in _refresh_ports(self)
    150     def _refresh_ports(self):
    151         ports = {}
--> 152         for container in self.client.containers():
    153             for port in container['Ports']:
    154                 # {u'IP': u'0.0.0.0', u'Type': u'tcp', u'PublicPort': 5000, u'PrivatePort': 500}

/usr/local/lib/python3.5/dist-packages/docker/api/container.py in containers(self, quiet, all, trunc, latest, since, before, limit, size, filters)
     83             params['filters'] = utils.convert_filters(filters)
     84         u = self._url("/containers/json")
---> 85         res = self._result(self._get(u, params=params), True)
     86 
     87         if quiet:

/usr/local/lib/python3.5/dist-packages/docker/client.py in _result(self, response, json, binary)
    176     def _result(self, response, json=False, binary=False):
    177         assert not (json and binary)
--> 178         self._raise_for_status(response)
    179 
    180         if json:

/usr/local/lib/python3.5/dist-packages/docker/client.py in _raise_for_status(self, response, explanation)
    172             if e.response.status_code == 404:
    173                 raise errors.NotFound(e, response, explanation=explanation)
--> 174             raise errors.APIError(e, response, explanation=explanation)
    175 
    176     def _result(self, response, json=False, binary=False):

APIError: 400 Client Error: Bad Request ("b'client is newer than server (client API version: 1.24, server API version: 1.23)'")

'Run your first agent' example not work~~

I try lot times run demo code, but only 1 time success.
may fetch timeout?
universe-ezK9kg-0 | [unpack-lfs] [2016-12-10 03:48:27,396] Fetching files: git lfs pull -I git-lfs/flashgames.DuskDrive-v0.tar.gz

--
(vml) universe $ python train.py
[2016-12-10 11:48:10,041] Making new env: flashgames.DuskDrive-v0
[2016-12-10 11:48:10,043] Writing logs to file: /tmp/universe-2533.log
[2016-12-10 11:48:10,079] [0] Creating container: image=quay.io/openai/universe.flashgames:0.20.7. Run the same thing by hand as: docker run -p 5900:5900 -p 15900:15900 --cap-add SYS_ADMIN --ipc host --privileged quay.io/openai/universe.flashgames:0.20.7
[2016-12-10 11:48:10,763] Remote closed: address=localhost:5900
[2016-12-10 11:48:10,764] At least one sockets was closed by the remote. Sleeping 1s...
universe-ezK9kg-0 | Setting VNC and rewarder password: openai
universe-ezK9kg-0 | [Sat Dec 10 03:48:10 UTC 2016] Waiting for /tmp/.X11-unix/X0 to be created (try 1/10)
universe-ezK9kg-0 | [Sat Dec 10 03:48:10 UTC 2016] [/usr/local/bin/sudoable-env-setup] Disabling outbound network traffic for none
universe-ezK9kg-0 | [init] [2016-12-10 03:48:10,989] PID 60 launched with command ['sudo', '-H', '-u', 'nobody', 'DISPLAY=:0', 'DBUS_SESSION_BUS_ADDRESS=/dev/null', '/app/universe-envs/controlplane/bin/controlplane.py', '--rewarder-port=15901']
universe-ezK9kg-0 | [init] [2016-12-10 03:48:10,989] init detected end of child process 18 with exit code 0, not killed by signal
universe-ezK9kg-0 | WebSocket server settings:
universe-ezK9kg-0 | - Listen on :5898
universe-ezK9kg-0 | - Flash security policy server
universe-ezK9kg-0 | - No SSL/TLS support (no cert file)
universe-ezK9kg-0 | - proxying from :5898 to localhost:5900
universe-ezK9kg-0 | [2016-12-10 03:48:11,501] [INFO:root] Starting play_controlplane.py with the following: command=['/app/universe-envs/controlplane/bin/controlplane.py', '--rewarder-port=15901'] args=Namespace(bot_demonstration=False, demonstration=False, env_id=None, idle_timeout=None, integrator_mode=False, no_env=False, no_rewarder=False, no_scorer=False, no_vexpect=False, remotes='vnc://127.0.0.1:5900', rewarder_fps=60, rewarder_port=15901, verbosity=0) env=environ({'HOME': '/nonexistent', 'SHELL': '/usr/sbin/nologin', 'SUDO_COMMAND': '/app/universe-envs/controlplane/bin/controlplane.py --rewarder-port=15901', 'SUDO_GID': '0', 'MAIL': '/var/mail/nobody', 'DBUS_SESSION_BUS_ADDRESS': '/dev/null', 'HOSTNAME': 'f0778947a8ed', 'SUDO_USER': 'root', 'USER': 'nobody', 'SUDO_UID': '0', 'LOGNAME': 'nobody', 'PATH': '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin', 'USERNAME': 'nobody', 'DISPLAY': ':0', 'TERM': 'xterm'})
universe-ezK9kg-0 | [2016-12-10 03:48:11,501] [INFO:root] [EnvStatus] Changing env_state: None (env_id=None) -> None (env_id=None) (episode_id: 0->0, fps=60)
universe-ezK9kg-0 | [2016-12-10 03:48:11,502] [INFO:universe.rewarder.remote] Starting Rewarder on port=15901
universe-ezK9kg-0 | [2016-12-10 03:48:11,507] [INFO:universe.extra.universe.wrappers.logger] Running VNC environments with Logger set to print_frequency=5. To change this, pass "print_frequency=k" or "print_frequency=None" to "env.configure".
universe-ezK9kg-0 | [2016-12-10 03:48:11,508] [INFO:universe.envs.vnc_env] Using the golang VNC implementation
universe-ezK9kg-0 | [2016-12-10 03:48:11,509] [INFO:universe.envs.vnc_env] Using VNCSession arguments: {'start_timeout': 7, 'compress_level': 9, 'encoding': 'zrle', 'fine_quality_level': 50, 'subsample_level': 2}. (Customize by running "env.configure(vnc_kwargs={...})"
universe-ezK9kg-0 | [2016-12-10 03:48:11,509] [INFO:universe.envs.vnc_env] Printed stats will ignore clock skew. (This usually makes sense only when the environment and agent are on the same machine.)
universe-ezK9kg-0 | [2016-12-10 03:48:11,515] [INFO:universe.envs.vnc_env] [0] Connecting to environment: vnc://127.0.0.1:5900 password=openai. Use the browser-based VNC client: http://None/viewer/?password=openai
universe-ezK9kg-0 | [2016-12-10 03:48:11,515] [INFO:universe.extra.universe.envs.vnc_env] [0] Connecting to environment details: vnc_address=127.0.0.1:5900 vnc_password=openai rewarder_address=None rewarder_password=openai
universe-ezK9kg-0 | 2016/12/10 03:48:11 I1210 03:48:11.516274 61 gymvnc.go:417] [0:127.0.0.1:5900] opening connection to VNC server
universe-ezK9kg-0 | [2016-12-10 03:48:11,517] [INFO:root] [EnvStatus] Changing env_state: None (env_id=None) -> resetting (env_id=None) (episode_id: 0->1, fps=60)
universe-ezK9kg-0 | [2016-12-10 03:48:11,517] [INFO:root] [MainThread] Env state: env_id=None episode_id=1
universe-ezK9kg-0 | 2016/12/10 03:48:11 I1210 03:48:11.523695 61 gymvnc.go:550] [0:127.0.0.1:5900] connection established
universe-ezK9kg-0 | [Sat Dec 10 03:48:11 UTC 2016] [/usr/local/bin/sudoable-env-setup] Disabling outbound network traffic for none
universe-ezK9kg-0 | [2016-12-10 03:48:11,568] [INFO:gym_flashgames.launcher] [MainThread] Launching new Chrome process (attempt 0/10)
universe-ezK9kg-0 | [2016-12-10 03:48:11,569] [INFO:root] Replacing selenium_wrapper_server since we currently do it at every episode boundary
universe-ezK9kg-0 | [2016-12-10 03:48:11,673] [selenium_wrapper_server] Calling webdriver.Chrome()
[2016-12-10 11:48:11,769] Remote closed: address=localhost:5900
[2016-12-10 11:48:11,770] Remote closed: address=localhost:15900
[2016-12-10 11:48:11,771] At least one sockets was closed by the remote. Sleeping 1s...
universe-ezK9kg-0 | [2016-12-10 03:48:11,779] [INFO:universe.rewarder.remote] Client connecting: peer=tcp4:127.0.0.1:35970 observer=True
universe-ezK9kg-0 | [2016-12-10 03:48:11,779] [INFO:universe.rewarder.remote] WebSocket connection established
universe-ezK9kg-0 | [init] [2016-12-10 03:48:11,873] init detected end of child process 15 with exit code 0, not killed by signal
[2016-12-10 11:48:12,773] Using the golang VNC implementation
[2016-12-10 11:48:12,773] Using VNCSession arguments: {'subsample_level': 2, 'fine_quality_level': 50, 'start_timeout': 7, 'encoding': 'tight'}. (Customize by running "env.configure(vnc_kwargs={...})"
[2016-12-10 11:48:12,776] [0] Connecting to environment: vnc://localhost:5900 password=openai. Use the browser-based VNC client: http://localhost:15900/viewer/?password=openai
universe-ezK9kg-0 | [2016-12-10 03:48:12,775] [INFO:universe.rewarder.remote] WebSocket connection closed: connection was closed uncleanly (peer dropped the TCP connection without previous WebSocket closing handshake)
2016/12/10 11:48:12 I1210 11:48:12.777538 2533 gymvnc.go:417] [0:localhost:5900] opening connection to VNC server
universe-ezK9kg-0 | [2016-12-10 03:48:12,776] [INFO:universe.rewarder.remote] [Twisted] Non-active client disconnected
2016/12/10 11:48:12 I1210 11:48:12.782913 2533 gymvnc.go:550] [0:localhost:5900] connection established
universe-ezK9kg-0 | [2016-12-10 03:48:12,793] [INFO:universe.rewarder.remote] Client connecting: peer=tcp4:127.0.0.1:35998 observer=False
universe-ezK9kg-0 | [2016-12-10 03:48:12,793] [INFO:universe.rewarder.remote] WebSocket connection established
universe-ezK9kg-0 | [2016-12-10 03:48:13,240] [selenium_wrapper_server] Call to webdriver.Chrome() completed: 1.57s
universe-ezK9kg-0 | [2016-12-10 03:48:13,240] [INFO:gym_flashgames.launcher] [MainThread] Navigating browser to url=http://localhost
universe-ezK9kg-0 | [2016-12-10 03:48:13,705] [INFO:root] [EnvStatus] Changing env_state: resetting (env_id=None) -> running (env_id=None) (episode_id: 1->1, fps=60)
universe-ezK9kg-0 | Manhole[1481341693.7412]: Patched and .
universe-ezK9kg-0 | Manhole[1481341693.7441]: Manhole UDS path: /tmp/manhole-61
universe-ezK9kg-0 | Manhole[1481341693.7443]: Waiting for new connection (in pid:61) ...
universe-ezK9kg-0 | [2016-12-10 03:48:16,525] [INFO:universe.wrappers.logger] Stats for the past 5.01s: vnc_updates_ps=3.2 n=1 reaction_time=None observation_lag=None action_lag=None reward_ps=0.0 reward_total=0.0 vnc_bytes_ps[total]=516144.6 vnc_pixels_ps[total]=500615.0 reward_lag=None rewarder_message_lag=None fps=33
universe-ezK9kg-0 | [2016-12-10 03:48:18,725] [INFO:universe.pyprofile] [pyprofile] period=5.00s timers={"rewarder.compute_reward": {"mean": "507.66us", "std": "1.06ms", "calls": 301}, "rewarder.frame": {"mean": "17.63ms", "std": "501.02us", "calls": 300}, "rewarder.sleep": {"mean": "15.15ms", "std": "505.62us", "calls": 299}, "vnc_env.VNCEnv.vnc_session.step": {"mean": "240.73us", "std": "818.94us", "calls": 301}, "rewarder.sleep.missed": {"mean": "1.91ms", "std": "0.00us", "calls": 1}} counters={} gauges={} (export_time=203.85us)
universe-ezK9kg-0 | [2016-12-10 03:48:18,725] [INFO:universe.rewarder.remote] [Rewarder] Over past 5.00s, sent 1 reward messages to agent: reward=0 reward_min=0 reward_max=0 done=False info={'rewarder.vnc.updates.bytes': None, 'rewarder.vnc.updates.n': None, 'rewarder.profile': '<706 bytes>', 'rewarder.vnc.updates.pixels': None}
universe-ezK9kg-0 | [2016-12-10 03:48:21,541] [INFO:universe.wrappers.logger] Stats for the past 5.01s: vnc_updates_ps=0.0 n=1 reaction_time=None observation_lag=None action_lag=None reward_ps=0.0 reward_total=0.0 vnc_bytes_ps[total]=0.0 vnc_pixels_ps[total]=0.0 reward_lag=None rewarder_message_lag=None fps=60
universe-ezK9kg-0 | [2016-12-10 03:48:23,725] [INFO:universe.pyprofile] [pyprofile] period=5.00s timers={"rewarder.compute_reward": {"mean": "447.89us", "std": "560.56us", "calls": 300}, "rewarder.frame": {"mean": "17.67ms", "std": "474.88us", "calls": 300}, "rewarder.sleep": {"mean": "15.11ms", "std": "751.25us", "calls": 300}, "vnc_env.VNCEnv.vnc_session.step": {"mean": "206.79us", "std": "547.51us", "calls": 300}} counters={"agent_conn.reward": {"mean": 0.0, "calls": 1, "std": 0}} gauges={} (export_time=127.55us)
universe-ezK9kg-0 | [2016-12-10 03:48:23,725] [INFO:universe.rewarder.remote] [Rewarder] Over past 5.00s, sent 1 reward messages to agent: reward=0 reward_min=0 reward_max=0 done=False info={'rewarder.vnc.updates.bytes': None, 'rewarder.vnc.updates.n': None, 'rewarder.profile': '<681 bytes>', 'rewarder.vnc.updates.pixels': None}
universe-ezK9kg-0 | [2016-12-10 03:48:26,766] [INFO:universe.wrappers.logger] Stats for the past 5.22s: vnc_updates_ps=0.0 n=1 reaction_time=None observation_lag=None action_lag=None reward_ps=0.0 reward_total=0.0 vnc_bytes_ps[total]=0.0 vnc_pixels_ps[total]=0.0 reward_lag=None rewarder_message_lag=None fps=52
universe-ezK9kg-0 | [2016-12-10 03:48:26,767] [INFO:root] [Rewarder] Rewarder fell behind by 0.6443941593170166s from target; losing 38 frames
universe-ezK9kg-0 | [2016-12-10 03:48:27,148] [INFO:universe.rewarder.remote] CONNECTION STATUS: Marking connection as active: observer=False peer=tcp4:127.0.0.1:35998 total_conns=1
[2016-12-10 11:48:27,175] [0:localhost:5900] Sending reset for env_id=flashgames.DuskDrive-v0 fps=60 episode_id=0
universe-ezK9kg-0 | [2016-12-10 03:48:27,178] [INFO:universe.rewarder.remote] Received reset message: {'headers': {'episode_id': '0', 'sent_at': 1481341707.176003, 'message_id': 10}, 'body': {'env_id': 'flashgames.DuskDrive-v0', 'seed': None, 'fps': 60}, 'method': 'v0.env.reset'}
universe-ezK9kg-0 | [2016-12-10 03:48:27,186] [INFO:root] [EnvStatus] Changing env_state: running (env_id=None) -> resetting (env_id=flashgames.DuskDrive-v0) (episode_id: 1->2, fps=60)
universe-ezK9kg-0 | [2016-12-10 03:48:27,186] [ERROR:root] Closing server (via subprocess.close()) and all chromes (via pkill chromedriver || :; pkill chrome || :)
universe-ezK9kg-0 | [2016-12-10 03:48:27,186] [INFO:root] [Rewarder] Blocking until env finishes resetting
universe-ezK9kg-0 | [init] [2016-12-10 03:48:27,200] init detected end of child process 103 with exit code 0, killed by SIGTERM: 15
universe-ezK9kg-0 | [init] [2016-12-10 03:48:27,204] init detected end of child process 118 with exit code 0, not killed by signal
universe-ezK9kg-0 | [2016-12-10 03:48:27,206] [INFO:root] [EnvController] RESET CAUSE: changing out environments due to v0.env.reset (with episode_id=0): flashgames.DuskDrive-v0 -> flashgames.DuskDrive-v0 (new episode_id=2 fps=60)
universe-ezK9kg-0 | [2016-12-10 03:48:27,206] [INFO:root] [EnvController] Env state: env_id=flashgames.DuskDrive-v0 episode_id=2
universe-ezK9kg-0 | [init] [2016-12-10 03:48:27,214] init detected end of child process 325 with exit code 0, killed by SIGTERM: 15
universe-ezK9kg-0 | [init] [2016-12-10 03:48:27,215] init detected end of child process 339 with exit code 0, killed by SIGTERM: 15
universe-ezK9kg-0 | [Sat Dec 10 03:48:27 UTC 2016] [/usr/local/bin/sudoable-env-setup] Allowing outbound network traffic to non-private IPs for git-lfs. (Going to fetch files via git lfs.)
universe-ezK9kg-0 | [init] [2016-12-10 03:48:27,309] init detected end of child process 117 with exit code 0, killed by SIGTERM: 15
universe-ezK9kg-0 | [init] [2016-12-10 03:48:27,313] init detected end of child process 115 with exit code 0, not killed by signal
universe-ezK9kg-0 | [init] [2016-12-10 03:48:27,314] init detected end of child process 114 with exit code 0, not killed by signal
universe-ezK9kg-0 | [init] [2016-12-10 03:48:27,314] init detected end of child process 106 with exit code 0, not killed by signal
universe-ezK9kg-0 | [unpack-lfs] [2016-12-10 03:48:27,396] Fetching files: git lfs pull -I git-lfs/flashgames.DuskDrive-v0.tar.gz
[2016-12-10 11:49:27,200] [0] Closing rewarder connection
universe-ezK9kg-0 | [2016-12-10 03:49:27,199] [INFO:universe.rewarder.remote] WebSocket connection closed: connection was closed uncleanly (peer dropped the TCP connection without previous WebSocket closing handshake)
Traceback (most recent call last):
File "train.py", line 14, in
universe-ezK9kg-0 | [2016-12-10 03:49:27,200] [INFO:universe.rewarder.remote] [Twisted] Active client disconnected (sent 11 messages). Still have 0 active clients left
universe-ezK9kg-0 | [tigervnc]
universe-ezK9kg-0 | [tigervnc] Xvnc TigerVNC 1.7.0 - built Sep 8 2016 10:39:22
universe-ezK9kg-0 | [tigervnc] Copyright (C) 1999-2016 TigerVNC Team and many others (see README.txt)
observation_n, reward_n, done_n, info = env.step(action_n)
File "/Users/jomyhuang/Desktop/PyProject/gym/gym/core.py", line 122, in step
universe-ezK9kg-0 | [tigervnc] See http://www.tigervnc.org for information on TigerVNC.
universe-ezK9kg-0 | [tigervnc] Underlying X server release 11400000, The X.Org Foundation
universe-ezK9kg-0 | [tigervnc]
observation, reward, done, info = self._step(action)
File "/Users/jomyhuang/Desktop/PyProject/gym/gym/core.py", line 334, in _step
universe-ezK9kg-0 | [tigervnc] Initializing built-in extension VNC-EXTENSION
universe-ezK9kg-0 | [tigervnc] Initializing built-in extension Generic Event Extension
universe-ezK9kg-0 | [tigervnc] Initializing built-in extension SHAPE
universe-ezK9kg-0 | [tigervnc] Initializing built-in extension MIT-SHM
return self.env.step(action)
File "/Users/jomyhuang/Desktop/PyProject/gym/gym/core.py", line 122, in step
universe-ezK9kg-0 | [tigervnc] Initializing built-in extension XInputExtension
universe-ezK9kg-0 | [tigervnc] Initializing built-in extension XTEST
universe-ezK9kg-0 | [tigervnc] Initializing built-in extension BIG-REQUESTS
universe-ezK9kg-0 | [tigervnc] Initializing built-in extension SYNC
universe-ezK9kg-0 | [tigervnc] Initializing built-in extension XKEYBOARD
observation, reward, done, info = self._step(action)
File "/Users/jomyhuang/Desktop/PyProject/universe/universe/wrappers/timer.py", line 20, in _step
universe-ezK9kg-0 | [tigervnc] Initializing built-in extension XC-MISC
universe-ezK9kg-0 | [tigervnc] Initializing built-in extension XINERAMA
universe-ezK9kg-0 | [tigervnc] Initializing built-in extension XFIXES
universe-ezK9kg-0 | [tigervnc] Initializing built-in extension RENDER
universe-ezK9kg-0 | [tigervnc] Initializing built-in extension RANDR
universe-ezK9kg-0 | [tigervnc] Initializing built-in extension COMPOSITE
universe-ezK9kg-0 | [tigervnc] Initializing built-in extension DAMAGE
universe-ezK9kg-0 | [tigervnc] Initializing built-in extension MIT-SCREEN-SAVER
observation_n, reward_n, done_n, info = self.env.step(action_n)
File "/Users/jomyhuang/Desktop/PyProject/gym/gym/core.py", line 122, in step
universe-ezK9kg-0 | [tigervnc] Initializing built-in extension DOUBLE-BUFFER
universe-ezK9kg-0 | [tigervnc] Initializing built-in extension RECORD
universe-ezK9kg-0 | [tigervnc] Initializing built-in extension DPMS
universe-ezK9kg-0 | [tigervnc] Initializing built-in extension X-Resource
universe-ezK9kg-0 | [tigervnc] Initializing built-in extension XVideo
universe-ezK9kg-0 | [tigervnc] Initializing built-in extension XVideo-MotionCompensation
observation, reward, done, info = self._step(action)
universe-ezK9kg-0 | [tigervnc] Initializing built-in extension GLX
File "/Users/jomyhuang/Desktop/PyProject/universe/universe/wrappers/render.py", line 30, in _step
universe-ezK9kg-0 | [tigervnc]
universe-ezK9kg-0 | [tigervnc] Sat Dec 10 03:48:10 2016
universe-ezK9kg-0 | [tigervnc] vncext: VNC extension running!
universe-ezK9kg-0 | [tigervnc] vncext: Listening for VNC connections on all interface(s), port 5900
universe-ezK9kg-0 | [tigervnc] vncext: created VNC server for screen 0
universe-ezK9kg-0 | [tigervnc] [dix] Could not init font path element /usr/share/fonts/X11/Type1/, removing from list!
universe-ezK9kg-0 | [tigervnc] [dix] Could not init font path element /usr/share/fonts/X11/75dpi/, removing from list!
universe-ezK9kg-0 | [tigervnc] [dix] Could not init font path element /usr/share/fonts/X11/100dpi/, removing from list!
universe-ezK9kg-0 | [tigervnc]
observation_n, reward_n, done_n, info_n = self.env.step(action_n)
File "/Users/jomyhuang/Desktop/PyProject/gym/gym/core.py", line 122, in step
universe-ezK9kg-0 | [tigervnc] Sat Dec 10 03:48:11 2016
universe-ezK9kg-0 | [tigervnc] Connections: accepted: 127.0.0.1::58804
observation, reward, done, info = self._step(action)
File "/Users/jomyhuang/Desktop/PyProject/universe/universe/wrappers/throttle.py", line 117, in _step
universe-ezK9kg-0 | [tigervnc] SConnection: Client needs protocol version 3.8
universe-ezK9kg-0 | [tigervnc] SConnection: Client requests security type VncAuth(2)
universe-ezK9kg-0 | [tigervnc] VNCSConnST: Server default pixel format depth 24 (32bpp) little-endian rgb888
universe-ezK9kg-0 | [tigervnc] VNCSConnST: Client pixel format depth 24 (32bpp) little-endian bgr888
universe-ezK9kg-0 | [tigervnc] Connections: accepted: 172.17.0.1::36260
universe-ezK9kg-0 | [tigervnc]
universe-ezK9kg-0 | [tigervnc] Sat Dec 10 03:48:12 2016
universe-ezK9kg-0 | [tigervnc] Connections: closed: 172.17.0.1::36260 (Clean disconnection)
universe-ezK9kg-0 | [tigervnc] EncodeManager: Framebuffer updates: 0
universe-ezK9kg-0 | [tigervnc] EncodeManager: Total: 0 rects, 0 pixels
universe-ezK9kg-0 | [tigervnc] EncodeManager: 0 B (1:-nan ratio)
universe-ezK9kg-0 | [tigervnc] Connections: accepted: 172.17.0.1::36288
universe-ezK9kg-0 | [tigervnc] SConnection: Client needs protocol version 3.8
universe-ezK9kg-0 | [tigervnc] SConnection: Client requests security type VncAuth(2)
universe-ezK9kg-0 | [tigervnc] VNCSConnST: Server default pixel format depth 24 (32bpp) little-endian rgb888
observation_n, reward_n, done_n, info = self._substep(action_n)
File "/Users/jomyhuang/Desktop/PyProject/universe/universe/wrappers/throttle.py", line 132, in _substep
universe-ezK9kg-0 | [tigervnc] VNCSConnST: Client pixel format depth 24 (32bpp) little-endian bgr888
universe-ezK9kg-0 | [tigervnc]
universe-ezK9kg-0 | [tigervnc] Sat Dec 10 03:49:27 2016
universe-ezK9kg-0 | [tigervnc] Connections: closed: 172.17.0.1::36288 (Clean disconnection)
observation_n, reward_n, done_n, info = self.env.step(action_n)
File "/Users/jomyhuang/Desktop/PyProject/gym/gym/core.py", line 122, in step
universe-ezK9kg-0 | [tigervnc] EncodeManager: Framebuffer updates: 19
universe-ezK9kg-0 | [tigervnc] EncodeManager: Tight:
universe-ezK9kg-0 | [tigervnc] EncodeManager: Solid: 34 rects, 2.1579 Mpixels
universe-ezK9kg-0 | [tigervnc] EncodeManager: 544 B (1:15867.6 ratio)
universe-ezK9kg-0 | [tigervnc] EncodeManager: Bitmap RLE: 3 rects, 32.8 kpixels
universe-ezK9kg-0 | [tigervnc] EncodeManager: 238 B (1:551.412 ratio)
universe-ezK9kg-0 | [tigervnc] EncodeManager: Indexed RLE: 24 rects, 262.324 kpixels
universe-ezK9kg-0 | [tigervnc] EncodeManager: 11.0791 KiB (1:92.5151 ratio)
universe-ezK9kg-0 | [tigervnc] EncodeManager: Tight (JPEG):
observation, reward, done, info = self._step(action)
File "/Users/jomyhuang/Desktop/PyProject/universe/universe/envs/vnc_env.py", line 447, in _step
universe-ezK9kg-0 | [tigervnc] EncodeManager: Full Colour: 17 rects, 812.888 kpixels
universe-ezK9kg-0 | [tigervnc] EncodeManager: 116.543 KiB (1:27.2478 ratio)
universe-ezK9kg-0 | [tigervnc] EncodeManager: Total: 78 rects, 3.26591 Mpixels
self._handle_crashed_n(info_n)
File "/Users/jomyhuang/Desktop/PyProject/universe/universe/envs/vnc_env.py", line 518, in _handle_crashed_n
raise error.Error('{}/{} environments have crashed! Most recent error: {}'.format(len(self.crashed), self.n, errors))
universe.error.Error: 1/1 environments have crashed! Most recent error: {'0': 'Rewarder session failed: Lost connection: connection was closed uncleanly (peer dropped the TCP connection without previous WebSocket closing handshake) (clean=False code=1006)'}
[2016-12-10 11:49:27,249] Killing and removing container: id=f0778947a8eddf04192aae3c7cf58f3fd6c7f8d4bf11624e90448018c8491a7b. (If this command errors, you can always kill all automanaged environments on this Docker daemon via: docker rm -f $(docker ps -q -a -f 'label=com.openai.automanaged=true')
universe-ezK9kg-0 | [tigervnc] EncodeManager:

Support getting only game frames as observations

Would it be possible to support (through a wrapper or somesuch) to get only the game frame (for any environment & game)?
In other words, remove the browser and everything for the flash games.

Demo for "flashgames.DuskDrive-v0" cannot run on virtual machine guest Ubuntu 16.04 LTS

I have just installed all the requirements in VM Ubuntu 16.04 LTS as the doc said -- https://github.com/openai/universe.

Then I started docker and opened the browser-based VNC-client, all both worked well. But when I ran the demo for "flashgames.DuskDrive-v0" in PyCharm as above guide, I got the output also errors in console:

[2016-12-09 02:34:48,212] Making new env: flashgames.DuskDrive-v0
[2016-12-09 02:34:48,276] Writing logs to file: /tmp/universe-7615.log
[2016-12-09 02:34:48,289] Using the golang VNC implementation
[2016-12-09 02:34:48,289] Using VNCSession arguments: {'start_timeout': 7, 'fine_quality_level': 50, 'encoding': 'tight', 'subsample_level': 2}. (Customize by running "env.configure(vnc_kwargs={...})"
[2016-12-09 02:34:48,327] [0] Connecting to environment: vnc://localhost:5900 password=openai. Use the browser-based VNC client: http://localhost:15900/viewer/?password=openai
2016/12/09 02:34:48 I1209 02:34:48.329181 7615 gymvnc.go:417] [0:localhost:5900] opening connection to VNC server
2016/12/09 02:34:48 I1209 02:34:48.376161 7615 gymvnc.go:550] [0:localhost:5900] connection established
libGL error: unable to load driver: vmwgfx_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: vmwgfx
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
libEGL warning: DRI2: failed to open vmwgfx (search paths /usr/lib/x86_64-linux-gnu/dri:${ORIGIN}/dri:/usr/lib/dri)
libEGL warning: DRI2: failed to open swrast (search paths /usr/lib/x86_64-linux-gnu/dri:${ORIGIN}/dri:/usr/lib/dri)
2016/12/09 02:34:48 C1209 02:34:48.549093 7615 vncgl.go:40] failed to initialize glfw: APIUnavailable: EGL: Failed to initialize EGL: EGL is not or could not be initialized

Process finished with exit code 1

And the specific page of "flashgames.DuskDrive-v0" is blank.
My host OS is Windows 10 with graphics Intel HD5500 and NVIDIA GeForce 940m, I use VMware workstation 11 to virtualize the Ubuntu 16.06 LTS. And I try Universe in Ubuntu.

Could you please give me some advice, any solution would be appreciated.

gym.error.UnregisteredEnv:

Hi, I keep getting this error when trying to run the example script.. any help? I'm running MacOSX

Thanks

`[2016-12-08 20:57:07,253] Making new env: flashgames.DuskDrive-v0
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/gym/envs/registration.py", line 106, in spec
return self.env_specs[id]
KeyError: 'flashgames.DuskDrive-v0'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "universe.py", line 3, in
env = gym.make('flashgames.DuskDrive-v0')
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/gym/envs/registration.py", line 130, in make
return registry.make(id)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/gym/envs/registration.py", line 94, in make
spec = self.spec(id)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/gym/envs/registration.py", line 116, in spec
raise error.UnregisteredEnv('No registered env with id: {}'.format(id))
gym.error.UnregisteredEnv: No registered env with id: flashgames.DuskDrive-v0`

ubuntu 14.04 environments crashed!

on ubuntu 14.04 default installed. run example guide by "get start", the widow has poped up, but wait for a
while, it crashed.

Traceback (most recent call last):
  File "first.py", line 10, in <module>
    observation_n, reward_n, done_n, info = env.step(action_n)
  File "/home/liang/anaconda2/lib/python2.7/site-packages/gym/core.py", line 122, in step
    observation, reward, done, info = self._step(action)
  File "/home/liang/workspace/universe/universe/wrappers/timer.py", line 20, in _step
    observation_n, reward_n, done_n, info = self.env.step(action_n)
  File "/home/liang/anaconda2/lib/python2.7/site-packages/gym/core.py", line 122, in step
    observation, reward, done, info = self._step(action)
  File "/home/liang/workspace/universe/universe/wrappers/render.py", line 30, in _step
    observation_n, reward_n, done_n, info_n = self.env.step(action_n)
  File "/home/liang/anaconda2/lib/python2.7/site-packages/gym/core.py", line 122, in step
    observation, reward, done, info = self._step(action)
  File "/home/liang/workspace/universe/universe/wrappers/throttle.py", line 117, in _step
    observation_n, reward_n, done_n, info = self._substep(action_n)
  File "/home/liang/workspace/universe/universe/wrappers/throttle.py", line 132, in _substep
    observation_n, reward_n, done_n, info = self.env.step(action_n)
  File "/home/liang/anaconda2/lib/python2.7/site-packages/gym/core.py", line 122, in step
    observation, reward, done, info = self._step(action)
  File "/home/liang/workspace/universe/universe/envs/vnc_env.py", line 447, in _step
    self._handle_crashed_n(info_n)
  File "/home/liang/workspace/universe/universe/envs/vnc_env.py", line 518, in _handle_crashed_n
    raise error.Error('{}/{} environments have crashed! Most recent error: {}'.format(len(self.crashed), self.n, errors))
universe.error.Error: 1/1 environments have crashed! Most recent error: {'0': 'Rewarder session failed: Lost connection: connection was closed uncleanly (peer dropped the TCP connection without previous WebSocket closing handshake) (clean=False code=1006)'}

did i do anything wrong?

cannot fetch flashgames

@gdb when i run my script,it comes up with the error below:

universe-MFvCyo-0 | [unpack-lfs] [2016-12-13 02:25:12,007] Fetching files: git lfs pull -I git-lfs/flashgames.CoasterRacer-v0.tar.gz
[2016-12-13 10:26:11,639] [0] Closing rewarder connection
Traceback (most recent call last):
File "test.py", line 10, in
observation_n,reward_n,done_n,info = env.step(action_n)
File "/Users/summermagic/anaconda/lib/python2.7/site-packages/gym/core.py", line 122, in step
observation, reward, done, info = self._step(action)
File "/Users/summermagic/workspace/universe/universe/wrappers/timer.py", line 20, in _step
observation_n, reward_n, done_n, info = self.env.step(action_n)
File "/Users/summermagic/anaconda/lib/python2.7/site-packages/gym/core.py", line 122, in step
observation, reward, done, info = self._step(action)
File "/Users/summermagic/workspace/universe/universe/wrappers/render.py", line 30, in _step
observation_n, reward_n, done_n, info_n = self.env.step(action_n)
universe-MFvCyo-0 | [2016-12-13 02:26:11,579] [INFO:universe.rewarder.remote] WebSocket connection closed: connection was closed uncleanly (peer dropped the TCP connection without previous WebSocket closing handshake)
File "/Users/summermagic/anaconda/lib/python2.7/site-packages/gym/core.py", line 122, in step
observation, reward, done, info = self._step(action)
File "/Users/summermagic/workspace/universe/universe/wrappers/throttle.py", line 117, in _step
observation_n, reward_n, done_n, info = self._substep(action_n)
File "/Users/summermagic/workspace/universe/universe/wrappers/throttle.py", line 132, in _substep
observation_n, reward_n, done_n, info = self.env.step(action_n)
File "/Users/summermagic/anaconda/lib/python2.7/site-packages/gym/core.py", line 122, in step
observation, reward, done, info = self._step(action)
File "/Users/summermagic/workspace/universe/universe/envs/vnc_env.py", line 447, in _step
self._handle_crashed_n(info_n)
File "/Users/summermagic/workspace/universe/universe/envs/vnc_env.py", line 518, in _handle_crashed_n
universe-MFvCyo-0 | [tigervnc]
raise error.Error('{}/{} environments have crashed! Most recent error: {}'.format(len(self.crashed), self.n, errors))
universe.error.universe-MFvCyo-0 | [tigervnc] Xvnc TigerVNC 1.7.0 - built Sep 8 2016 10:39:22
Error: 1/1 environments have crashed! Most recent error: {'0': 'Rewarder session failed: Lost connection: connection was closed uncleanly (peer dropped the TCP connection without previous WebSocket closing handshake) (clean=False code=1006)'}

connection reset by peer when pulling from docker

Everytime I run the exemple script. There is a docker pulled to my system. After about an 1 hour of downloading I will get read

tcp 192.168.1.25:40602->54.231.120.227:443: read: connection reset by peer

I have no idea where this is coming from. Docker works fine. I am on Ubuntu 16.04.

Running behind a firewall - 'env.configure(remotes=1)' throws error "Could not resolve hostname github.com" on demo code

While attempting to execute the demo on https://github.com/openai/universe#run-your-first-agent the following error is thrown:

 git lfs pull failed; detected from output: stdout=b'\rGit LFS: (0 of 1 files) 0 B / 9.52 MB                                          \n' stderr=b'batch request: exit status 255: ssh: Could not resolve hostname github.com: No address associated with hostname\n'
universe-PrFyC2-0 | [unpack-lfs] [2016-12-16 20:32:54,550] unpack failed

I'm assuming that this is happening inside the Docker container since I have $http_proxy and $https_proxy set in my local shell and able to use git from the command line. The OS is Ubuntu 14.04.

What is the right way to set the proxy so that Universe knows about it?

$ python
Python 2.7.12 |Anaconda 4.2.0 (64-bit)| (default, Jul  2 2016, 17:42:40)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
>>> import gym
>>> import universe  # register the universe environments
>>>
>>> env = gym.make('flashgames.DuskDrive-v0')
[2016-12-16 15:32:33,708] Making new env: flashgames.DuskDrive-v0
>>> env.configure(remotes=1)
[2016-12-16 15:32:34,917] Writing logs to file: /tmp/universe-11891.log
[2016-12-16 15:32:34,942] [0] Creating container: image=quay.io/openai/universe.flashgames:0.20.8. Run the same thing by hand as: docker run -p 5900:5900 -p 15900:15900 --cap-add SYS_ADMIN --ipc host --privileged quay.io/openai/universe.flashgames:0.20.8
[2016-12-16 15:32:35,519] Remote closed: address=localhost:5900
[2016-12-16 15:32:35,523] At least one sockets was closed by the remote. Sleeping 1s...
universe-PrFyC2-0 | Setting VNC and rewarder password: openai
universe-PrFyC2-0 | [Fri Dec 16 20:32:35 UTC 2016] Waiting for /tmp/.X11-unix/X0 to be created (try 1/10)
universe-PrFyC2-0 | [Fri Dec 16 20:32:35 UTC 2016] [/usr/local/bin/sudoable-env-setup] Disabling outbound network traffic for none
universe-PrFyC2-0 | [init] [2016-12-16 20:32:35,666] PID 47 launched with command ['sudo', '-H', '-u', 'nobody', 'DISPLAY=:0', 'DBUS_SESSION_BUS_ADDRESS=/dev/null', '/app/universe-envs/controlplane/bin/controlplane.py', '--rewarder-port=15901']
universe-PrFyC2-0 | [init] [2016-12-16 20:32:35,689] init detected end of child process 49 with exit code 0, not killed by signal
universe-PrFyC2-0 | WebSocket server settings:
universe-PrFyC2-0 |   - Listen on :5898
universe-PrFyC2-0 |   - Flash security policy server
universe-PrFyC2-0 |   - No SSL/TLS support (no cert file)
universe-PrFyC2-0 |   - proxying from :5898 to localhost:5900
universe-PrFyC2-0 | [2016-12-16 20:32:36,318] [INFO:root] Starting play_controlplane.py with the following: command=['/app/universe-envs/controlplane/bin/controlplane.py', '--rewarder-port=15901'] args=Namespace(bot_demonstration=False, demonstration=False, env_id=None, idle_timeout=None, integrator_mode=False, no_env=False, no_rewarder=False, no_scorer=False, no_vexpect=False, remotes='vnc://127.0.0.1:5900', rewarder_fps=60, rewarder_port=15901, verbosity=0) env=environ({'USER': 'nobody', 'TERM': 'xterm', 'PATH': '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin', 'SUDO_UID': '0', 'SUDO_GID': '0', 'MAIL': '/var/mail/nobody', 'HOSTNAME': '360ecf58cb56', 'DBUS_SESSION_BUS_ADDRESS': '/dev/null', 'HOME': '/nonexistent', 'USERNAME': 'nobody', 'LOGNAME': 'nobody', 'SHELL': '/usr/sbin/nologin', 'DISPLAY': ':0', 'SUDO_COMMAND': '/app/universe-envs/controlplane/bin/controlplane.py --rewarder-port=15901', 'SUDO_USER': 'root'})
universe-PrFyC2-0 | [2016-12-16 20:32:36,319] [INFO:root] [EnvStatus] Changing env_state: None (env_id=None) -> None (env_id=None) (episode_id: 0->0, fps=60)
universe-PrFyC2-0 | [2016-12-16 20:32:36,319] [INFO:universe.rewarder.remote] Starting Rewarder on port=15901
universe-PrFyC2-0 | [2016-12-16 20:32:36,325] [INFO:universe.extra.universe.wrappers.logger] Running VNC environments with Logger set to print_frequency=5. To change this, pass "print_frequency=k" or "print_frequency=None" to "env.configure".
universe-PrFyC2-0 | [2016-12-16 20:32:36,326] [INFO:universe.envs.vnc_env] Using the golang VNC implementation
universe-PrFyC2-0 | [2016-12-16 20:32:36,326] [INFO:universe.envs.vnc_env] Using VNCSession arguments: {'start_timeout': 7, 'compress_level': 9, 'fine_quality_level': 50, 'subsample_level': 2, 'encoding': 'zrle'}. (Customize by running "env.configure(vnc_kwargs={...})"
universe-PrFyC2-0 | [2016-12-16 20:32:36,328] [INFO:universe.envs.vnc_env] Printed stats will ignore clock skew. (This usually makes sense only when the environment and agent are on the same machine.)
universe-PrFyC2-0 | [2016-12-16 20:32:36,334] [INFO:universe.envs.vnc_env] [0] Connecting to environment: vnc://127.0.0.1:5900 password=openai. Use the browser-based VNC client: http://None/viewer/?password=openai
universe-PrFyC2-0 | [2016-12-16 20:32:36,334] [INFO:universe.extra.universe.envs.vnc_env] [0] Connecting to environment details: vnc_address=127.0.0.1:5900 vnc_password=openai rewarder_address=None rewarder_password=openai
universe-PrFyC2-0 | 2016/12/16 20:32:36 I1216 20:32:36.334939 51 gymvnc.go:417] [0:127.0.0.1:5900] opening connection to VNC server
universe-PrFyC2-0 | [2016-12-16 20:32:36,335] [INFO:root] [EnvStatus] Changing env_state: None (env_id=None) -> resetting (env_id=None) (episode_id: 0->1, fps=60)
universe-PrFyC2-0 | [2016-12-16 20:32:36,335] [INFO:root] [MainThread] Env state: env_id=None episode_id=1
universe-PrFyC2-0 | 2016/12/16 20:32:36 I1216 20:32:36.346707 51 gymvnc.go:550] [0:127.0.0.1:5900] connection established
universe-PrFyC2-0 | [Fri Dec 16 20:32:36 UTC 2016] [/usr/local/bin/sudoable-env-setup] Disabling outbound network traffic for none
universe-PrFyC2-0 | [2016-12-16 20:32:36,386] [INFO:gym_flashgames.launcher] [MainThread] Launching new Chrome process (attempt 0/10)
universe-PrFyC2-0 | [2016-12-16 20:32:36,387] [INFO:root] Replacing selenium_wrapper_server since we currently do it at every episode boundary
[2016-12-16 15:32:36,524] Remote closed: address=localhost:5900
[2016-12-16 15:32:36,525] Remote closed: address=localhost:15900
[2016-12-16 15:32:36,525] At least one sockets was closed by the remote. Sleeping 1s...
universe-PrFyC2-0 | [2016-12-16 20:32:36,529] [selenium_wrapper_server] Calling webdriver.Chrome()
universe-PrFyC2-0 | [2016-12-16 20:32:36,530] [INFO:universe.rewarder.remote] Client connecting: peer=tcp4:127.0.0.1:33752 observer=True
universe-PrFyC2-0 | [2016-12-16 20:32:36,531] [INFO:universe.rewarder.remote] WebSocket connection established
universe-PrFyC2-0 | [init] [2016-12-16 20:32:36,602] init detected end of child process 17 with exit code 0, not killed by signal
[2016-12-16 15:32:37,527] Using the golang VNC implementation
[2016-12-16 15:32:37,527] Using VNCSession arguments: {'subsample_level': 2, 'start_timeout': 7, 'fine_quality_level': 50, 'encoding': 'tight'}. (Customize by running "env.configure(vnc_kwargs={...})"
universe-PrFyC2-0 | [2016-12-16 20:32:37,530] [INFO:universe.rewarder.remote] WebSocket connection closed: connection was closed uncleanly (peer dropped the TCP connection without previous WebSocket closing handshake)
universe-PrFyC2-0 | [2016-12-16 20:32:37,530] [INFO:universe.rewarder.remote] [Twisted] Non-active client disconnected
[2016-12-16 15:32:37,533] [0] Connecting to environment: vnc://localhost:5900 password=openai. Use the browser-based VNC client: http://localhost:15900/viewer/?password=openai
2016/12/16 15:32:37 I1216 15:32:37.534695 11891 gymvnc.go:417] [0:localhost:5900] opening connection to VNC server
>>> 2016/12/16 15:32:37 I1216 15:32:37.545634 11891 gymvnc.go:550] [0:localhost:5900] connection established
universe-PrFyC2-0 | [2016-12-16 20:32:37,559] [INFO:universe.rewarder.remote] Client connecting: peer=tcp4:127.0.0.1:33780 observer=False
universe-PrFyC2-0 | [2016-12-16 20:32:37,560] [INFO:universe.rewarder.remote] WebSocket connection established
universe-PrFyC2-0 | [2016-12-16 20:32:38,107] [selenium_wrapper_server] Call to webdriver.Chrome() completed: 1.58s
universe-PrFyC2-0 | [2016-12-16 20:32:38,110] [INFO:gym_flashgames.launcher] [MainThread] Navigating browser to url=http://localhost
universe-PrFyC2-0 | [2016-12-16 20:32:38,432] [INFO:root] [EnvStatus] Changing env_state: resetting (env_id=None) -> running (env_id=None) (episode_id: 1->1, fps=60)
universe-PrFyC2-0 | Manhole[1481920358.4369]: Patched <built-in function fork> and <built-in function fork>.
universe-PrFyC2-0 | Manhole[1481920358.4388]: Manhole UDS path: /tmp/manhole-51
universe-PrFyC2-0 | Manhole[1481920358.4388]: Waiting for new connection (in pid:51) ...
universe-PrFyC2-0 | [2016-12-16 20:32:41,352] [INFO:universe.wrappers.logger] Stats for the past 5.02s: vnc_updates_ps=2.2 n=1 reaction_time=None observation_lag=None action_lag=None reward_ps=0.0 reward_total=0.0 vnc_bytes_ps[total]=508367.0 vnc_pixels_ps[total]=494506.0 reward_lag=None rewarder_message_lag=None fps=35
universe-PrFyC2-0 | [2016-12-16 20:32:43,435] [INFO:universe.pyprofile] [pyprofile] period=5.00s timers={"vnc_env.VNCEnv.vnc_session.step": {"std": "32.90us", "mean": "116.88us", "calls": 301}, "rewarder.frame": {"std": "55.19us", "mean": "16.79ms", "calls": 300}, "rewarder.sleep": {"std": "278.85us", "mean": "16.14ms", "calls": 300}, "rewarder.compute_reward": {"std": "252.86us", "mean": "331.82us", "calls": 301}} counters={} gauges={} (export_time=156.16us)
universe-PrFyC2-0 | [2016-12-16 20:32:43,435] [INFO:universe.rewarder.remote] [Rewarder] Over past 5.00s, sent 1 reward messages to agent: reward=0 reward_min=0 reward_max=0 done=False info={'rewarder.vnc.updates.bytes': None, 'rewarder.vnc.updates.n': None, 'rewarder.profile': '<607 bytes>', 'rewarder.vnc.updates.pixels': None}
universe-PrFyC2-0 | [2016-12-16 20:32:46,369] [INFO:universe.wrappers.logger] Stats for the past 5.02s: vnc_updates_ps=0.0 n=1 reaction_time=None observation_lag=None action_lag=None reward_ps=0.0 reward_total=0.0 vnc_bytes_ps[total]=0.0 vnc_pixels_ps[total]=0.0 reward_lag=None rewarder_message_lag=None fps=60
universe-PrFyC2-0 | [2016-12-16 20:32:48,451] [INFO:universe.pyprofile] [pyprofile] period=5.02s timers={"vnc_env.VNCEnv.vnc_session.step": {"std": "27.39us", "mean": "136.92us", "calls": 301}, "rewarder.frame": {"std": "11.39us", "mean": "16.78ms", "calls": 301}, "rewarder.sleep": {"std": "119.29us", "mean": "16.13ms", "calls": 301}, "rewarder.compute_reward": {"std": "86.14us", "mean": "345.10us", "calls": 301}} counters={"agent_conn.reward": {"mean": 0.0, "std": 0, "calls": 1}} gauges={} (export_time=139.24us)
universe-PrFyC2-0 | [2016-12-16 20:32:48,452] [INFO:universe.rewarder.remote] [Rewarder] Over past 5.02s, sent 1 reward messages to agent: reward=0 reward_min=0 reward_max=0 done=False info={'rewarder.vnc.updates.bytes': None, 'rewarder.vnc.updates.n': None, 'rewarder.profile': '<676 bytes>', 'rewarder.vnc.updates.pixels': None}
universe-PrFyC2-0 | [2016-12-16 20:32:51,385] [INFO:universe.wrappers.logger] Stats for the past 5.02s: vnc_updates_ps=0.0 n=1 reaction_time=None observation_lag=None action_lag=None reward_ps=0.0 reward_total=0.0 vnc_bytes_ps[total]=0.0 vnc_pixels_ps[total]=0.0 reward_lag=None rewarder_message_lag=None fps=60
universe-PrFyC2-0 | [2016-12-16 20:32:53,468] [INFO:universe.pyprofile] [pyprofile] period=5.02s timers={"vnc_env.VNCEnv.vnc_session.step": {"std": "27.14us", "mean": "139.89us", "calls": 301}, "rewarder.frame": {"std": "34.76us", "mean": "16.78ms", "calls": 301}, "rewarder.sleep": {"std": "110.90us", "mean": "16.14ms", "calls": 301}, "rewarder.compute_reward": {"std": "78.92us", "mean": "341.96us", "calls": 301}} counters={"agent_conn.reward": {"mean": 0.0, "std": 0, "calls": 1}} gauges={} (export_time=443.22us)
universe-PrFyC2-0 | [2016-12-16 20:32:53,469] [INFO:universe.rewarder.remote] [Rewarder] Over past 5.02s, sent 1 reward messages to agent: reward=0 reward_min=0 reward_max=0 done=False info={'rewarder.vnc.updates.bytes': None, 'rewarder.vnc.updates.n': None, 'rewarder.profile': '<678 bytes>', 'rewarder.vnc.updates.pixels': None}
universe-PrFyC2-0 | [2016-12-16 20:32:53,910] [INFO:universe.rewarder.remote] CONNECTION STATUS: Marking connection as active: observer=False peer=tcp4:127.0.0.1:33780 total_conns=1
[2016-12-16 15:32:53,930] [0:localhost:5900] Sending reset for env_id=flashgames.DuskDrive-v0 fps=60 episode_id=0
universe-PrFyC2-0 | [2016-12-16 20:32:53,931] [INFO:universe.rewarder.remote] Received reset message: {'body': {'fps': 60, 'env_id': 'flashgames.DuskDrive-v0', 'seed': None}, 'method': 'v0.env.reset', 'headers': {'episode_id': '0', 'message_id': 10, 'sent_at': 1481920373.930256}}
universe-PrFyC2-0 | [2016-12-16 20:32:53,942] [INFO:root] [EnvStatus] Changing env_state: running (env_id=None) -> resetting (env_id=flashgames.DuskDrive-v0) (episode_id: 1->2, fps=60)
universe-PrFyC2-0 | [2016-12-16 20:32:53,942] [ERROR:root] Closing server (via subprocess.close()) and all chromes (via pkill chromedriver || :; pkill chrome || :)
universe-PrFyC2-0 | [2016-12-16 20:32:53,951] [INFO:root] [Rewarder] Blocking until env finishes resetting
universe-PrFyC2-0 | [init] [2016-12-16 20:32:53,960] init detected end of child process 98 with exit code 0, killed by SIGTERM: 15
universe-PrFyC2-0 | [2016-12-16 20:32:53,963] [INFO:root] [EnvController] RESET CAUSE: changing out environments due to v0.env.reset (with episode_id=0): flashgames.DuskDrive-v0 -> flashgames.DuskDrive-v0 (new episode_id=2 fps=60)
universe-PrFyC2-0 | [2016-12-16 20:32:53,963] [INFO:root] [EnvController] Env state: env_id=flashgames.DuskDrive-v0 episode_id=2
universe-PrFyC2-0 | [init] [2016-12-16 20:32:53,966] init detected end of child process 113 with exit code 0, not killed by signal
universe-PrFyC2-0 | [init] [2016-12-16 20:32:53,968] init detected end of child process 320 with exit code 0, killed by SIGTERM: 15
universe-PrFyC2-0 | [init] [2016-12-16 20:32:53,969] init detected end of child process 342 with exit code 0, killed by SIGTERM: 15
universe-PrFyC2-0 | [Fri Dec 16 20:32:54 UTC 2016] [/usr/local/bin/sudoable-env-setup] Allowing outbound network traffic to non-private IPs for git-lfs. (Going to fetch files via git lfs.)
universe-PrFyC2-0 | [init] [2016-12-16 20:32:54,083] init detected end of child process 101 with exit code 0, not killed by signal
universe-PrFyC2-0 | [init] [2016-12-16 20:32:54,083] init detected end of child process 109 with exit code 0, not killed by signal
universe-PrFyC2-0 | [init] [2016-12-16 20:32:54,083] init detected end of child process 110 with exit code 0, not killed by signal
universe-PrFyC2-0 | [init] [2016-12-16 20:32:54,083] init detected end of child process 112 with exit code 0, killed by SIGTERM: 15
universe-PrFyC2-0 | [unpack-lfs] [2016-12-16 20:32:54,147] Fetching files: git lfs pull -I git-lfs/flashgames.DuskDrive-v0.tar.gz
universe-PrFyC2-0 | [unpack-lfs] [2016-12-16 20:32:54,507] Finished running git lfs pull
universe-PrFyC2-0 | [unpack-lfs] [2016-12-16 20:32:54,507] git lfs pull failed; detected from output: stdout=b'\rGit LFS: (0 of 1 files) 0 B / 9.52 MB                                          \n' stderr=b'batch request: exit status 255: ssh: Could not resolve hostname github.com: No address associated with hostname\n'
universe-PrFyC2-0 | [unpack-lfs] [2016-12-16 20:32:54,550] unpack failed
universe-PrFyC2-0 | Traceback (most recent call last):
universe-PrFyC2-0 |   File "/app/universe-envs/controlplane/bin/controlplane.py", line 734, in <module>
universe-PrFyC2-0 |     sys.exit(main())
universe-PrFyC2-0 |   File "/app/universe-envs/controlplane/bin/controlplane.py", line 726, in main
universe-PrFyC2-0 |     error_buffer.blocking_check(timeout=60)
universe-PrFyC2-0 |   File "/app/universe/universe/utils/__init__.py", line 56, in blocking_check
universe-PrFyC2-0 |     self.check(timeout)
universe-PrFyC2-0 |   File "/app/universe/universe/utils/__init__.py", line 48, in check
universe-PrFyC2-0 |     raise error
universe-PrFyC2-0 | universe.error.Error: Traceback (most recent call last):
universe-PrFyC2-0 |   File "/app/universe-envs/controlplane/bin/controlplane.py", line 90, in run
universe-PrFyC2-0 |     self.do_run()
universe-PrFyC2-0 |   File "/app/universe-envs/controlplane/bin/controlplane.py", line 96, in do_run
universe-PrFyC2-0 |     self.process_control_messages()
universe-PrFyC2-0 |   File "/app/universe-envs/controlplane/bin/controlplane.py", line 137, in process_control_messages
universe-PrFyC2-0 |     self.process_rpc(context, message)
universe-PrFyC2-0 |   File "/app/universe-envs/controlplane/bin/controlplane.py", line 202, in process_rpc
universe-PrFyC2-0 |     self.reset()
universe-PrFyC2-0 |   File "/app/universe-envs/controlplane/bin/controlplane.py", line 243, in reset
universe-PrFyC2-0 |     self.env_launcher.reset()
universe-PrFyC2-0 |   File "/app/universe-envs/flashgames/gym_flashgames/launcher.py", line 38, in reset
universe-PrFyC2-0 |     self._git_lfs_pull()
universe-PrFyC2-0 |   File "/app/universe-envs/flashgames/gym_flashgames/launcher.py", line 69, in _git_lfs_pull
universe-PrFyC2-0 |     subprocess.check_call(['sudo', '/usr/local/bin/sudoable-env-setup', 'git-lfs', self.controlplane_spec.id])
universe-PrFyC2-0 |   File "/usr/lib/python3.5/subprocess.py", line 581, in check_call
universe-PrFyC2-0 |     raise CalledProcessError(retcode, cmd)
universe-PrFyC2-0 | subprocess.CalledProcessError: Command '['sudo', '/usr/local/bin/sudoable-env-setup', 'git-lfs', 'flashgames.DuskDrive-v0']' returned non-zero exit status 1
universe-PrFyC2-0 | [init] [2016-12-16 20:32:54,874] init detected end of child process 47 with exit code 1, not killed by signal
universe-PrFyC2-0 | [init] [2016-12-16 20:32:54,874] main process died, init exiting with code 1

environment crash

sudo docker run -p 5901:5900 -p 15901:15900 --cap-add SYS_ADMIN --ipc host --privileged quay.io/openai/universe.flashgames:0.20.1
And then I use vnc to connect to the docker image.

 update queue max of 60 reached; pausing further updates
[unpack-lfs] [2016-12-07 03:30:30,215] Finished running git lfs pull
[unpack-lfs] [2016-12-07 03:30:30,216] git lfs pull failed; detected from contents. stdout=b'\rGit LFS: (0 of 1 files) 0 B / 9.52 MB                                          \n' stderr=b'http: Post https://api.github.com/lfs/openai/universe-flashgames-build/objects/batch: net/http: TLS handshake timeout\n'
[unpack-lfs] [2016-12-07 03:30:30,286] unpack failed
Traceback (most recent call last):
  File "/app/universe-envs/controlplane/bin/controlplane.py", line 732, in <module>
    sys.exit(main())
  File "/app/universe-envs/controlplane/bin/controlplane.py", line 724, in main
    error_buffer.blocking_check(timeout=60)
  File "/app/universe/universe/utils/__init__.py", line 56, in blocking_check
    self.check(timeout)
  File "/app/universe/universe/utils/__init__.py", line 48, in check
    raise error
universe.error.Error: Traceback (most recent call last):
  File "/app/universe-envs/controlplane/bin/controlplane.py", line 90, in run
    self.do_run()
  File "/app/universe-envs/controlplane/bin/controlplane.py", line 96, in do_run
    self.process_control_messages()
  File "/app/universe-envs/controlplane/bin/controlplane.py", line 137, in process_control_messages
    self.process_rpc(context, message)
  File "/app/universe-envs/controlplane/bin/controlplane.py", line 202, in process_rpc
    self.reset()
  File "/app/universe-envs/controlplane/bin/controlplane.py", line 243, in reset
    self.env_launcher.reset()
  File "/app/universe-envs/flashgames/gym_flashgames/launcher.py", line 38, in reset
    self._git_lfs_pull()
  File "/app/universe-envs/flashgames/gym_flashgames/launcher.py", line 69, in _git_lfs_pull
    subprocess.check_call(['sudo', '/usr/local/bin/sudoable-env-setup', 'git-lfs', self.controlplane_spec.id])
  File "/usr/lib/python3.5/subprocess.py", line 581, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['sudo', '/usr/local/bin/sudoable-env-setup', 'git-lfs', 'flashgames.DuskDrive-v0']' returned non-zero exit status 1
[init] [2016-12-07 03:30:30,463] init detected end of child process 55 with exit code 1, not killed by signal

Couldn't open /home/xvnc/.vnc/passwd for writing

Having trouble running the VNC server in the docker container. Tried running it manually too, same issue.
Ubuntu 16.04 / python 2.7

[2016-12-05 10:10:08,009] Making new env: flashgames.DuskDrive-v0
[2016-12-05 10:10:08,840] Writing logs to file: /tmp/universe-12876.log
[2016-12-05 10:10:08,857] [0] Creating container: image=quay.io/openai/universe.flashgames:0.20.1. Run the same thing by hand as: docker run -p 5900:5900 -p 15900:15900 --cap-add SYS_ADMIN --ipc host --privileged quay.io/openai/universe.flashgames:0.20.1
[2016-12-05 10:10:09,113] Remote closed: address=localhost:15900
[2016-12-05 10:10:09,116] Remote closed: address=localhost:5900
[2016-12-05 10:10:09,116] At least one sockets was closed by the remote. Sleeping 1s...
universe-hGfDbl-0 | Setting VNC and rewarder password: openai
universe-hGfDbl-0 | Couldn't open /home/xvnc/.vnc/passwd for writing
universe-hGfDbl-0 | Traceback (most recent call last):
universe-hGfDbl-0 | File "/app/universe-envs/flashgames/init", line 258, in
universe-hGfDbl-0 | sys.exit(main())
universe-hGfDbl-0 | File "/app/universe-envs/flashgames/init", line 194, in main
universe-hGfDbl-0 | subprocess.check_call(['/app/universe-envs/base/openai-setpassword'])
universe-hGfDbl-0 | File "/usr/lib/python3.5/subprocess.py", line 581, in check_call
universe-hGfDbl-0 | raise CalledProcessError(retcode, cmd)
universe-hGfDbl-0 | subprocess.CalledProcessError: Command '['/app/universe-envs/base/openai-setpassword']' returned non-zero exit status 1
[2016-12-05 10:10:10,117] Remote closed: address=localhost:5900
[2016-12-05 10:10:10,118] VNC server localhost:5900 did not come up yet (error: [Errno 111] Connection refused). Sleeping for 1s.

OSError: [Errno 13] Permission denied:

Exception:
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 122, in main
status = self.run(options, args)
File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 283, in run
requirement_set.install(install_options, global_options, root=options.root_path)
File "/Library/Python/2.7/site-packages/pip/req.py", line 1435, in install
requirement.install(install_options, global_options, *args, **kwargs)
File "/Library/Python/2.7/site-packages/pip/req.py", line 671, in install
self.move_wheel_files(self.source_dir, root=root)
File "/Library/Python/2.7/site-packages/pip/req.py", line 901, in move_wheel_files
pycompile=self.pycompile,
File "/Library/Python/2.7/site-packages/pip/wheel.py", line 215, in move_wheel_files
clobber(source, lib_dir, True)
File "/Library/Python/2.7/site-packages/pip/wheel.py", line 205, in clobber
os.makedirs(destdir)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/autobahn'

ubuntu 16.04 runtime.yml error

i have all the packages for universe but it is having some errors when i try to import it.
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/prakash/anaconda3/lib/python3.5/site-packages/universe/__init__.py", line 21, in <module> from universe import error, envs File "/home/prakash/anaconda3/lib/python3.5/site-packages/universe/envs/__init__.py", line 1, in <module> import universe.envs.vnc_env File "/home/prakash/anaconda3/lib/python3.5/site-packages/universe/envs/vnc_env.py", line 20, in <module> from universe.runtimes import registration File "/home/prakash/anaconda3/lib/python3.5/site-packages/universe/runtimes/__init__.py", line 6, in <module> with open(os.path.join(os.path.dirname(__file__), '../../runtimes.yml')) as f: FileNotFoundError: [Errno 2] No such file or directory: '/home/prakash/anaconda3/lib/python3.5/site-packages/universe/runtimes/../../runtimes.yml'

[0:localhost:5900] Waiting on rewarder: Could not establish rewarder TCP connection.

I am trying universe after installing docker and universe python package. I followed the instruction on the blog page https://openai.com/blog/universe/ and run the code below:

"""
import gym
import universe # register Universe environments into Gym

env = gym.make('flashgames.DuskDrive-v0') # any Universe environment ID here
env.configure(remotes="vnc://localhost:5900+15900")
observation_n = env.reset()

while True:
action_n = [[('KeyEvent', 'ArrowUp', True)] for _ in observation_n]
observation_n, reward_n, done_n, info = env.step(action_n)
env.render()
"""

However, I got some errors below:

"""
[2016-12-05 17:18:53,591] Making new env: flashgames.DuskDrive-v0
[2016-12-05 17:18:53,594] Writing logs to file: /tmp/universe-23338.log
[2016-12-05 17:18:53,595] Using the golang VNC implementation
[2016-12-05 17:18:53,595] Using VNCSession arguments: {'subsample_level': 2, 'start_timeout': 7, 'fine_quality_level': 50, 'encoding': 'tight'}. (Customize by running "env.configure(vnc_kwargs={...})"
[2016-12-05 17:18:53,596] [0] Connecting to environment: vnc://localhost:5900 password=openai. Use the browser-based VNC client: http://localhost:15900/viewer/?password=openai
2016/12/05 17:18:53 I1205 17:18:53.596898 23338 gymvnc.go:417] [0:localhost:5900] opening connection to VNC server
[2016-12-05 17:18:53,601] [0:localhost:5900] Waiting on rewarder: Could not establish rewarder TCP connection. Retry in 1s (slept 0s/7s): Connection was refused by other side: 111: Connection refused.
[2016-12-05 17:18:54,602] [0:localhost:5900] Waiting on rewarder: Could not establish rewarder TCP connection. Retry in 3s (slept 1s/7s): Connection was refused by other side: 111: Connection refused.
[2016-12-05 17:18:57,605] [0:localhost:5900] Waiting on rewarder: Could not establish rewarder TCP connection. Retry in 5s (slept 4s/7s): Connection was refused by other side: 111: Connection refused.
[2016-12-05 17:18:58,438] [0] Closing rewarder connection
"""

Do you have any idea how to solve this?

Thanks.

[Docker] Error fetching server API

When I run this script, it comes up with the error, but when I remove the observation_n = env.reset() it works fine

import gym
import universe  # register the universe environments

env = gym.make('flashgames.CoasterRacer-v0')
observation_n = env.reset()

The observation_n error:

Traceback (most recent call last):
  File "/home/ubuntu/workspace/gim.py", line 5, in <module>
    observation_n = env.reset()
  File "/home/ubuntu/workspace/gym/gym/core.py", line 137, in reset
    self.configure()
  File "/home/ubuntu/workspace/gym/gym/core.py", line 246, in configure
    self._configure(*args, **kwargs)
  File "/home/ubuntu/workspace/universe/universe/vectorized/core.py", line 57, in _configure
    super(Wrapper, self)._configure(**kwargs)
  File "/home/ubuntu/workspace/gym/gym/core.py", line 350, in _configure
    return self.env.configure(*args, **kwargs)
  File "/home/ubuntu/workspace/gym/gym/core.py", line 246, in configure
    self._configure(*args, **kwargs)
  File "/home/ubuntu/workspace/universe/universe/wrappers/render.py", line 18, in _configure
    super(Render, self)._configure(**kwargs)
  File "/home/ubuntu/workspace/universe/universe/vectorized/core.py", line 57, in _configure
    super(Wrapper, self)._configure(**kwargs)
  File "/home/ubuntu/workspace/gym/gym/core.py", line 350, in _configure
    return self.env.configure(*args, **kwargs)
  File "/home/ubuntu/workspace/gym/gym/core.py", line 246, in configure
    self._configure(*args, **kwargs)
  File "/home/ubuntu/workspace/universe/universe/wrappers/throttle.py", line 27, in _configure
    super(Throttle, self)._configure(**kwargs)
  File "/home/ubuntu/workspace/universe/universe/vectorized/core.py", line 57, in _configure
    super(Wrapper, self)._configure(**kwargs)
  File "/home/ubuntu/workspace/gym/gym/core.py", line 350, in _configure
    return self.env.configure(*args, **kwargs)
  File "/home/ubuntu/workspace/gym/gym/core.py", line 246, in configure
    self._configure(*args, **kwargs)
  File "/home/ubuntu/workspace/universe/universe/envs/vnc_env.py", line 192, in _configure
    api_key=api_key,
  File "/home/ubuntu/workspace/universe/universe/remotes/build.py", line 19, in build
    n=n,
  File "/home/ubuntu/workspace/universe/universe/remotes/docker_remote.py", line 43, in __init__
    self._assigner = PortAssigner(reuse=reuse)
  File "/home/ubuntu/workspace/universe/universe/remotes/docker_remote.py", line 149, in __init__
    self.client, self.info = get_client()
  File "/home/ubuntu/workspace/universe/universe/remotes/docker_remote.py", line 143, in get_client
    return docker.Client(base_url=host, version=client_api_version), info
  File "/usr/local/lib/python2.7/dist-packages/docker/client.py", line 99, in __init__
    self._version = self._retrieve_server_version()
  File "/usr/local/lib/python2.7/dist-packages/docker/client.py", line 124, in _retrieve_server_version
    'Error while fetching server API version: {0}'.format(e)
docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', error(2, 'No such file or directory'))

Discussion for API unification

Currently, the different environments have slightly different API:s, and depending on the environment you may apply one or more wrappers that modifies the environment (for instance, wrapper.Vision, wrapper.Vectorized).
The drawback right now is that you cannot daisy-chain wrappers for a specific environment unless the wrapped properties are different for each wrapper (which somewhat assumes that the user fairly intimitly knows the implementation of each wrapper).

This issue is submitted as an attempt to have a discussion on the future intention for universe API, and would more be used as a letter of intent on the overall direction of the API rather than producing a complete pull request changing the entire API to adhere to whatever would be the outcome of this discussion.

The way I see it is that the wrappers are really trying to solve 2 different problems.

  1. Compensate for the fact that the API is inconsistant (see wrapper.(Un)Vectorized)
  2. Standardize operations that most agents likely will want to do (Vision, SafeActionSpace)

Issue 1 (API unification):

I would really like to see the API standardized instead of having every agent wrap the environment just to be able to run whatever gym they like.
Specfically, what I can think of now:
1.1 Make every every environment vectorized
1.2 Expand the action_space interface to to also include a list of actions (where len(actions) would be the maximum number of possible actions).

issue 2 (daisy-chaining capability):

I think its worth discussing how we really want to configure the environments (because, really, these are configurations in my opinion).
So the possibility to configure this should be possible on any environment (but would be a no-op where it makes sense).

Currently I can think of 2 approaches:
2.1 Should we move things like action_space type instantiation to env.configure(action_space='discrete')
2.2 Should we implement some daisy-chaining capability to the env wrappers?
ex1: DiscreteActionSpace(SafeActionSpace(env))
ex2: env.discrete_action_space().safe_action_space()

The daisy-chaining approach would be very powerful for lets say frame handling, where you could do:
env.crop_observations().resize(hight=42, width=42).grayscale()

But I would admit in this case that we would be bordering on what is best handled by numpy/opencv itself (and the users). But some very common operations could perhaps be maintained by universe (especially the ones that are depending on the environment).

fastzbarlight build failed on MacOSX 10.11.6

Hi,

I'm here to report a potential bug. When I use pip install -e . to install universe on my mac, it doesn't work when the package fastzbarlight tried to compile it's own zbar source. There are actually not much to tell in the error message, it simply says

Could not build fastzbarlight: Command '['./configure', '--disable-dependency-tracking', '--without-python', '--without-qt', '--disable-video', '--without-gtk', '--without-imagemagick', '--with-x=no', 'CFLAGS=-Wall -Wno-parentheses -D_FORTIFY_SOURCE=0 -O3 -fPIC']' returned non-zero exit status 1.

So I ended up pulling fastzbarlight's source, install zbar from homebrew, disabled Build class in the setup.py, changing include and lib folder to homebrew's zbar build.

I hope this will help people who runs into the similar situation.

go_vncdriver crashes on Ubuntu 16 default installation

When executing the code from section Run your first agent universe crashes
(sounds more horrible than it actually is! โ˜บ)

Problem is with go_vncdriver which sais:

go_vncdriver was installed without OpenGL support. See https://github.com/openai/go-vncdriver for details on how debug.

I tried to follow the instruction in the link provided by go_vncdriver, but it builds without errors.
I believe that I followed the install instruction correctly, and I'm on Ubuntu 16 inside VirtualBox.

Linux ubuntu-16 4.4.0-53-generic #74-Ubuntu SMP Fri Dec 2 15:59:10 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Log attached:
go-vncdriver-problem-log.txt

Limit agent to use only the mouse or keyboard

Is there a quick way to give access only to the keyboard or the mouse? for instance, I'd like my agent to interact with a webapp only using the mouse...

thanks for your incredible work

dockerfile doesn't build

ERROR: Service 'universe' failed to build: lstat bin: no such file or directory

After step 10

Source for openai/universe.flashgames

This is more of a request than an issue. Where can the source for openai/universe.flashgames image be found? Any plans for making the Dockerfile public?

Unable to launch example environment

I have universe installed and all the dependencies. When I try to run the example script it starts, I am able to VNC, but I never see anything, and a few minutes later it disconnects VNC.

Here is the universe log I got.

universe.txt

Failed building wheel for fastzbarlight. Mac OS X.

Mac OS X. Cannot install dependencies pip install -e . in particular fastzbarlight. I tried to install it independently, brew install zbar and zbarlight wrapper, still same issue on this dependency. What could be the problem?

Obtaining file:///Users/andrey/Documents/workspace/ml/universe
Requirement already satisfied: autobahn in /Library/Python/2.7/site-packages (from universe==0.20.4)
Requirement already satisfied: docker-py==1.10.3 in /Library/Python/2.7/site-packages (from universe==0.20.4)
Requirement already satisfied: docker-pycreds==0.2.1 in /Library/Python/2.7/site-packages (from universe==0.20.4)
Collecting fastzbarlight>=0.0.13 (from universe==0.20.4)
  Using cached fastzbarlight-0.0.14.tar.gz
Collecting go-vncdriver>=0.4.8 (from universe==0.20.4)
  Using cached go_vncdriver-0.4.19.tar.gz
Collecting gym>=0.5.7 (from universe==0.20.4)
Requirement already satisfied: Pillow in /Library/Python/2.7/site-packages (from universe==0.20.4)
Requirement already satisfied: PyYAML in /lib/python2.7/site-packages (from universe==0.20.4)
Requirement already satisfied: six in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from universe==0.20.4)
Collecting twisted (from universe==0.20.4)
Collecting ujson (from universe==0.20.4)
Requirement already satisfied: txaio>=2.5.2 in /Library/Python/2.7/site-packages (from autobahn->universe==0.20.4)
Requirement already satisfied: websocket-client>=0.32.0 in /Library/Python/2.7/site-packages (from docker-py==1.10.3->universe==0.20.4)
Requirement already satisfied: backports.ssl-match-hostname>=3.5; python_version < "3.5" in /Library/Python/2.7/site-packages (from docker-py==1.10.3->universe==0.20.4)
Requirement already satisfied: ipaddress>=1.0.16; python_version < "3.3" in /Library/Python/2.7/site-packages (from docker-py==1.10.3->universe==0.20.4)
Requirement already satisfied: requests<2.11,>=2.5.2 in /Library/Python/2.7/site-packages (from docker-py==1.10.3->universe==0.20.4)
Requirement already satisfied: numpy in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from go-vncdriver>=0.4.8->universe==0.20.4)
Collecting pyglet>=1.2.0 (from gym>=0.5.7->universe==0.20.4)
  Using cached pyglet-1.2.4-py2-none-any.whl
Collecting constantly>=15.1 (from twisted->universe==0.20.4)
  Using cached constantly-15.1.0-py2.py3-none-any.whl
Requirement already satisfied: incremental>=16.10.1 in /Library/Python/2.7/site-packages (from twisted->universe==0.20.4)
Requirement already satisfied: zope.interface>=3.6.0 in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from twisted->universe==0.20.4)
Requirement already satisfied: setuptools in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from zope.interface>=3.6.0->twisted->universe==0.20.4)
Building wheels for collected packages: fastzbarlight, go-vncdriver
  Running setup.py bdist_wheel for fastzbarlight ... error
  Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/private/var/folders/g4/k9l5yf9s3j5232twsrnynhhr0000gn/T/pip-build-pRccj4/fastzbarlight/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /var/folders/g4/k9l5yf9s3j5232twsrnynhhr0000gn/T/tmpxkno2Jpip-wheel- --python-tag cp27:
  /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/extension.py:133: UserWarning: Unknown Extension options: 'optional'
    warnings.warn(msg)
  running bdist_wheel
  running build
  checking for a BSD-compatible install... /usr/bin/install -c
  checking whether build environment is sane... yes
  checking for a thread-safe mkdir -p... config/install-sh -c -d
  checking for gawk... no
  checking for mawk... no
  checking for nawk... no
  checking for awk... awk
  checking whether make sets $(MAKE)... yes
  checking build system type... i386-apple-darwin15.6.0
  checking host system type... i386-apple-darwin15.6.0
  checking for style of include used by make... GNU
  checking for gcc... gcc
  checking for C compiler default output file name... a.out
  checking whether the C compiler works... yes
  checking whether we are cross compiling... no
  checking for suffix of executables...
  checking for suffix of object files... o
  checking whether we are using the GNU C compiler... yes
  checking whether gcc accepts -g... yes
  checking for gcc option to accept ISO C89... none needed
  checking dependency style of gcc... none
  checking for a sed that does not truncate output... /usr/bin/sed
  checking for grep that handles long lines and -e... /usr/bin/grep
  checking for egrep... /usr/bin/grep -E
  checking for fgrep... /usr/bin/grep -F
  checking for ld used by gcc... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
  checking if the linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no
  checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
  checking the name lister (/usr/bin/nm -B) interface... BSD nm
  checking whether ln -s works... yes
  checking the maximum length of command line arguments... 196608
  checking whether the shell understands some XSI constructs... yes
  checking whether the shell understands "+="... yes
  checking for /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld option to reload object files... -r
  checking for objdump... no
  checking how to recognize dependent libraries... pass_all
  checking for ar... ar
  checking for strip... strip
  checking for ranlib... ranlib
  checking command to parse /usr/bin/nm -B output from gcc object... ok
  checking for dsymutil... dsymutil
  checking for nmedit... nmedit
  checking for lipo... lipo
  checking for otool... otool
  checking for otool64... no
  checking for -single_module linker flag... yes
  checking for -exported_symbols_list linker flag... yes
  checking how to run the C preprocessor... gcc -E
  checking for ANSI C header files... yes
  checking for sys/types.h... yes
  checking for sys/stat.h... yes
  checking for stdlib.h... yes
  checking for string.h... yes
  checking for memory.h... yes
  checking for strings.h... yes
  checking for inttypes.h... yes
  checking for stdint.h... yes
  checking for unistd.h... yes
  checking for dlfcn.h... yes
  checking for objdir... .libs
  checking if gcc supports -fno-rtti -fno-exceptions... yes
  checking for gcc option to produce PIC... -fno-common -DPIC
  checking if gcc PIC flag -fno-common -DPIC works... yes
  checking if gcc static flag -static works... no
  checking if gcc supports -c -o file.o... yes
  checking if gcc supports -c -o file.o... (cached) yes
  checking whether the gcc linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) supports shared libraries... yes
  checking dynamic linker characteristics... darwin15.6.0 dyld
  checking how to hardcode library paths into programs... immediate
  checking for dlopen in -ldl... yes
  checking whether a program can dlopen itself... yes
  checking whether a statically linked program can dlopen itself... yes
  checking whether stripping libraries is possible... yes
  checking if libtool supports shared libraries... yes
  checking whether to build shared libraries... yes
  checking whether to build static libraries... yes
  checking for windres... no
  checking host system type... (cached) i386-apple-darwin15.6.0
  checking for gcc... (cached) gcc
  checking whether we are using the GNU C compiler... (cached) yes
  checking whether gcc accepts -g... (cached) yes
  checking for gcc option to accept ISO C89... (cached) none needed
  checking dependency style of gcc... (cached) none
  checking whether gcc and cc understand -c and -o together... yes
  checking for g++... g++
  checking whether we are using the GNU C++ compiler... yes
  checking whether g++ accepts -g... yes
  checking dependency style of g++... none
  checking whether we are using the GNU C++ compiler... (cached) yes
  checking whether g++ accepts -g... (cached) yes
  checking dependency style of g++... (cached) none
  checking how to run the C++ preprocessor... g++ -E
  checking for ld used by g++... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
  checking if the linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no
  checking whether the g++ linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) supports shared libraries... yes
  checking for g++ option to produce PIC... -fno-common -DPIC
  checking if g++ PIC flag -fno-common -DPIC works... yes
  checking if g++ static flag -static works... no
  checking if g++ supports -c -o file.o... yes
  checking if g++ supports -c -o file.o... (cached) yes
  checking whether the g++ linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) supports shared libraries... yes
  checking dynamic linker characteristics... darwin15.6.0 dyld
  checking how to hardcode library paths into programs... immediate
  checking for pkg-config... /usr/local/bin/pkg-config
  checking pkg-config is at least version 0.9.0... yes
  checking for xmlto... no
  checking whether to build EAN symbologies... yes
  checking whether to build Code 128 symbology... yes
  checking whether to build Code 39 symbology... yes
  checking whether to build PDF417 symbology... no
  checking whether to build Interleaved 2 of 5 symbology... yes
  checking whether to build QR Code... yes
  checking for library containing clock_gettime... no
  checking for ld used by GCC... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
  checking if the linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no
  checking for shared library run path origin... done
  checking for iconv... yes
  checking for working iconv... yes
  checking how to link with libiconv... -liconv
  checking for iconv declaration...
           extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
  checking poll.h usability... yes
  checking poll.h presence... yes
  checking for poll.h... yes
  checking pthread.h usability... yes
  checking pthread.h presence... yes
  checking for pthread.h... yes
  checking for pthread_create in -lpthread... yes
  checking for X... disabled
  checking for X11/extensions/XShm.h... yes
  checking for XShmQueryVersion in -lXext... no
  configure: error: in `/private/var/folders/g4/k9l5yf9s3j5232twsrnynhhr0000gn/T/pip-build-pRccj4/fastzbarlight/src/fastzbarlight/vendor/zbar-0.10':
  configure: error: unable to find XShmQueryVersion in -lXext!
  specify XSHM_LIBS or configure --without-xshm to disable the extension
  See `config.log' for more details.
  Could not build fastzbarlight: Command '['./configure', '--disable-dependency-tracking', '--without-python', '--without-qt', '--disable-video', '--without-gtk', '--without-imagemagick', '--with-x=no', 'CFLAGS=-Wall -Wno-parentheses -D_FORTIFY_SOURCE=0 -O3 -fPIC']' returned non-zero exit status 1.
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/private/var/folders/g4/k9l5yf9s3j5232twsrnynhhr0000gn/T/pip-build-pRccj4/fastzbarlight/setup.py", line 98, in <module>
      cmdclass={'build': Build},
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 151, in setup
      dist.run_commands()
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands
      self.run_command(cmd)
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command
      cmd_obj.run()
    File "/Library/Python/2.7/site-packages/wheel/bdist_wheel.py", line 179, in run
      self.run_command('build')
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/cmd.py", line 326, in run_command
      self.distribution.run_command(command)
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command
      cmd_obj.run()
    File "/private/var/folders/g4/k9l5yf9s3j5232twsrnynhhr0000gn/T/pip-build-pRccj4/fastzbarlight/setup.py", line 31, in run
      subprocess.check_call(cmd, cwd=zbar)
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 540, in check_call
      raise CalledProcessError(retcode, cmd)
  subprocess.CalledProcessError: Command '['./configure', '--disable-dependency-tracking', '--without-python', '--without-qt', '--disable-video', '--without-gtk', '--without-imagemagick', '--with-x=no', 'CFLAGS=-Wall -Wno-parentheses -D_FORTIFY_SOURCE=0 -O3 -fPIC']' returned non-zero exit status 1
  
  ----------------------------------------
  Failed building wheel for fastzbarlight
  Running setup.py clean for fastzbarlight
  Running setup.py bdist_wheel for go-vncdriver ... done
  Stored in directory: /Users/andrey/Library/Caches/pip/wheels/13/24/dc/91144da4ef4bc1c2b2f01338c79a9361edbf574d3362c7192d
Successfully built go-vncdriver
Failed to build fastzbarlight
Installing collected packages: fastzbarlight, go-vncdriver, pyglet, gym, constantly, twisted, ujson, universe
  Running setup.py install for fastzbarlight ... error
    Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/private/var/folders/g4/k9l5yf9s3j5232twsrnynhhr0000gn/T/pip-build-pRccj4/fastzbarlight/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /var/folders/g4/k9l5yf9s3j5232twsrnynhhr0000gn/T/pip-z1JH8m-record/install-record.txt --single-version-externally-managed --compile:
    /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/extension.py:133: UserWarning: Unknown Extension options: 'optional'
      warnings.warn(msg)
    running install
    running build
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for a thread-safe mkdir -p... config/install-sh -c -d
    checking for gawk... no
    checking for mawk... no
    checking for nawk... no
    checking for awk... awk
    checking whether make sets $(MAKE)... yes
    checking build system type... i386-apple-darwin15.6.0
    checking host system type... i386-apple-darwin15.6.0
    checking for style of include used by make... GNU
    checking for gcc... gcc
    checking for C compiler default output file name... a.out
    checking whether the C compiler works... yes
    checking whether we are cross compiling... no
    checking for suffix of executables...
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ISO C89... none needed
    checking dependency style of gcc... none
    checking for a sed that does not truncate output... /usr/bin/sed
    checking for grep that handles long lines and -e... /usr/bin/grep
    checking for egrep... /usr/bin/grep -E
    checking for fgrep... /usr/bin/grep -F
    checking for ld used by gcc... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
    checking if the linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no
    checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
    checking the name lister (/usr/bin/nm -B) interface... BSD nm
    checking whether ln -s works... yes
    checking the maximum length of command line arguments... 196608
    checking whether the shell understands some XSI constructs... yes
    checking whether the shell understands "+="... yes
    checking for /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld option to reload object files... -r
    checking for objdump... no
    checking how to recognize dependent libraries... pass_all
    checking for ar... ar
    checking for strip... strip
    checking for ranlib... ranlib
    checking command to parse /usr/bin/nm -B output from gcc object... ok
    checking for dsymutil... dsymutil
    checking for nmedit... nmedit
    checking for lipo... lipo
    checking for otool... otool
    checking for otool64... no
    checking for -single_module linker flag... yes
    checking for -exported_symbols_list linker flag... yes
    checking how to run the C preprocessor... gcc -E
    checking for ANSI C header files... yes
    checking for sys/types.h... yes
    checking for sys/stat.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for memory.h... yes
    checking for strings.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for unistd.h... yes
    checking for dlfcn.h... yes
    checking for objdir... .libs
    checking if gcc supports -fno-rtti -fno-exceptions... yes
    checking for gcc option to produce PIC... -fno-common -DPIC
    checking if gcc PIC flag -fno-common -DPIC works... yes
    checking if gcc static flag -static works... no
    checking if gcc supports -c -o file.o... yes
    checking if gcc supports -c -o file.o... (cached) yes
    checking whether the gcc linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) supports shared libraries... yes
    checking dynamic linker characteristics... darwin15.6.0 dyld
    checking how to hardcode library paths into programs... immediate
    checking for dlopen in -ldl... yes
    checking whether a program can dlopen itself... yes
    checking whether a statically linked program can dlopen itself... yes
    checking whether stripping libraries is possible... yes
    checking if libtool supports shared libraries... yes
    checking whether to build shared libraries... yes
    checking whether to build static libraries... yes
    checking for windres... no
    checking host system type... (cached) i386-apple-darwin15.6.0
    checking for gcc... (cached) gcc
    checking whether we are using the GNU C compiler... (cached) yes
    checking whether gcc accepts -g... (cached) yes
    checking for gcc option to accept ISO C89... (cached) none needed
    checking dependency style of gcc... (cached) none
    checking whether gcc and cc understand -c and -o together... yes
    checking for g++... g++
    checking whether we are using the GNU C++ compiler... yes
    checking whether g++ accepts -g... yes
    checking dependency style of g++... none
    checking whether we are using the GNU C++ compiler... (cached) yes
    checking whether g++ accepts -g... (cached) yes
    checking dependency style of g++... (cached) none
    checking how to run the C++ preprocessor... g++ -E
    checking for ld used by g++... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
    checking if the linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no
    checking whether the g++ linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) supports shared libraries... yes
    checking for g++ option to produce PIC... -fno-common -DPIC
    checking if g++ PIC flag -fno-common -DPIC works... yes
    checking if g++ static flag -static works... no
    checking if g++ supports -c -o file.o... yes
    checking if g++ supports -c -o file.o... (cached) yes
    checking whether the g++ linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) supports shared libraries... yes
    checking dynamic linker characteristics... darwin15.6.0 dyld
    checking how to hardcode library paths into programs... immediate
    checking for pkg-config... /usr/local/bin/pkg-config
    checking pkg-config is at least version 0.9.0... yes
    checking for xmlto... no
    checking whether to build EAN symbologies... yes
    checking whether to build Code 128 symbology... yes
    checking whether to build Code 39 symbology... yes
    checking whether to build PDF417 symbology... no
    checking whether to build Interleaved 2 of 5 symbology... yes
    checking whether to build QR Code... yes
    checking for library containing clock_gettime... no
    checking for ld used by GCC... /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
    checking if the linker (/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld) is GNU ld... no
    checking for shared library run path origin... done
    checking for iconv... yes
    checking for working iconv... yes
    checking how to link with libiconv... -liconv
    checking for iconv declaration...
             extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
    checking poll.h usability... yes
    checking poll.h presence... yes
    checking for poll.h... yes
    checking pthread.h usability... yes
    checking pthread.h presence... yes
    checking for pthread.h... yes
    checking for pthread_create in -lpthread... yes
    checking for X... disabled
    checking for X11/extensions/XShm.h... yes
    checking for XShmQueryVersion in -lXext... no
    configure: error: in `/private/var/folders/g4/k9l5yf9s3j5232twsrnynhhr0000gn/T/pip-build-pRccj4/fastzbarlight/src/fastzbarlight/vendor/zbar-0.10':
    configure: error: unable to find XShmQueryVersion in -lXext!
    specify XSHM_LIBS or configure --without-xshm to disable the extension
    See `config.log' for more details.
    Could not build fastzbarlight: Command '['./configure', '--disable-dependency-tracking', '--without-python', '--without-qt', '--disable-video', '--without-gtk', '--without-imagemagick', '--with-x=no', 'CFLAGS=-Wall -Wno-parentheses -D_FORTIFY_SOURCE=0 -O3 -fPIC']' returned non-zero exit status 1.
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/g4/k9l5yf9s3j5232twsrnynhhr0000gn/T/pip-build-pRccj4/fastzbarlight/setup.py", line 98, in <module>
        cmdclass={'build': Build},
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 151, in setup
        dist.run_commands()
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands
        self.run_command(cmd)
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command
        cmd_obj.run()
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/setuptools/command/install.py", line 53, in run
        return _install.run(self)
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/command/install.py", line 573, in run
        self.run_command('build')
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/cmd.py", line 326, in run_command
        self.distribution.run_command(command)
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command
        cmd_obj.run()
      File "/private/var/folders/g4/k9l5yf9s3j5232twsrnynhhr0000gn/T/pip-build-pRccj4/fastzbarlight/setup.py", line 31, in run
        subprocess.check_call(cmd, cwd=zbar)
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 540, in check_call
        raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command '['./configure', '--disable-dependency-tracking', '--without-python', '--without-qt', '--disable-video', '--without-gtk', '--without-imagemagick', '--with-x=no', 'CFLAGS=-Wall -Wno-parentheses -D_FORTIFY_SOURCE=0 -O3 -fPIC']' returned non-zero exit status 1
    
    ----------------------------------------
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/private/var/folders/g4/k9l5yf9s3j5232twsrnynhhr0000gn/T/pip-build-pRccj4/fastzbarlight/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /var/folders/g4/k9l5yf9s3j5232twsrnynhhr0000gn/T/pip-z1JH8m-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/var/folders/g4/k9l5yf9s3j5232twsrnynhhr0000gn/T/pip-build-pRccj4/fastzbarlight/

error install while installing on windows

I using anaconda3 with python 3.5.

(dl) C:\Users\wit\universe>pip install -e .
Obtaining file:///C:/Users/wit/universe
Collecting autobahn (from universe==0.20.2)
  Using cached autobahn-0.17.0-py2.py3-none-any.whl
Collecting docker-py==1.10.3 (from universe==0.20.2)
  Using cached docker_py-1.10.3-py2.py3-none-any.whl
Collecting fastzbarlight>=0.0.13 (from universe==0.20.2)
  Using cached fastzbarlight-0.0.13.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "c:\users\wit\appdata\local\temp\pip-build-kt2ovr\fastzbarlight\setup.py", line 49, in <module>
        proc = subprocess.Popen(['ld', '-liconv'], stderr=subprocess.PIPE)
      File "c:\users\wit\anaconda3\envs\dl\lib\subprocess.py", line 711, in __init__
        errread, errwrite)
      File "c:\users\wit\anaconda3\envs\dl\lib\subprocess.py", line 959, in _execute_child
        startupinfo)
    WindowsError: [Error 2] The system cannot find the file specified

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in c:\users\wit\appdata\local\temp\pip-build-kt2ovr\fastzbarlight\

I already try install fastzbarlight manually but got another error.

(tf) C:\Users\wit\Downloads\dist\fastzbarlight-0.0.4>python setup.py install
running install
running bdist_egg
running egg_info
writing src\fastzbarlight.egg-info\PKG-INFO
writing dependency_links to src\fastzbarlight.egg-info\dependency_links.txt
writing top-level names to src\fastzbarlight.egg-info\top_level.txt
writing requirements to src\fastzbarlight.egg-info\requires.txt
reading manifest file 'src\fastzbarlight.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no directories found matching 'src\zbarlight'
no previously-included directories found matching 'docs'
no previously-included directories found matching 'tests'
warning: no previously-included files matching '.py[cod]' found anywhere in distribution
warning: no previously-included files matching '__pycache__' found anywhere in distribution
warning: no previously-included files matching '.so' found anywhere in distribution
warning: no previously-included files found matching 'Makefile'
warning: no previously-included files found matching 'requirements-dev.txt'
warning: no previously-included files found matching 'tox.ini'
writing manifest file 'src\fastzbarlight.egg-info\SOURCES.txt'
installing library code to build\bdist.win-amd64\egg
running install_lib
running build_py
running build_ext
building 'fastzbarlight._zbarlight' extension
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Isrc/fastzbarlight/vendor/zbar-0.10/include -IC:\Users\wit\Anaconda3\envs\tf\include -IC:\Users\wit\Anaconda3\envs\tf\include "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\winrt" /Tcsrc/fastzbarlight/_zbarlight.c /Fobuild\temp.win-amd64-3.5\Release\src/fastzbarlight/_zbarlight.obj -std=c99 -fPIC
cl : Command line warning D9002 : ignoring unknown option '-std=c99'
cl : Command line warning D9002 : ignoring unknown option '-fPIC'
_zbarlight.c
src/fastzbarlight/_zbarlight.c(71): warning C4244: 'function': conversion from 'Py_ssize_t' to 'unsigned long', possible loss of data
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:C:\Users\wit\Anaconda3\envs\tf\libs /LIBPATH:C:\Users\wit\Anaconda3\envs\tf\PCbuild\amd64 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.10240.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\lib\um\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x64" /EXPORT:PyInit__zbarlight build\temp.win-amd64-3.5\Release\src/fastzbarlight/_zbarlight.obj /OUT:build\lib.win-amd64-3.5\fastzbarlight\_zbarlight.cp35-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.5\Release\src/fastzbarlight\_zbarlight.cp35-win_amd64.lib src/fastzbarlight/vendor/zbar-0.10/zbar/.libs/libzbar.a
src/fastzbarlight/vendor/zbar-0.10/zbar/.libs/libzbar.a : warning LNK4003: invalid library format; library ignored
   Creating library build\temp.win-amd64-3.5\Release\src/fastzbarlight\_zbarlight.cp35-win_amd64.lib and object build\temp.win-amd64-3.5\Release\src/fastzbarlight\_zbarlight.cp35-win_amd64.exp
_zbarlight.obj : error LNK2001: unresolved external symbol zbar_image_set_data
_zbarlight.obj : error LNK2001: unresolved external symbol zbar_image_destroy
_zbarlight.obj : error LNK2001: unresolved external symbol zbar_symbol_get_data
_zbarlight.obj : error LNK2001: unresolved external symbol zbar_parse_config
_zbarlight.obj : error LNK2001: unresolved external symbol zbar_image_create
_zbarlight.obj : error LNK2001: unresolved external symbol zbar_image_scanner_set_config
_zbarlight.obj : error LNK2001: unresolved external symbol zbar_image_scanner_create
_zbarlight.obj : error LNK2001: unresolved external symbol zbar_image_scanner_destroy
_zbarlight.obj : error LNK2001: unresolved external symbol zbar_symbol_next
_zbarlight.obj : error LNK2001: unresolved external symbol zbar_version
_zbarlight.obj : error LNK2001: unresolved external symbol zbar_image_set_format
_zbarlight.obj : error LNK2001: unresolved external symbol zbar_symbol_get_data_length
_zbarlight.obj : error LNK2001: unresolved external symbol zbar_image_set_size
_zbarlight.obj : error LNK2001: unresolved external symbol zbar_image_first_symbol
_zbarlight.obj : error LNK2001: unresolved external symbol zbar_scan_image
build\lib.win-amd64-3.5\fastzbarlight\_zbarlight.cp35-win_amd64.pyd : fatal error LNK1120: 15 unresolved externals
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\link.exe' failed with exit status 1120

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.