OpenBSD support thread

What do you want to see in Armagetron soon? Any new feature ideas? Let's ponder these ground breaking ideas...
Post Reply
User avatar
belenus
Round Winner
Posts: 269
Joined: Wed Nov 30, 2005 6:22 pm
Location: Cologne
Contact:

Post by belenus »

[can be deleted]
Last edited by belenus on Sun Jan 21, 2007 1:53 pm, edited 1 time in total.
- bel
User avatar
belenus
Round Winner
Posts: 269
Joined: Wed Nov 30, 2005 6:22 pm
Location: Cologne
Contact:

Post by belenus »

Made a port for 0.3.0 and 0.2.8.2.1 but when I play on that server I get weird graphical explosion outputs. Tried the server on two different machines.

Recording attached.

Packages for OpenBSD 4.0 available!
Attachments
test.zip
Recording using 0.2.8.2.1 Windows client, looks same on both branches.
Other public servers seem to work normally.
(109.46 KiB) Downloaded 231 times
Last edited by belenus on Mon Jan 22, 2007 8:24 pm, edited 4 times in total.
- bel
User avatar
Z-Man
God & Project Admin
Posts: 11710
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

Sure it's related to the server? The first strange explosions appear when you fumble in the menu, it may have to to more with that (from my point of view). Shot in the dark fix suggestion: increase the GAME_TIMEOUT setting. I haven't played the recording back in a debugger yet, but those things can happen when cycle deletion messages for last round's cycles arrive at the client when the new round is already initialized.
And of course, we already had our fair share of bugs with similar effects, but so far, they affected all platforms equally.
User avatar
belenus
Round Winner
Posts: 269
Joined: Wed Nov 30, 2005 6:22 pm
Location: Cologne
Contact:

Post by belenus »

z-man wrote:Sure it's related to the server? The first strange explosions appear when you fumble in the menu, it may have to to more with that (from my point of view). Shot in the dark fix suggestion: increase the GAME_TIMEOUT setting. I haven't played the recording back in a debugger yet, but those things can happen when cycle deletion messages for last round's cycles arrive at the client when the new round is already initialized.
And of course, we already had our fair share of bugs with similar effects, but so far, they affected all platforms equally.
I've run it on 3 boxes now, two are notebooks in the local LAN which shows the weird explosions and the third is a dedicated server which runs just fine without errors.
- bel
User avatar
Z-Man
God & Project Admin
Posts: 11710
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

Hmm, I think I'll need a serverside recording. I debugged the clientside one, and indeed, the explosions are triggered when the cycles are destroyed on server command. That command usually should come during the grid deconstruction phase and the explosions should never be displayed, but in your case, they come in during the following grid construction phase. If increasing GAME_TIMEOUT does not help, it's a bug in the server code, the server should wait until all clients have received all important messages before progressing from the deconstruction to the construction phase.

The serverside recording, ideally, should not contain AIs. They like to break the recording from floating point inaccuracies. Just use additional clients in chatbot mode :) And I'd also need the clientside recording to match the serverside recording, I'll probably need to bounce between the two a lot.

I'll probably have to somehow eliminate the explosion that gets triggered in this situation anyway; it's what causes the explosion sound at round end in 0.3.0.
User avatar
belenus
Round Winner
Posts: 269
Joined: Wed Nov 30, 2005 6:22 pm
Location: Cologne
Contact:

Post by belenus »

Recordings with default GAME_TIMEOUT... in a LAN.

Windows Client: 0.2.8.2.1
Server: 0.2.8.2.1 OpenBSD package
Attachments
recordings.tar.gz
(381.73 KiB) Downloaded 236 times
- bel
User avatar
Z-Man
God & Project Admin
Posts: 11710
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

Heh, this seemed familiar for a good reason :) It's already fixed largely in the branch. I added some more safety checks. Time to get 0.2.8.3 finished.

