xboard: Error: second chess program exited unexpectedly

View: New views
5 Messages — Rating Filter:   Alert me  

xboard: Error: second chess program exited unexpectedly

by matrix one :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

Is happend only with toga2



Linux s3 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:05:01 UTC 2009 x86_64 GNU/Linux

xboard -debug -size huge -coords -scp 'polyglot /home/matrix/.polyglot/toga2.ini' -fcp 'polyglot /home/matrix/.polyglot/stockfish.ini'
StartChildProcess (dir=".") polyglot /home/matrix/.polyglot/stockfish.ini
StartChildProcess (dir=".") polyglot /home/matrix/.polyglot/toga2.ini
Warning: XtRemoveGrab asked to remove a widget not on the list
xboard: Error: second chess program (polyglot /home/matrix/.polyglot/toga2.ini) exited unexpectedly
*** glibc detected *** xboard: double free or corruption (out): 0x00007fff12a1af40 ***
======= Backtrace: =========
/lib/libc.so.6[0x7ff4684c1dd6]
/lib/libc.so.6(cfree+0x6c)[0x7ff4684c670c]
xboard[0x4157ea]
xboard[0x418762]
xboard[0x41bf5b]
xboard[0x43ad1f]
/usr/lib/libXt.so.6[0x7ff4682164bd]
/usr/lib/libXt.so.6(XtAppNextEvent+0xa9)[0x7ff4682166e9]
/usr/lib/libXt.so.6(XtAppMainLoop+0x43)[0x7ff468208bd3]
xboard[0x446b90]
/lib/libc.so.6(__libc_start_main+0xfd)[0x7ff46846aabd]
xboard[0x404d89]
======= Memory map: ========
00400000-00513000 r-xp 00000000 08:01 57408                              /usr/games/xboard
00712000-00713000 r--p 00112000 08:01 57408                              /usr/games/xboard
00713000-00780000 rw-p 00113000 08:01 57408                              /usr/games/xboard
00780000-008dc000 rw-p 00000000 00:00 0
009b3000-00ac2000 rw-p 00000000 00:00 0                                  [heap]
7ff460000000-7ff460021000 rw-p 00000000 00:00 0
7ff460021000-7ff464000000 ---p 00000000 00:00 0
7ff4661f2000-7ff466208000 r-xp 00000000 08:01 17561                      /lib/libgcc_s.so.1
7ff466208000-7ff466407000 ---p 00016000 08:01 17561                      /lib/libgcc_s.so.1
7ff466407000-7ff466408000 r--p 00015000 08:01 17561                      /lib/libgcc_s.so.1
7ff466408000-7ff466409000 rw-p 00016000 08:01 17561                      /lib/libgcc_s.so.1
7ff466409000-7ff46640e000 r-xp 00000000 08:01 51838                      /usr/lib/libXfixes.so.3.1.0
7ff46640e000-7ff46660d000 ---p 00005000 08:01 51838                      /usr/lib/libXfixes.so.3.1.0
7ff46660d000-7ff46660e000 r--p 00004000 08:01 51838                      /usr/lib/libXfixes.so.3.1.0
7ff46660e000-7ff46660f000 rw-p 00005000 08:01 51838                      /usr/lib/libXfixes.so.3.1.0
7ff46660f000-7ff466618000 r-xp 00000000 08:01 23600                      /usr/lib/libXrender.so.1.3.0
7ff466618000-7ff466817000 ---p 00009000 08:01 23600                      /usr/lib/libXrender.so.1.3.0
7ff466817000-7ff466818000 r--p 00008000 08:01 23600                      /usr/lib/libXrender.so.1.3.0
7ff466818000-7ff466819000 rw-p 00009000 08:01 23600                      /usr/lib/libXrender.so.1.3.0
7ff466819000-7ff466822000 r-xp 00000000 08:01 30110                      /usr/lib/libXcursor.so.1.0.2
7ff466822000-7ff466a21000 ---p 00009000 08:01 30110                      /usr/lib/libXcursor.so.1.0.2
7ff466a21000-7ff466a22000 r--p 00008000 08:01 30110                      /usr/lib/libXcursor.so.1.0.2
7ff466a22000-7ff466a23000 rw-p 00009000 08:01 30110                      /usr/lib/libXcursor.so.1.0.2
7ff466a23000-7ff466a28000 r-xp 00000000 08:01 9083                       /usr/lib/libXdmcp.so.6.0.0
7ff466a28000-7ff466c27000 ---p 00005000 08:01 9083                       /usr/lib/libXdmcp.so.6.0.0
7ff466c27000-7ff466c28000 rw-p 00004000 08:01 9083                       /usr/lib/libXdmcp.so.6.0.0
7ff466c28000-7ff466c2a000 r-xp 00000000 08:01 82015                      /usr/lib/libXau.so.6.0.0
7ff466c2a000-7ff466e29000 ---p 00002000 08:01 82015                      /usr/lib/libXau.so.6.0.0
7ff466e29000-7ff466e2a000 r--p 00001000 08:01 82015                      /usr/lib/libXau.so.6.0.0
7ff466e2a000-7ff466e2b000 rw-p 00002000 08:01 82015                      /usr/lib/libXau.so.6.0.0
7ff466e2b000-7ff466e2e000 r-xp 00000000 08:01 82059                      /lib/libuuid.so.1.3.0
7ff466e2e000-7ff46702e000 ---p 00003000 08:01 82059                      /lib/libuuid.so.1.3.0
7ff46702e000-7ff46702f000 r--p 00003000 08:01 82059                      /lib/libuuid.so.1.3.0
7ff46702f000-7ff467030000 rw-p 00004000 08:01 82059                      /lib/libuuid.so.1.3.0
7ff467030000-7ff467032000 r-xp 00000000 08:01 8764                       /lib/libdl-2.10.1.so
7ff467032000-7ff467232000 ---p 00002000 08:01 8764                       /lib/libdl-2.10.1.so
7ff467232000-7ff467233000 r--p 00002000 08:01 8764                       /lib/libdl-2.10.1.so
7ff467233000-7ff467234000 rw-p 00003000 08:01 8764                       /lib/libdl-2.10.1.so
7ff467234000-7ff46724f000 r-xp 00000000 08:01 86399                      /usr/lib/libxcb.so.1.1.0
7ff46724f000-7ff46744e000 ---p 0001b000 08:01 86399                      /usr/lib/libxcb.so.1.1.0
7ff46744e000-7ff46744f000 r--p 0001a000 08:01 86399                      /usr/lib/libxcb.so.1.1.0
7ff46744f000-7ff467450000 rw-p 0001b000 08:01 86399                      /usr/lib/libxcb.so.1.1.0
7ff467450000-7ff467461000 r-xp 00000000 08:01 76673                      /usr/lib/libXext.so.6.4.0
7ff467461000-7ff467660000 ---p 00011000 08:01 76673                      /usr/lib/libXext.so.6.4.0
7ff467660000-7ff467661000 r--p 00010000 08:01 76673                      /usr/lib/libXext.so.6.4.0
7ff467661000-7ff467662000 rw-p 00011000 08:01 76673                      /usr/lib/libXext.so.6.4.0
7ff467662000-7ff467679000 r-xp 00000000 08:01 108551                     /usr/lib/libICE.so.6.3.0
7ff467679000-7ff467878000 ---p 00017000 08:01 108551                     /usr/lib/libICE.so.6.3.0
7ff467878000-7ff467879000 r--p 00016000 08:01 108551                     /usr/lib/libICE.so.6.3.0
7ff467879000-7ff46787a000 rw-p 00017000 08:01 108551                     /usr/lib/libICE.so.6.3.0
7ff46787a000-7ff46787d000 rw-p 00000000 00:00 0
7ff46787d000-7ff467885000 r-xp 00000000 08:01 23011                      /usr/lib/libSM.so.6.0.0
7ff467885000-7ff467a84000 ---p 00008000 08:01 23011                      /usr/lib/libSM.so.6.0.0
7ff467a84000-7ff467a85000 r--p 00007000 08:01 23011                      /usr/lib/libSM.so.6.0.0
7ff467a85000-7ff467a86000 rw-p 00008000 08:01 23011                      /usr/lib/libSM.so.6.0.0
7ff467a86000-7ff467a9e000 r-xp 00000000 08:01 36174                      /usr/lib/libXmu.so.6.2.0
7ff467a9e000-7ff467c9d000 ---p 00018000 08:01 36174                      /usr/lib/libXmu.so.6.2.0
7ff467c9d000-7ff467c9e000 r--p 00017000 08:01 36174                      /usr/lib/libXmu.so.6.2.0
7ff467c9e000-7ff467c9f000 rw-p 00018000 08:01 36174                      /usr/lib/libXmu.so.6.2.0
7ff467c9f000-7ff467caf000 r-xp 00000000 08:01 37388                      /usr/lib/libXpm.so.4.11.0Aborted (core dumped)
_______________________________________________
Bug-XBoard mailing list
Bug-XBoard@...
http://lists.gnu.org/mailman/listinfo/bug-xboard

