Evaluation of HGM's server for ACCA & GECCO tourneys

Discussion of chess software programming and technical issues.

Moderator: Ras

User avatar
hgm
Posts: 28480
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Evaluation of HGM's server for ACCA & GECCO tourneys

Post by hgm »

Last weekends's ACCA & GECCO Championships were the first 'big' events that were run on my ICS. I started this thread so participants can give feedback: problems they might have experienced, things that could be improved, etc. So they can all be fixed for next time (if we decide there is going to be a next time).

One of the features this ICS has for Computer ChessI over freechess.org or chessclub.com, and which like to advertize here because peoplemight not have noticed, is that the kibitzed score/depth infos are included by the server when you have the games mailed to yourselfin PGN format. E.g. try

set pgn 1
mailstored spartacus mediocre


to have the Spartacus-Mediocre game from GECCO e-mailed to you in PGN format, and you will see what I mean.

So far the shameless plugging of my own products. :wink: Now please shoot, then I will see what I can do.
User avatar
hgm
Posts: 28480
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

1. Mamer crash

Post by hgm »

I can start mentioning the major glitches myself:

The worst obviously was the crash of the 'mamer' tournament manager. The mamer that originally came with the open-source ICS package was rather flaky software; it did not even properly keep track of the number of whites and blacks players had. Turned out it also had a hideous bug in the "listmanagers" command, that made it crash immediately. I am not sure how such a severe bug can have remained hidden this long; it is conceivable that changes in the compiler have exposed it, and I had compiled it a new last month to improve the pairing algorithm, and this week to implement a pause function.

Unfortunately one of the spectators to the ACCA event felt the need to try the 'listmanagers' command after the first round, which killed mamer. As there is no way to reload mamer with previously made pairings, and I could not add it on such a short notice, we had to play the second day of GECCO and almost all of the ACCA event without mamer, and I had to make the pairings by hand. I hope there were not too many complaints about the pairings. But even if they would have been perfect, it took non-negligible time (and stress) to make them, so this was a very undesirable situation, that should better not be repeated.

Fortunately I was able to find and fix the problem in mamer that caused the crash. That, however, does not guarantee there could not be more. So forfuture events I will probably equip mamer with a command to dump its entire state on a file, and a command-line option to restart it from that file, which could be used as an extra fail-safe mechanism in important events. Problemis that mamer is written in C++, which I don't really know, and usually resists my hacking tricks quite fiercely....
User avatar
hgm
Posts: 28480
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

2. Gothic board

Post by hgm »

The second major glitch was that at some point during GECCO two of the players saw their board change to 10x8, leading their engine to crash.

It turns out this was due to a WinBoard bug, which this ICS exposed more severely than it is on FICS and ICC: since a few years WinBoard pays attention to ICS game-start messages, to extract the variant. A major shortcoming of ICS protocol is namely that the variant is not mentioned in the boards it sends itself, leaving the client often in the dark on how to interpret the board of the initial position of a game.

Now this sounds innocent enough, but it turns out that ICS have a user variable 'gin', which allows you (through set gin 1) to be notified of every game that is started on the ICS. This means that when, for instance, a crazyhouse game starts somewhere on the ICS, those players would receive the game start message of that game, and WinBoard would switch to Crazyhouse in reaction.This likely makes the engine crash, because it does not know how to play Crazyhouse.

On FICS and ICC this problem was not really exposed, because no one in his right mind sets gin=1, on servers where several games start per second: you would be swamped by ICS output. But on my ICS, where there are hardly any people, it can go quite unnoticed that you have gin=1. And then twoof the rare human visitors started a game of Gothic Chess... (Which would also not have been possible on FICS or ICC, where the most damaging variant is crazyhouse/bughouse, but that at least has still 8x8 board.)

Anyway, the obvious work-around is to make sure you have gin=0, so this WinBoard bug canot be triggered. Of course in a future release I will fix the WinBoard bug as well.
User avatar
sje
Posts: 4675
Joined: Mon Mar 13, 2006 7:43 pm

Re: 1. Mamer crash

Post by sje »

As my program was the only entrant that had three blacks in a row and I'm not complaining about pairings, then no one else should either.

However, as you say, there is room for improvement. Specifically, there is really no reason that any entrant should have to have a bye as long as there are standby programs that can inserted to make the number of entrants even. I'd suggest gnuchess as a standby entrant as long as the version in use is fairly bug-free.

Learning C++ and specifically its full set of class/instance features is a worthwhile task. After coding one or two significant C++ projects, a programmer will see the old C standard as what it really is: subtly disguised assembly language.
User avatar
hgm
Posts: 28480
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

3) Conversational kibitz

Post by hgm »

The second WinBoard bug I noticed was a minor cosmetic problem: When I was observing a game with auto-kibitz on (to capture the engine kibitzes in the engine-output window, so that I can walk through their PVs on the WinBoard display), conversational kibitz messages of the operator were relayed as 'Your opponent kibitzes:'. So that I could not see who of the two players had said that.

