fowode / pychess

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

PyChess freezes on game start #727

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
1. Delete pydock.xml and config files from ~/.config/pychess dir
2. Start PyChess, go to preferences, uncheck Autorotate, set anomation to No 
animation, uncheck booth analyzing engine, uncheck sounds, close preferences
3. Start a new game against a human player

PyChess draws the board ok, but it freezes, can't respond to any keyboard or 
mouse action, have to kill it.

hg tip

I can't debug this, koz if I add some print lines into BoardView.py inside 
expose or draw methods, it doesn't freese :(

Original issue reported on code.google.com by gbtami on 11 Sep 2012 at 12:26

Attachments:

GoogleCodeExporter commented 9 years ago
I can produce a similar freeze with loading a .pgn game from command line with 
pychess. I feel seems some deadlock occurs when the yellow info box (about game 
end) wants to resize the board and panels.

The first reported freeze happened in my office on my old Celeron box. No need 
to slow down anything on it :) When I wanted to reproduce it at home, I had to 
slow down my Intel i7 box, turn off additional cores and HT in BIOS, and set 
powersave governor. 

Original comment by gbtami on 16 Sep 2012 at 9:54

Attachments:

GoogleCodeExporter commented 9 years ago
A thread dump for the first freeze.

Original comment by gbtami on 22 Sep 2012 at 10:26

Attachments:

GoogleCodeExporter commented 9 years ago
The log file produced with --thread-debug

Original comment by gbtami on 22 Sep 2012 at 10:39

Attachments:

GoogleCodeExporter commented 9 years ago
Reproduced it with human-human _untimed_ game (only 5 thread). Got fatal Python 
error:

tamas@tami:~$ p
-1278497936 ThreadPool.py:152:start -- GtkWorker:28:run -- 
GtkWorker.py:96:__init__ -- ionest.py:32:generalStart
-1264088208 ThreadPool.py:152:start -- Utils.GameModel:497:run
13:36:53 Default Warning: Chatpanel loaded with two local players
[xcb] Unknown sequence number while processing queue
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been 
called
[xcb] Aborting, sorry about that.
python: xcb_io.c:273: poll_for_event: A(z) 
„!xcb_xlib_threads_sequence_lost” kijelentés meghiúsult.
Fatal Python error: Aborted

Thread 0xb3cbab70:
  File "/usr/lib/python2.6/threading.py", line 239 in wait
  File "/home/tamas/pychess/lib/pychess/System/ThreadPool.py", line 138 in run
  File "/usr/lib/python2.6/threading.py", line 532 in __bootstrap_inner
  File "/usr/lib/python2.6/threading.py", line 504 in __bootstrap

Thread 0xb4a78b70:
  File "/usr/lib/python2.6/threading.py", line 239 in wait
  File "/usr/lib/python2.6/Queue.py", line 168 in get
  File "/home/tamas/pychess/lib/pychess/Players/Human.py", line 137 in makeMove
  File "/home/tamas/pychess/lib/pychess/Utils/GameModel.py", line 527 in run
  File "/home/tamas/pychess/lib/pychess/System/ThreadPool.py", line 55 in <lambda>
  File "/home/tamas/pychess/lib/pychess/System/ThreadPool.py", line 115 in run
  File "/usr/lib/python2.6/threading.py", line 532 in __bootstrap_inner
  File "/usr/lib/python2.6/threading.py", line 504 in __bootstrap

Thread 0xb5279b70:
  File "/usr/lib/python2.6/threading.py", line 239 in wait
  File "/usr/lib/python2.6/Queue.py", line 168 in get
  File "/home/tamas/pychess/lib/pychess/System/GtkWorker.py", line 30 in run
  File "/home/tamas/pychess/lib/pychess/System/ThreadPool.py", line 55 in <lambda>
  File "/home/tamas/pychess/lib/pychess/System/ThreadPool.py", line 115 in run
  File "/usr/lib/python2.6/threading.py", line 532 in __bootstrap_inner
  File "/usr/lib/python2.6/threading.py", line 504 in __bootstrap

Thread 0xb5bc4b70:
  File "/home/tamas/pychess/lib/pychess/System/stacktracer.py", line 64 in run
  File "/usr/lib/python2.6/threading.py", line 532 in __bootstrap_inner
  File "/usr/lib/python2.6/threading.py", line 504 in __bootstrap

