0.2.8.3_beta1: Release process and bugs

What do you want to see in Armagetron soon? Any new feature ideas? Let's ponder these ground breaking ideas...
Post Reply
epsy
Adjust Outside Corner Grinder
Posts: 2003
Joined: Tue Nov 07, 2006 6:02 pm
Location: paris
Contact:

Post by epsy »

z-man wrote:Bugfixes always qualify for inclusion. EDIT: repeatedly running the color code stripping until no codes are left seems to be the only feasible solution, or do you have a better idea?
indeed, but it still fails at 00xaaaaaax (or 000xaaaaaaxbbbbbbx), except if you do render color codes as color only if they are valid ones

edit: oh and i noticed that the server will 'forget' to kick some player IDs when MAX_PLAYERS_SAME_IP is effective, leaving ghost players, with a client ID which could be assigned to a new player...hence the problem...i think you did better just kick all clients sharing the IP when one exceeds that quota
User avatar
DDMJ
Reverse Outside Corner Grinder
Posts: 1882
Joined: Thu Jun 08, 2006 12:15 am
Location: LA, CA, USA, NA
Contact:

Post by DDMJ »

z-man wrote:Build 0.2.8_alpha20071216 is available on aabeta

Code: Select all

Unable to locate a source for 0.2.8/0.2.8_alpha20071216/armagetronad-0.2.8_alpha20071216.macosx-universal.dmg, sorry.
EDIT: Found it on Sourceforge's site.
User avatar
wrtlprnft
Reverse Outside Corner Grinder
Posts: 1679
Joined: Wed Jan 04, 2006 4:42 am
Location: 0x08048000
Contact:

Post by wrtlprnft »

epsy wrote:
z-man wrote:Bugfixes always qualify for inclusion. EDIT: repeatedly running the color code stripping until no codes are left seems to be the only feasible solution, or do you have a better idea?
indeed, but it still fails at 00xaaaaaax (or 000xaaaaaaxbbbbbbx), except if you do render color codes as color only if they are valid ones
It probably should just completely strip incomplete color codes at the end of a string…
There's no other invalid color codes: 0x####### is simply the same as 0x000000.

Infact z-man's commit didn't actually fix the problem with names, as nexted color codes in player names are bound to be incomplete…

Oh, and could some admin please fix the viewvc links in messages sent to cia.vc? https://viewcvs.svn.sourceforge.net/vie ... <something> should become https://armagetronad.svn.sourceforge.ne ... <something>.
There's no place like ::1
User avatar
Z-Man
God & Project Admin
Posts: 11589
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

DDMJ wrote:
z-man wrote:Build 0.2.8_alpha20071216 is available on aabeta

Code: Select all

Unable to locate a source for 0.2.8/0.2.8_alpha20071216/armagetronad-0.2.8_alpha20071216.macosx-universal.dmg, sorry.
EDIT: Found it on Sourceforge's site.
Luke? That's the precise location of the file in the distfiles hierarchy, and everything is world readable. Any idea what may have gone wrong? I switched the download source to sourceforge now.

wrtl and epsy: can of worms, I say. Epsy: how can I reproduce the max_players_same_ip bug?
User avatar
wrtlprnft
Reverse Outside Corner Grinder
Posts: 1679
Joined: Wed Jan 04, 2006 4:42 am
Location: 0x08048000
Contact:

Post by wrtlprnft »

wrtlprnft wrote:
epsy wrote:
z-man wrote:Bugfixes always qualify for inclusion. EDIT: repeatedly running the color code stripping until no codes are left seems to be the only feasible solution, or do you have a better idea?
indeed, but it still fails at 00xaaaaaax (or 000xaaaaaaxbbbbbbx), except if you do render color codes as color only if they are valid ones
It probably should just completely strip incomplete color codes at the end of a string…
There's no other invalid color codes: 0x####### is simply the same as 0x000000.

In fact z-man's commit didn't actually fix the problem with names, as nested color codes in player names are bound to be incomplete…

Oh, and could some admin please fix the viewvc links in messages sent to cia.vc? https://viewcvs.svn.sourceforge.net/vie ... <something> should become https://armagetronad.svn.sourceforge.ne ... <something>.
There's no place like ::1
User avatar
Z-Man
God & Project Admin
Posts: 11589
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

