← Back to team overview

sslug-teknik team mailing list archive

Re: skak-program

 

On Sun, Jan 25, 2004 at 10:38:47PM +0100, Anders Bo Rasmussen wrote:
> Jeg ville prøve at køre clienten til det distribuerede skakprogram. Men
> jeg får hele tiden:
> 
> 025628: 0125-223515| Searching for route to SuperNode server...
> 025628: 0125-223515| Unable to locate route, will try again later...
> 025628: 0125-223515| Sleeping for 60000 delay
> 025689: 0125-223616| Searching for route to SuperNode server...
> 025689: 0125-223616| Unable to locate route, will try again later...
> 025689: 0125-223616| Sleeping for 60000 delay
> 
> 
> Er der nogen der har fået et bedre resultat?
Ja... 

Min chessbrain gjorde det samme med mindre jeg brugte en proxy server
til at forbinde til nettet via. Her i går aftes fandt jeg så ud af
hvorfor det var den ikke kunne forbinde uden. Når jeg strace'de
programmet fra start, så fandt jeg ud af at den forsøgte på at forbinde
til /var/run/.nscd_socket. Og hvis den ikke kunne det, så mente den ikke
den kunne resolve node navnet for chessbrain serveren. Ved så at starte
nscd, _og_ lave et symbolsk link fra /var/run/.nscd_socket til
/var/run/nscd/socket, fik jeg den til at køre uden proxy-server.

Grunden til at den gør så skumle ting, er åbentbart at cbspn er statisk
linket imod glibc (og åbentbart en gammel version). Derudover så syntes
jeg ikke at jeg har fået noget "Written offer of source code" med da jeg
modtog min cbspn binary... Ikke godt.

Men derudover, så har clienten kørt siden i går aftes ved 9-tiden, og
indtil nu har den brugt 30 minutters CPU tid... Det er altså ikke
specielt imponerende. Det bliver ikke mere imponerende hvis man strace'r
den kørende chessbrain:

En process står og venter i accept på en fildescriptor... Det kan man
godt forsvarre.

En anden står i en lykke hvor den først laver en poll med 2000 msec's
timeout, hvorefter den laver en getppid. Hvorfor den er nødt til at
spørge om hvilken process der er dens forældre hele tiden er mig lidt en
gåde? Måske noget så den selv lukke korrekt ned, ved at detektere når
den bliver reparented til init? (men så er det godt nok grimt lavet).

To processer står og laver nanosleep's af 10ms's varighed. Det må kunne
laves bedre. (hint: pipes imellem processer, semaforer osv).

Den sidste process er den som kommunikerer med chessbrain-serveren. For
det meste hos mig, står den og forsøger på at forbinde til port 80 på
64.71.165.209, og får i ni ud af ti tilfælde "Connection timed out".

Det virker altså ikke som om at det er de skarpeste skeer i skuffen der
har lavet det... Nå ja, den sidste ting:

$ strings cbspn | grep "Code"
Code Red Worm strikes again...

-- 
/-----------------------------------------------------\
| Klaus S. Madsen      | "Failure is not an option... |
| ICQ: 45400164        |  It comes bundled with your  |
| www.hjernemadsen.org |  Microsoft products!"        |
\-----------------------------------------------------/


Follow ups

References