oTree Forum >

Players 'disconnecting' - OSError: asyncio.selector_events in write_eof

#1 by aamir (edited )

Hi, I am running a multiplayer game with five players using live pages hosted on Heroku. However, randomly, a player will seem to 'disconnect' from the session, even though they are actively participating. This also occurs when running the task on my own device using five different browsers.

The error message on Sentry is:

asyncio/selector_events.py in write_eof at line 1111

    def write_eof(self):
        if self._closing or self._eof:
            return
        self._eof = True
        if not self._buffer:
            self._sock.shutdown(socket.SHUT_WR)
    def can_write_eof(self):
        return True
    def _call_connection_lost(self, exc):
    
This has been mentioned previously (https://www.otreehub.com/forum/1004/) and may be due to an earlier version of websockets, and oTree 5.10.4 is incompatible with websockets 10.2. I am able to pip install it, but errors occur when pushing these changes to my requirements.txt to heroku:

remote:        ERROR: Cannot install -r requirements.txt (line 1) and websockets==10.2 because these package versions have conflicting dependencies.
remote:        
remote:        The conflict is caused by:
remote:            The user requested websockets==10.2
remote:            otree 5.10.4 depends on websockets==10.1
remote:        
remote:        To fix this you could try to:
remote:        1. loosen the range of package versions you've specified
remote:        2. remove package versions to allow pip attempt to solve the dependency conflict
remote:        
remote:        ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts
remote:  !     Push rejected, failed to compile Python app.
remote: 
remote:  !     Push failed
remote: Verifying deploy...
remote: 
remote: !       Push rejected to social-influence-task.

Is there a way to prevent this error from happening?

Thanks!

Write a reply

Set forum username