Current thread 0xb75318d0:
  File "/home/tamas/pychess/lib/pychess/Main.py", line 385 in run
  File "/home/tamas/pychess/pychess", line 128 in <module>
/home/tamas/bin/p: line 5:  3040 Félbeszakítva         
PYTHONPATH=~/pychess/lib/ python -3 -W ignore ~/pychess/pychess --stack-tracer 
"$@"

Original comment by gbtami on 23 Sep 2012 at 11:56

Attachments:

GoogleCodeExporter commented 9 years ago
I managed to reproduce it aswell with some help from gbtami, and got this gdb 
backtrace:

(gdb) backtrace
#0  0x0000003d838e8bcf in __GI___poll (fds=<optimized out>, 
    nfds=<optimized out>, timeout=<optimized out>)
    at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x0000003d87409f22 in ?? () from /lib64/libxcb.so.1
#2  0x0000003d8740b3fe in ?? () from /lib64/libxcb.so.1
#3  0x0000003d8740b60b in xcb_wait_for_reply () from /lib64/libxcb.so.1
#4  0x0000003d870432b9 in _XReply () from /lib64/libX11.so.6
#5  0x0000003d870405f7 in XTranslateCoordinates () from /lib64/libX11.so.6
#6  0x000000367ba61af7 in ?? () from /lib64/libgdk-x11-2.0.so.0
#7  0x000000367ba61e06 in ?? () from /lib64/libgdk-x11-2.0.so.0
#8  0x000000367ba61eae in ?? () from /lib64/libgdk-x11-2.0.so.0
#9  0x0000003d85047695 in g_main_context_dispatch ()
   from /lib64/libglib-2.0.so.0
#10 0x0000003d850479c8 in ?? () from /lib64/libglib-2.0.so.0
#11 0x0000003d85047dc2 in g_main_loop_run () from /lib64/libglib-2.0.so.0
#12 0x000000367cb4ac57 in gtk_main () from /lib64/libgtk-x11-2.0.so.0
#13 0x00007f12370c85a8 in ?? ()
   from /usr/lib64/python2.7/site-packages/gtk-2.0/gtk/_gtk.so
#14 0x00000033feedce36 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
#15 0x00000033feedcd51 in PyEval_EvalFrameEx () from /lib64/libpython2.7.so.1.0
#16 0x00000033feeddb1f in PyEval_EvalCodeEx () from /lib64/libpython2.7.so.1.0
#17 0x00000033feeddbf2 in PyEval_EvalCode () from /lib64/libpython2.7.so.1.0
#18 0x00000033feef6b9a in ?? () from /lib64/libpython2.7.so.1.0
---Type <return> to continue, or q <return> to quit---
#19 0x00000033feef7992 in PyRun_FileExFlags () from /lib64/libpython2.7.so.1.0
#20 0x00000033feef83ab in PyRun_SimpleFileExFlags ()
   from /lib64/libpython2.7.so.1.0
#21 0x00000033fef09882 in Py_Main () from /lib64/libpython2.7.so.1.0
#22 0x0000003d83821735 in __libc_start_main (main=0x4006c0 <main>, argc=2, 
    ubp_av=0x7fff56a6c6b8, init=<optimized out>, fini=<optimized out>, 
    rtld_fini=<optimized out>, stack_end=0x7fff56a6c6a8) at libc-start.c:226
#23 0x00000000004006f1 in _start ()
(gdb)

Appears to be the drawing code getting stuck. Maybe there is a missing gdk 
thread_enter or thread_leave somewhere?

Original comment by jonas.thiem@gmail.com on 23 Sep 2012 at 11:59

GoogleCodeExporter commented 9 years ago
Installed some debuginfo, and got a much longer backtrace now with more detail.

Original comment by jonas.thiem@gmail.com on 23 Sep 2012 at 12:11

Attachments:

GoogleCodeExporter commented 9 years ago

Original comment by gbtami on 25 Sep 2012 at 7:31

GoogleCodeExporter commented 9 years ago
Fixed in Revision: f642d5c219d4 , at least I hope. Can you test it, please?

Original comment by gbtami on 29 Oct 2012 at 11:35

GoogleCodeExporter commented 9 years ago

Original comment by gbtami on 5 Nov 2012 at 7:47