Parent Message unknown Re: xboard: Error: second chess program exited unexpectedly

by h.g. muller :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

At 18:21 31-10-2009 +0200, matrix one wrote:

>Hi,
>
>Is happend only with toga2
>
>
>
>Linux s3 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:05:01 UTC 2009
>x86_64 GNU/Linux
>
>xboard -debug -size huge -coords -scp 'polyglot
>/home/matrix/.polyglot/toga2.ini' -fcp 'polyglot
>/home/matrix/.polyglot/stockfish.ini'
>StartChildProcess (dir=".") polyglot /home/matrix/.polyglot/stockfish.ini
>StartChildProcess (dir=".") polyglot /home/matrix/.polyglot/toga2.ini
>Warning: XtRemoveGrab asked to remove a widget not on the list
>xboard: Error: second chess program (polyglot
>/home/matrix/.polyglot/toga2.ini) exited unexpectedly
>*** glibc detected *** xboard: double free or corruption (out):
>0x00007fff12a1af40 ***

Hmm, the RemoveGrab warning makes it a bit suspect. I could find only one
call to XtRemoveGrab()
in the entire source, and this is in ThawUI(). Apparently XBoard uses the
kludge to let a deaf-and-dumb
widget (the messageWidget) grab focus while waiting for the engine to
complete initialization.