What happened is:
- All walls are cleared
- All cycles are killed
- The cycles that are still alive drop their wall
- the wall keeps referencing the cycle and keeping it alive for a bit longer, just enough that the destruction message is sent out late
- the client creates the explosion on arrival of the destruction message, which is too late.

The fix is to simply swap the cycle kill/wall clear order. Here's a patch against 0.2.8.2.1 for you, I hope it works.
Attachments
explosionbugfix.patch.gz
(526 Bytes) Downloaded 226 times
User avatar
belenus
Round Winner
Posts: 269
Joined: Wed Nov 30, 2005 6:22 pm
Location: Cologne
Contact:

Post by belenus »

The fix is to simply swap the cycle kill/wall clear order. Here's a patch against 0.2.8.2.1 for you, I hope it works.
Patch applied without issues but had to change it a little. (Just need diff -u output from inside the armagetronad folder.)

Made a new package but can't test it right now.

Ahh btw, if you search the LAN with a client... how does that work?
Just had a stupid Windows firewall at work signal a portscan because of that... :D
- bel
User avatar
Z-Man
God & Project Admin
Posts: 11710
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

belenus wrote:Ahh btw, if you search the LAN with a client... how does that work?
With a portscan :) Query messages are broadcast via UDP to ports 4534 to 4540 to find multiple servers running on different ports on the same machine. If you see a way to avoid this that works in all situations, I'm open to suggestions. If you just want to avoid your firewall, you can limit the scanned range in the network setup.
User avatar
belenus
Round Winner
Posts: 269
Joined: Wed Nov 30, 2005 6:22 pm
Location: Cologne
Contact:

Post by belenus »

z-man wrote:If you see a way to avoid this that works in all situations, I'm open to suggestions.
The server could just broadcast itself (can be turned ON and OFF, default should be OFF) and the client listens for those broadcasts. If the client catches a broadcast it connects to the server and fetches detailed information.
- bel
User avatar
Z-Man
God & Project Admin
Posts: 11710
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

That reverses the problem :) Now you can't have several clients on the same machine, because the clients have to open a well defined listening port. I admit that is a more far-fetched scenario in most cases, but for debugging, I sometimes run as many clients as my machines can handle.
Plus, the overall network load is increased by the constant broadcast (a very minor problem that would be tolerable).
User avatar
belenus
Round Winner
Posts: 269
Joined: Wed Nov 30, 2005 6:22 pm
Location: Cologne
Contact:

Post by belenus »

z-man wrote:That reverses the problem :) Now you can't have several clients on the same machine, because the clients have to open a well defined listening port. I admit that is a more far-fetched scenario in most cases, but for debugging, I sometimes run as many clients as my machines can handle.
Plus, the overall network load is increased by the constant broadcast (a very minor problem that would be tolerable).
Sure it would reverse the problem... but it is much better having ONE server broadcast that it is there than having multiple clients portscan a whole local subnet. :D
- bel
User avatar
belenus
Round Winner
Posts: 269
Joined: Wed Nov 30, 2005 6:22 pm
Location: Cologne
Contact:

Post by belenus »

The patch worked, looks clean now. Could I get one for 0.3.0 too or is it the same? =)
- bel
User avatar
Z-Man
God & Project Admin
Posts: 11710
Joined: Sun Jan 23, 2005 6:01 pm
Location: Cologne
Contact:

Post by Z-Man »

Yes, it works on 0.3.0 as well.
User avatar
belenus
Round Winner
Posts: 269
Joined: Wed Nov 30, 2005 6:22 pm
Location: Cologne
Contact:

Post by belenus »

z-man wrote:Yes, it works on 0.3.0 as well.
Patches applied, port and packages updated.

Seems to work now but you got an idea why I got huge lag when playing in a local network but connection to a real server is ok?
Attachments
armagetronad-dedicated.tar.gz
OpenBSD port of the 0.2 and 0.3 branch.
(4.71 KiB) Downloaded 250 times
Last edited by belenus on Mon Jan 22, 2007 8:43 pm, edited 1 time in total.
- bel
Post Reply