This is also a WinBoard bug; when implemeting the auto-kibitz option I had assumed that a non-numeric kibitz (which I don't want to go to the engine-output window) can only be from the opponent if it matches one of the player names. But this is of course nonsense, as you could be an observer.

Next XBoard release will also fix this.
Ferdy
Posts: 4853
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Evaluation of HGM's server for ACCA & GECCO tourneys

Post by Ferdy »

hgm wrote:Last weekends's ACCA & GECCO Championships were the first 'big' events that were run on my ICS. I started this thread so participants can give feedback: problems they might have experienced, things that could be improved, etc. So they can all be fixed for next time (if we decide there is going to be a next time).

One of the features this ICS has for Computer ChessI over freechess.org or chessclub.com, and which like to advertize here because peoplemight not have noticed, is that the kibitzed score/depth infos are included by the server when you have the games mailed to yourselfin PGN format. E.g. try

set pgn 1
mailstored spartacus mediocre


to have the Spartacus-Mediocre game from GECCO e-mailed to you in PGN format, and you will see what I mean.

So far the shameless plugging of my own products. :wink: Now please shoot, then I will see what I can do.
Feature request:
* Include hardware info of engines in the pgn file. Participants are required to put this info in their finger notes for example.
* Able to count number engine disconnections during game play. This can be used to adjudicate games with such related rule.
* Able to shout important commands from time to time - to show player list in a tourney, or show current pairing. Example, it will appear in ics window
"type mam pl 1, to show tourney player list". Could be an interval of 5 minutes. This would minimize people asking especially those who has just seen the ics window :).
* A way to implement time odds, this can be applied to engines that came late before the start of a game. This can also be used to penalize disconnecting engines by x number of seconds or minutes, thereby eliminating the rule for 3 disconnects.
* Auto email to engine authors regarding the start of a game, 2 hours before the game starts.
rbarreira
Posts: 900
Joined: Tue Apr 27, 2010 3:48 pm

Re: 1. Mamer crash

Post by rbarreira »

sje wrote: Learning C++ and specifically its full set of class/instance features is a worthwhile task. After coding one or two significant C++ projects, a programmer will see the old C standard as what it really is: subtly disguised assembly language.
Except it's much more portable and it has structured programming and most of the other features that make high-level programming languages easy. But other than that, yes it's pretty much Assembly :P

That aside, I agree it's worthwhile to learn C++, despite the fact that's a really complex language with a lot of problems (and it doesn't even solve the biggest difficulties with C programming such as memory management)...
CRoberson
Posts: 2095
Joined: Mon Mar 13, 2006 2:31 am
Location: North Carolina, USA

Re: Evaluation of HGM's server for ACCA & GECCO tourneys

Post by CRoberson »

* A way to implement time odds, this can be applied to engines that came late before the start of a game. This can also be used to penalize disconnecting engines by x number of seconds or minutes, thereby eliminating the rule for 3 disconnects.
According to "help match" time odds has been implemented and easy to do. I've done it on ICC before. According to ICC, time odds doesn't work when in a mamer based tournament. Since we ended up pairing by hand, we could have done that.

I do like the idea of using time odds to deal with late arrivals and disconnects. That would make it more like how things are handled in human tournaments.
User avatar
Zlaire
Posts: 62
Joined: Mon Oct 03, 2011 9:40 pm

Re: Evaluation of HGM's server for ACCA & GECCO tourneys

Post by Zlaire »

I'd like to apologize for Mediocre's two forfeits. Was connected over night both times but for some reason Mediocre couldn't start the games... haven't been able to track down why (something to do with the connection glitching when connected for too long).

I'll make sure to actually be present during the early games next time (not much of a morning person unfortunately, so just murdered my alarm clock instead of getting up).
User avatar
hgm
Posts: 28480
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Evaluation of HGM's server for ACCA & GECCO tourneys

Post by hgm »

CRoberson wrote: According to "help match" time odds has been implemented and easy to do. I've done it on ICC before. According to ICC, time odds doesn't work when in a mamer based tournament.
They probably mean that mamer would never start time-odds matches by itself. But that is no problem at all, because it is exactly the matches that mamer could not start for player absence that would need time odds. Another thing is that mamer would not recognize the game as belonging to the tourney when it finishes, and would keep waiting for a game with the tournament TC between the two players. But also this is not real problem. It just means you have to enter the result of the game by hand, through mamer's setres command. This is also trivial, and I have done it many times past year in the blit tourneys, when after disconnecting people started games with reversed colors (which mamer then also ignores). Usually it goes like this: the last game of the round finishes, but a new round doesn't start. So you do "mam games 1", and mamer tells you A vs. B has still not started. So you look how B vs. A just finished, reverse the result, and feed it to mamer, and the next round commences.

So I think we can consider this fully operational already.