Aleks31 / pychess

Automatically exported from code.google.com/p/pychess
GNU General Public License v3.0
0 stars 0 forks source link

Fatal IO error 11 #821

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Played some game on FICS. After my partner (lohem) resigned, I got:

tamas@tami:~$ LANG=C p

** (process:7877): WARNING **: Trying to register gtype 'GMountMountFlags' as 
enum when in fact it is of type 'GFlags'

** (process:7877): WARNING **: Trying to register gtype 'GDriveStartFlags' as 
enum when in fact it is of type 'GFlags'

** (process:7877): WARNING **: Trying to register gtype 'GSocketMsgFlags' as 
enum when in fact it is of type 'GFlags'
** Message: pygobject_register_sinkfunc is deprecated (GstObject)
pychess: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.0.

The tail of log:
14:44:10 ('Ping', '14:10:6.839') Debug: 64 bytes from fics.freechess.org 
(69.36.243.188): icmp_seq=4 ttl=51 time=211 ms
14:44:10 ('GuestVHGG', 'raw') Debug: 
lohem is no longer available for matches.
fics% 
<wd> lohem
fics% 
14:44:10 ('GuestVHGG', 'nonmatched') Debug: 
14:44:10 ('GuestVHGG', 'lines') Debug: lohem is no longer available for matches.
14:44:10 ('GuestVHGG', 'on_player_unavailable') Debug: lohem is no longer 
available for matches.
14:44:10 ('GuestVHGG', 'lines') Debug: 
14:44:10 ('GuestVHGG', 'nonmatched') Debug: 
14:44:10 ('GuestVHGG', 'lines') Debug: <wd> lohem

Original issue reported on code.google.com by gbtami on 25 Oct 2013 at 12:51

GoogleCodeExporter commented 8 years ago
Is it reproduceable? I haven't seen this. Maybe it's because I haven't been 
winning enough games ;)

Original comment by mattgatto on 25 Oct 2013 at 6:35

GoogleCodeExporter commented 8 years ago
It's in Debian bugtracker too: 
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=659377
It happens once in a blue moon, at least for me.

Original comment by gbtami on 25 Oct 2013 at 9:35

GoogleCodeExporter commented 8 years ago
It happened again today. After my FICS game finished, my partner sent me a 
"thank you" chat message. Right after that, pychess quit.

Original comment by gbtami on 18 Feb 2014 at 11:39

Attachments:

GoogleCodeExporter commented 8 years ago
Apparently these X server messages are usually the result of threading errors 
where a thread is trying to manipulate the GUI without having the 
glock/gdk-lock (via threads_enter()). It seems like the common "thread" between 
these two crashes is that a user you played a game against disconnected. The 
only areas of code that receive callbacks from FICSPlayerExited are the Players 
List tab and the Chat window. In the Players List tab, the callback is locked, 
so that's not the culprit:

class PlayerTabSection (ParrentListSection):
[...]
    @glock.glocked
    def onPlayerAdded (self, players, player):

But the callback in the ChatWindow.py is not locked:

    def addRow (self, id, text, type):
        if id in self.id2iter: return
        iter = self.props.model.append([id, text, type])
        self.id2iter[id] = iter
        self.idSet.add(id)
[...]
        def addPlayer (players, player):
            self.playersList.addRow(self.compileId(player.name, TYPE_PERSONAL),
                player.name + player.display_titles(), TYPE_PERSONAL)
            return False
        self.connection.players.connect("FICSPlayerEntered", addPlayer)
        def removePlayer (players, player):
            self.playersList.removeRow(self.compileId(player.name, TYPE_PERSONAL))
            return False
        self.connection.players.connect("FICSPlayerExited", removePlayer)

And I verified this is the case (i.e., that addRow() can get called from a 
non-Main thread without the gdk lock) via an Eclipse run. This is shown in the 
attached screenshot.

Fix coming...

Original comment by mattgatto on 21 Feb 2014 at 12:50

Attachments:

GoogleCodeExporter commented 8 years ago
This issue was closed by revision eb97966cef90.

Original comment by mattgatto on 21 Feb 2014 at 1:59

GoogleCodeExporter commented 8 years ago
It happened again today.

Original comment by gbtami on 22 Feb 2014 at 9:46

Attachments:

GoogleCodeExporter commented 8 years ago
This issue was closed by revision df77ba0efc4e.

Original comment by mattgatto on 23 Feb 2014 at 11:13

GoogleCodeExporter commented 8 years ago
I think the crash from your comment #6 was different than the previous crashes 
in this issue report. The previous logs ended with:
00:21:18 ('GuestTSHD', 'lines') DEBUG: <wd> Preserve

... But comment #6 ended with:
10:37:04 Default DEBUG: BM.onPlayGameCreated: Creating: lmftel (1408) gbtami 
(1413) rated lightning 2 1
{Game 224 (lmftel vs. gbtami) Creating rated lightning match.}
10:37:04 ('Ping', '09:02:34.353') DEBUG: 64 bytes from fics.freechess.org 
(69.36.243.188): icmp_seq=2422 ttl=52 time=230 ms

... And since gamewidget creation is all done using GtkWorker and Publisher 
which have gdk locking built-in, it must have been the pinger updating the ping 
time in the FICS Lounge without the gdk lock. 

Original comment by mattgatto on 23 Feb 2014 at 11:18

GoogleCodeExporter commented 8 years ago
It happened again.

Original comment by gbtami on 28 Feb 2014 at 10:22

Attachments:

GoogleCodeExporter commented 8 years ago
This issue was closed by revision 4b9d2a1c38e2.

Original comment by mattgatto on 2 Mar 2014 at 6:41