Network shafts demo

  • Two Factor Authentication is now available on BeyondUnreal Forums. To configure it, visit your Profile and look for the "Two Step Verification" option on the left side. We can send codes via email (may be slower) or you can set up any TOTP Authenticator app on your phone (Authy, Google Authenticator, etc) to deliver codes. It is highly recommended that you configure this to keep your account safe.

PurplePants

New Member
Sep 24, 2003
15
0
0
www.oldephartes.co.uk
A while back I created a mod for UT that allows one to send log information to some other computer using syslog: http://www.oldephartes.co.uk/stuff/syslog02.zip

Essentially, the mod opens a UDP port to wherever the info is to be sent then, when the appropriate function is called, sends the info wrapped in syslog header stuff. It works fine for server side mods.

With mods that run on the client too, it also works fine up until one tries to record a server side demo, and then the UT server crashes. I've tried various things to pin down what the problem is: disabling it (that is, the code is there but the first statement is a return), making sure the calling mod never actually makes any call, etc. I've even taken the code and placed it inside the target mod (again, making sure the code is never actually called) but still the server crashes if a demo is attempted.

So far as I can make out, the situation is: if a class extends UdpLink and is included in a mod that gets downloaded to the client, the demo user barfs on it.

Naturally, since I'm posting here some time after pulling all my hair out over this you may assume I'm completely stuck for ideas as to why this happens. Does anyone have a clue as to what I should be looking at, or how I can track down further what's going wrong?
 

Payback

Ive got a big stick
Nov 21, 2002
94
0
0
ahl.action-web.net
I misread it. Sorry, I have no clue.
Give it time and others with a clue might answer. (3 hours is a bit quick to expect a response on a forum)
 
Last edited:

Kuhal

New Member
Jul 13, 2001
29
0
0
55
New Zealand
Visit site
I don't know the answers but I am interested in helping to find out. The host for my server was closed down yesterday so it might take a day or two until I have a server for testing back again.

In the meantime, can you clarify how it is meant to work client side? Are the log entries meant to go to the local syslog or to the server's syslog? From the looks of the code, the client doesn't care much where the syslog server is as long as it's responding... So my follow up question is: are you saying that the client side demo recording causes the server to crash? (WOW if it does)

Cheers
 
Last edited:

Kuhal

New Member
Jul 13, 2001
29
0
0
55
New Zealand
Visit site
I've installed the two mods and also the Kiwi syslogd for my windows system here. I then started the server using ucc server. I joined the server (from the same machine) and saw the syslog events for the server start and my joining the server.

I then recorded a client side demo successfully. I'm sure the answer to my previous queries will explain to me why I haven't reproduced your problem yet. If not, can you supply the steps necessary to reproduce please?

Cheers
 

PurplePants

New Member
Sep 24, 2003
15
0
0
www.oldephartes.co.uk
Hi!

Sorry, some building work got my attention for a couple of days :)

To clarify: running a demo on the server causes the server to crash, but only if the mod runs client side as well. For instance, the IP logger included in the syslog archive is no problem because it runs only on the server. If one includes the syslog calls in, for instance, AntiShockHo then the problem occurs.

The logging is done only from the server, regardless of whether the mod is server only or client too. The syslog mod is downloaded to the client (because of the calls in the code), but since the client .ini has no syslog config info, the default values ensure nothing happens on the client.

Hmmm. Actually, the demo player (i.e. the client running on the server to record the demo) would probably pick up the server .ini info. However, completely disabling syslog doesn't cure the crash so I don't think it's that.

Hope that made a bit more sense, and thanks for getting interested in this :)
 

Kuhal

New Member
Jul 13, 2001
29
0
0
55
New Zealand
Visit site
Yes it makes more sense now. And here is where my lack of knowledge shows up. I am only really experienced with running a server from command line in either Windows (test environment) or Linux (test/production). I actually hardly ever play demo's and when I do it's only ever on my own machine as client.

I don't know how to run a demo on a server or what is to be gained from it. The only thing I can think of is a server running uin interactive mode (i.e. windows most likely) and running the demo there.

I'm still keen to help if I can because I love your syslog mod. I want to use it in some mods I'm doing to SemiAdmin which is a great mod in itself. Perhaps we can take it to ICQ or something and only report the result back here in the hope it helps some other mod developer?

Cheers
 

djpaul

New Member
Jan 9, 2002
125
0
0
Visit site
PurplePants said:
So far as I can make out, the situation is: if a class extends UdpLink and is included in a mod that gets downloaded to the client, the demo user barfs on it.

If this is[/is] the case, it's a bug. Email Epic about it.
 

PurplePants

New Member
Sep 24, 2003
15
0
0
www.oldephartes.co.uk
Kuhal said:
I don't know how to run a demo on a server or what is to be gained from it.
Piece of cake. From the in-game console log in as admin then type "admin demorec demoname.dem". From webadmin console, just type "demorec demoname.dem". And "stopdemo" stops it (or a map change).

Why? Well, if you're hosting a clan match it means you can effectively demo every player all at once without anyone complaining of the need to demo lagging them. Or if you suspect someone of being naughty you can grab a stealth demo without even joining the game. Playback is superior to a local demo since you can view anyone at all (not just those 'in range' of whoever is recording) and it shows exactly what the server was seeing rather than what the local player saw after being sanitised by his link.
 

PurplePants

New Member
Sep 24, 2003
15
0
0
www.oldephartes.co.uk
djpaul said:
If this is[/is] the case, it's a bug. Email Epic about it.

Really? I mean, it would be nice to think that it's not me screwing up :), but what makes you think it's likely to be a bug?

Do you have an email address for someone at Epic likely to be sympathetic about this? I've never mailed Epic, but my experience of trying to talk techy to big companies is discouraging. And that's for stuff that they don't consider obsolete.
 

Kuhal

New Member
Jul 13, 2001
29
0
0
55
New Zealand
Visit site
PurplePants said:
Piece of cake. From the in-game console log in as admin then type "admin demorec demoname.dem". From webadmin console, just type "demorec demoname.dem". And "stopdemo" stops it (or a map change).

Why? Well, if you're hosting a clan match it means you can effectively demo every player all at once without anyone complaining of the need to demo lagging them. Or if you suspect someone of being naughty you can grab a stealth demo without even joining the game. Playback is superior to a local demo since you can view anyone at all (not just those 'in range' of whoever is recording) and it shows exactly what the server was seeing rather than what the local player saw after being sanitised by his link.

That's cool! A lot of good reasons right there!
I'll be able to test this out now exactly as you do it with ASH and syslog...
Cheers
 

PurplePants

New Member
Sep 24, 2003
15
0
0
www.oldephartes.co.uk
djpaul said:
Try the ut2003mods mailing list (don't have any signup URLs to hand).
Ah, thanks. As it happens it looks like it really was me screwing it up :)

Kuhal appears to have found the fix, if not the problem, and once I've verified that it works properly I'll post that here.
 

PurplePants

New Member
Sep 24, 2003
15
0
0
www.oldephartes.co.uk
PurplePants said:
once I've verified that it works properly I'll post that here.
And the answer is... [drumroll] RemoteRole=ROLE_None [/drumroll]

By adding that to the default properties, everything works fine. I have not a clue why it works, so if one of the gurus can explain in simple words I'm all ears :)

Many thanks to Kuhal for figuring this out so quickly.
 

Kuhal

New Member
Jul 13, 2001
29
0
0
55
New Zealand
Visit site
MY copy/paste skills are legendary (well in my house anyhow).

My lack of understanding of lots of replication issues means I'm willing to try anything once so I'd say it was a happy fluke :)

Cheers