I am not sure if we are dealing here with a bug in the error exit procedure
triggered by toga2 crashing,
or that something is badly wrong in XBoard that makes it unjustly believe
toga2 exits. I suspect
the former, as that would explain why this only happens with toga2, and not
with other engines.
Is this a reproducible error? If so, it would help to see the Polyglot log
file (which can be obtained
by setting PolyglotLog=true in the toga2.ini file), which mght indicate if
the trouble starts there.

H.G.


_______________________________________________
Bug-XBoard mailing list
Bug-XBoard@...
http://lists.gnu.org/mailman/listinfo/bug-xboard

Re: xboard: Error: second chess program exited unexpectedly

by Tim Mann :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

The double free worries me more than the XtRemoveGrab error.  Of course
they could be related, and it would be best to fix both even if they aren't.

> >Warning: XtRemoveGrab asked to remove a widget not on the list
> >xboard: Error: second chess program (polyglot
> >/home/matrix/.polyglot/toga2.ini) exited unexpectedly
> >*** glibc detected *** xboard: double free or corruption (out):
> >0x00007fff12a1af40 ***

--
Tim Mann  tim@...  http://tim-mann.org/


_______________________________________________
Bug-XBoard mailing list
Bug-XBoard@...
http://lists.gnu.org/mailman/listinfo/bug-xboard

Re: xboard: Error: second chess program exited unexpectedly

by h.g. muller :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

At 11:45 31-10-2009 -0700, Tim Mann wrote:
>The double free worries me more than the XtRemoveGrab error.  Of course
>they could be related, and it would be best to fix both even if they aren't.

OK, for the record: I had some more e-mail exchanges with the reporter of
this bug,
and it turned out we were dealing with a combination of problems here. For
one, he
was using 4.4.0~beta1, and what he showed was not the debug file but the
console
output. The 'StartChildProcess' messages thus go to the wrong output
channel, I think.
This made me misunderstand when the crash actually happened; in fact it did
not occur
at startup of the engines at all, but after a game, when the user was
trying to open the
Engine #N Settings dialog. The unlisted-widget problem was an already-fixed bug
(sept 30 commit) that tried to set focus to a text-edit in the dialog while
there were none.
(And there were none for Toga2, because the user was using an obsolete
Polyglot that
did not transmit any engine options.)

Now the third problem was that the bitbase implemetation of Toga2 is buggy,
and that
the user was using it with bitbases, so we were also dealing with genuine
Toga2 crashes
during the game. This of course cannot be blamed on XBoard, but the error
exit seemed
to be unclean, and kept printing the free() complaint and stack trace in
the console. I could
trace that to the second engine dying while the first is thinking. The
dying engine causes an
immediate read error, which triggers a fatal-error popup. But as long as
the user does not
close the popup, the second engine keeps thinking, and sooner or later
spits out a move.
This now hit a bug from my hand: The dying engine had set
gameInfo.resultDetails to point
to a local buffer, and a move coming in tries to free() the resultDetails
and set result to "*",
because the game is obviously still continuing. This crashed XBoard;
resultDetails
must only be assigned through strdup, or the free() chokes, and I did not
know it...

If I assign "engine exited unexpectedly" to resultDetails using strdup,
XBoard no longer
crashes. But then the behavior is not really the desired behavior anymore.
(In fact a
crash was close to the desired behavior; we were working on an error exit,
after all...)

In stead of automatically terminating, XBoard now pops up a _second_ fatal
error:
After receiving the move from the opponent it tries to send it to the dead
engine,
which leads to a broken-pipe error. XBoard hangs until the user closes both
error popups. The double error is undesirable, and in fact now messes up proper
error reporting in the PGN. This will have to be re-thought a little bit. A
move coming
in from an opponent of an already dead engine should not be added to the PGN,
so some form of flagging the alive status of engines must be implemented.


_______________________________________________
Bug-XBoard mailing list
Bug-XBoard@...
http://lists.gnu.org/mailman/listinfo/bug-xboard

Re: xboard: Error: second chess program exited unexpectedly

by Tim Mann :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

HG, thanks for letting us know what you found out there.

One small comment: I'm not sure why you say "A move coming in from an
opponent of an already dead engine should not be added to the PGN."  Is
it because you've already added something like "0-1 {Engine crashed}"
to the PGN?  If so, it seems similar to the case of an engine resigning
when not on move, or for that matter the human resigning when not on
move -- one more move might come in from the opposing engine.  Do we
handle that now?

--
Tim Mann  tim@...  http://tim-mann.org/


_______________________________________________
Bug-XBoard mailing list
Bug-XBoard@...
http://lists.gnu.org/mailman/listinfo/bug-xboard