wrtlprnft wrote:Oh, and could some admin please fix the viewvc links in messages sent to cia.vc? https://viewcvs.svn.sourceforge.net/vie ... <something> should become https://armagetronad.svn.sourceforge.ne ... <something>.
I think I did that; all I was allowed to do was to remove the hook and add it again, which changed some of the parameters to the script (which I don't understand). Armabot did not report my test commit to IRC, however, maybe because it was a boring file that got modified, but maybe because I broke stuff beyond my own ability to repair. The commit showed up in the CIA RSS feed just fine, though.

For the rest of your self-quoting, what else do you feel has not gotten full attention? You fixed the further color code trouble yourself (and I broke it and fixed it again).
epsy
Adjust Outside Corner Grinder
Posts: 2003
Joined: Tue Nov 07, 2006 6:02 pm
Location: paris
Contact:

Post by epsy »

z-man wrote:epsy: how can I reproduce the max_players_same_ip bug?
1. Set up a server with MAX_PLAYERS8SAME_IP set to 4
2. Set up a client with 3 players enabled
3. Let that client connect to the server
4. Set up another client with, in this case 2 or more players enabled
5. Let it join
6. It gets kicked, and the bug happens
(check /players and score table)
7. Set up a client normally, and let it join, there it could have the the Client ID
(again, check /players and score table)

The ghost Players will just drive straight, will probably get idle_remove'd, or get polled

Little recording(i couldn't reproduce the last side effect i mentionned)
Server log:

Code: Select all

[0] Bound socket to *.*.*.*:32863.
[0] Bound socket to *.*.*.*:4534.
[0] Setting CYCLE_BRAKE_DEPLETE (Group: Annoying) deviates from its default value; clients older than 0.2.5.0 may experience problems.
[0] Ping charity changed from 100 to 100100.
[0] Nobody there. Taking a nap...
[0] Timestamp: 2007/12/17 22:44:47
[0] Closing socket bound to *.*.*.*:4534
[0] Bound socket to *.*.*.*:4534.
[1] Received login from 192.168.0.2:32864 via socket *.*.*.*:4534.
[1] New user: 1
[1] Player 3 entered the game.
[1] Player 2 entered the game.
[1] epsy[bugger] entered as spectator.
[0] Time:     21.8692 seconds
Sent:     7854 bytes in 42 packets (359.135 bytes/s)
Received: 2986 bytes in 43 packets (136.539 bytes/s)
[0] Timestamp: 2007/12/17 22:45:09
[0] Creating grid...
[0] Ping charity changed from 100100 to 182.
[0] done!
[0] Resetting scores...
[0] New Match
[0] Go (round 1 of 10 )!
[0] 3
[0] 2
[0] 1
[0] 0
[0] Player 3 committed suicide and lost 4 points.
[0] Player 2 committed suicide and lost 4 points.
[0] Deleting objects...
[0] Deleting grid...
[0] 
[0] Time:     25.477 seconds
Sent:     34128 bytes in 292 packets (1339.56 bytes/s)
Received: 12194 bytes in 254 packets (478.628 bytes/s)
[0] Timestamp: 2007/12/17 22:45:34
[0] Creating grid...
[0] Ping charity changed from 182 to 100.
[0] done!
[0] Go (round 2 of 10 )!
[2] Received login from 192.168.0.2:32866 via socket *.*.*.*:4534.
[2] New user: 2
[0] 3
[0] 2
[0] 1
[2] Player 4 plays for Player 2.
[2] Player 4 left Player 2.
[2] Killing user 2, ping 0.184867.
[2] epsy[recording] entered as spectator.
[0] 0
[0] Player 3 committed suicide and lost 4 points.
[0] Player 2 committed suicide and lost 4 points.
[2] Received login from 192.168.0.2:32866 via socket *.*.*.*:4534.
[2] New user: 2
[0] Deleting objects...
[2] Spectator epsy[recording] left.
[2] Killing user 2, ping 0.16969.
[2] epsy[recording] entered as spectator.
[0] Deleting grid...
[0] 
[0] Time:     30.5175 seconds
Sent:     57942 bytes in 456 packets (1898.65 bytes/s)
Received: 21460 bytes in 436 packets (703.203 bytes/s)
[0] Timestamp: 2007/12/17 22:46:05
[0] Creating grid...
[0] Ping charity changed from 100 to 110.
[0] done!
[0] Go (round 3 of 10 )!
[0] 3
[0] 2
[0] 1
[0] 0
[1] received logout from 1.
[1] Spectator epsy[bugger] left.
[1] Player 2 left the game.
[1] Player 3 left the game.
[1] Killing user 1, ping 0.00725609.
[17] Killing user 17, ping 1.25.
[2] Spectator epsy[recording] left.
[0] Killing user 0, ping 1.
[0] Closing socket bound to *.*.*.*:4534
[0] Closing socket bound to *.*.*.*:32863
[0] Bound socket to *.*.*.*:32866.
[0] Bound socket to *.*.*.*:4534.
[0] Ping charity changed from 110 to 100100.
[0] Nobody there. Taking a nap...
[0] Timestamp: 2007/12/17 22:46:23
[0] Closing socket bound to *.*.*.*:4534
[0] Bound socket to *.*.*.*:4534.
[1] Received login from 192.168.0.2:32867 via socket *.*.*.*:4534.
[1] New user: 1
[1] epsy[recording] entered as spectator.
[0] Waiting for real players...

[0] Waiting for real players (only spectators online)...
[1] received logout from 1.
[1] Spectator epsy[recording] left.
[1] Killing user 1, ping 0.277278.
[17] Killing user 17, ping 1.25.
[0] Killing user 0, ping 1.25.
[0] Closing socket bound to *.*.*.*:4534
[0] Closing socket bound to *.*.*.*:32866
[0] Bound socket to *.*.*.*:32868.
[0] Bound socket to *.*.*.*:4534.
[0] Nobody there. Taking a nap...
[0] Timestamp: 2007/12/17 22:46:33
[0] Closing socket bound to *.*.*.*:4534
[0] Bound socket to *.*.*.*:4534.
edit:
wrtlprnft wrote:There's no other invalid color codes: 0x####### is simply the same as 0x000000.
i meant incomplete ones
User avatar
wrtlprnft
Reverse Outside Corner Grinder
Posts: 1679
Joined: Wed Jan 04, 2006 4:42 am
Location: 0x08048000
Contact:

Post by wrtlprnft »

z-man wrote:I think I did that; all I was allowed to do was to remove the hook and add it again, which changed some of the parameters to the script (which I don't understand). Armabot did not report my test commit to IRC, however, maybe because it was a boring file that got modified, but maybe because I broke stuff beyond my own ability to repair. The commit showed up in the CIA RSS feed just fine, though.
Thanks! Dunno about armabot, I'll watch future commits.
For the rest of your self-quoting
Oops, that post should have been an edit of two minor typos, not a quote…
what else do you feel has not gotten full attention? You fixed the further color code trouble yourself (and I broke it and fixed it again).
I'm not aware of any other problems…
There's no place like ::1
Luke-Jr
Dr Z Level
Posts: 2246
Joined: Sun Mar 20, 2005 4:03 pm
Location: IM: luke@dashjr.org

Post by Luke-Jr »

z-man wrote:
DDMJ wrote:
z-man wrote:Build 0.2.8_alpha20071216 is available on aabeta

Code: Select all

Unable to locate a source for 0.2.8/0.2.8_alpha20071216/armagetronad-0.2.8_alpha20071216.macosx-universal.dmg, sorry.
EDIT: Found it on Sourceforge's site.
Luke? That's the precise location of the file in the distfiles hierarchy, and everything is world readable. Any idea what may have gone wrong?
fetch.php only uses mirrors when the file's been there for a full week or so, and I had taken hachi out to save on bandwidth assuming Dreamhost was always there. Added code back in to failover back to hachi if there's no other known mirror.
User avatar
Z-Man
God & Project Admin
Posts: 11589
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

The bug epsy reported should be fixed now; the reason simply was that the check happens basically inside the ePlayerNetID constructor, but it does not throw an exception and thus does not abort the construction of the player.

I still haven't gotten around checking what I can do to improve the appearance of the Mac build.

This also is a gentle bump for wrtl to get going with the ladder log extensions. Bump :)
User avatar
wrtlprnft
Reverse Outside Corner Grinder
Posts: 1679
Joined: Wed Jan 04, 2006 4:42 am
Location: 0x08048000
Contact:

Post by wrtlprnft »

z-man wrote:This also is a gentle bump for wrtl to get going with the ladder log extensions. Bump :)

Code: Select all

mathias@colin $ cat NEWS | head -n 73 | tail -n 12                                                                             ~/armagetronad3/branch
- New entries in ladderlog.txt:
  - GAME_TIME <time> (only if enabled via the LADDERLOG_GAME_TIME_INTERVAL
    setting): The time that has passed since the last start of a round
  - BASEZONE_CONQUERED <team> <x> <y>: A fortress zone belonging to <team>
    at the coordinates (<x>, <y>) has been conquered
  - BASEZONE_CONQUERER <player>: at the time of the last BASEZONE_CONQUERED
    message, <player> has been in the conquered zone
  - ONLINE_PLAYER <player> [<ping [<team>]]: At the beginning of the round,
    <player> had <ping> and was on <team>. This line is not printed for bots
  - NUM_HUMANS <n>: There are <n> players that are not AIs and are part of
    a team.
  - ROUND_SCORE has the player's team's score appended.
Anything i missed?
There's no place like ::1
User avatar
ed
Match Winner
Posts: 613
Joined: Mon Feb 13, 2006 12:34 pm
Location: UK

Post by ed »

wrtlprnft wrote:Anything i missed?
Since you're adding some scripting support in there with GAME_TIME. How about
WAIT_FOR_EXTERNAL_SCRIPT 1|0
if 1, holds the server in a paused state at the beginning of each round just before everytime.cfg is read, until the script writes back to the server:
WAIT_FOR_EXTERNAL_SCRIPT 0
During the "paused time", the following is then written:
NUM_PLAYERS n (only active players, NUM_HUMANS includes spectators)
ROUND_COMMENCING 2 10 (where 2 is the round commencing, and 10 is the max_rounds)
This allows the script to prepare the next round based on the number of active players and the round number, both to the server directly and to everytime.cfg.
WAIT_FOR_EXTERNAL_SCRIPT must then be changed by the script back to 1 to ensure it is paused again next round.

The main drawback is that if the script crashes the server can hang at the black screen indefinately. This is purely down to poorly written scripts, not the server. We've talked about adding another setting:
WAIT_FOR_EXTERNAL_SCRIPT_TIMEOUT n
being the number of seconds before the server automatically kickstarts itself. This should also be noted in ladderlog.txt so it can be dealt with to kickstart the script that crashed.
Once this was in place, I found tightening up scripts, rounds, players etc so much more managable.

And then there's the moving zones ;)
User avatar
Z-Man
God & Project Admin
Posts: 11589
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

ed wrote:until the script writes back to the server:
WAIT_FOR_EXTERNAL_SCRIPT 0
Just to clarify, the script you're talking about here is feeding the standard input of the server, right? Since this is something that does not affect anything as long as it is not activated, I think it would be an OK inclusion. I've tackled the same problem using named pipes and scanning players.txt for the number of players on Elimination Sumo; this approach looks like it could be a bit easier.
User avatar
ed
Match Winner
Posts: 613
Joined: Mon Feb 13, 2006 12:34 pm
Location: UK

Post by ed »

z-man wrote:Just to clarify, the script you're talking about here is feeding the standard input of the server, right?
yes, it's doing that. It can also write to everytime.cfg during the WAIT. Since this file is not read until WAIT_FOR_EXTERNAL_SCRIPT is 0 again.
It is also more accurate than players.txt as NUM_PLAYERS is written just after the server is paused.
And yes, if left alone, it wouldn't effect you.

@wrtl if you do include ROUND_COMMENCING as it is, there is bug in the existing code that writes round 1 as -98 or something. We easily fix this in the script with something like

Code: Select all

$round=$round<1?1:$round;
You may want to fix this at the server end ;)
User avatar
Z-Man
God & Project Admin
Posts: 11589
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

/me delegates the WAIT_ thing to wrtl, who seems to know where to grab the source from :) Would this weekend be OK for the next alpha build?

I fought long and hard with the mac build system today, and I think I won :) A while ago, I read about http://michelf.com/weblog/2006/xcode-pe ... cture-sdk/this trick to build universal binaries that work natively on ppc and Intel Macs and are compatible with anything from OSX 10.2.8 (Jaguar). It would have been easier (a lot, in fact) if the frameworks we depend on were built in the same way, if I had a clue about what I am doing, and if XCode would not randomly decide to rebuild the whole project on linker flag changes, dammit. Anyway, the next Mac build is going to be a bit different, and it would be nice if the Intel Mac users and upgrade resistant Mac users would let me know how things work out.
Post Reply