Crash with ÆoD v4.21 (r1433M)
Moderator: GZDoom Developers
Forum rules
Please don't bump threads here if you have a problem - it will often be forgotten about if you do. Instead, make a new thread here.
Please don't bump threads here if you have a problem - it will often be forgotten about if you do. Instead, make a new thread here.
Crash with ÆoD v4.21 (r1433M)
It crashes when entering the second level of whatever I'm playing. This should probably be posted on the ÆoD thread rather than here because the project is a total disaster so it might not be ZDoom's fault afteralls.
Anyways, here's a crash report, for what it's worth.
Anyways, here's a crash report, for what it's worth.
- Attachments
-
CrashReport.zip
- (12.99 KiB) Downloaded 24 times
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49234
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: Crash with ÆoD v4.21 (r1433M)
Please only post crash logs for versions obtained from an official source which for SVN builds means DRDTeam. I can't use this.
Re: Crash with ÆoD v4.21 (r1433M)
There you go.
- Attachments
-
CrashReport.zip
- (13.77 KiB) Downloaded 22 times
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49234
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: Crash with ÆoD v4.21 (r1433M)
Argh!
And I thought the networking code had enough intelligence to handle large buffers. But all the nice work with dynamically growing buffers is rendered useless in the end when the data is copied into a 1400 byte buffer without actually checking.
I have no idea how to fix this so there's 2 options:
1. Randy finds a solution
2. My weapon slot change which transmits the contents is reverted.
I'd much prefer solution 1, of course.
Nevertheless, this also pointed me to another problem: Weapons slots were recreated each time a player was spawned - for each voodoo doll and each temporary player actor. At least that could be fixed. It's enough for AEoD to run but it doesn't solve the problem.
And I thought the networking code had enough intelligence to handle large buffers. But all the nice work with dynamically growing buffers is rendered useless in the end when the data is copied into a 1400 byte buffer without actually checking.
I have no idea how to fix this so there's 2 options:
1. Randy finds a solution
2. My weapon slot change which transmits the contents is reverted.
I'd much prefer solution 1, of course.
Nevertheless, this also pointed me to another problem: Weapons slots were recreated each time a player was spawned - for each voodoo doll and each temporary player actor. At least that could be fixed. It's enough for AEoD to run but it doesn't solve the problem.
Re: Crash with ÆoD v4.21 (r1433M)
Yeah, that was it, just like I thought 

Re: Crash with ÆoD v4.21 (r1433M)
Yes, that's exactly what I thought of when I found out you were sending weapon data across the network again. There's really no provision at all for splitting up data and sending it in multiple packets, so the easiest thing to do would be to change what gets sent.Graf Zahl wrote:the data is copied into a 1400 byte buffer
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49234
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: Crash with ÆoD v4.21 (r1433M)
Would it be possible to fill the buffer with some commands until it is full, then have the network code handle it and filling the buffer again without having to return to the main program loop?
Then it would be possible to just put as many weapons into the buffer as fit, send it and continue until all weapon info has been transmitted. But to be honest, when I look at that code I only understand half of it. That's why I only found the 1400 bytes limitation here after some extended searching. I was somehow assuming that the code would be able to split up larger buffers, considering that the FDynamicBuffer class has no size restrictions whatsoever.
If it wouldn't just help avoiding some awkward problems I would never have bothered making this change...
Then it would be possible to just put as many weapons into the buffer as fit, send it and continue until all weapon info has been transmitted. But to be honest, when I look at that code I only understand half of it. That's why I only found the 1400 bytes limitation here after some extended searching. I was somehow assuming that the code would be able to split up larger buffers, considering that the FDynamicBuffer class has no size restrictions whatsoever.
If it wouldn't just help avoiding some awkward problems I would never have bothered making this change...

Re: Crash with ÆoD v4.21 (r1433M)
r1438M fixed it for me 

- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49234
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: Crash with ÆoD v4.21 (r1433M)
Not really.
I did some more tests. With AEoD's insane amount of weapons the entire network traffic for the weapons amounts to 1433 bytes - which slightly overflows the buffer. But seeing Randy's latest change gave me an idea: Why not collect the entire weapon setup in one buffer and compress it before sending it to the network code? That way a lot more data should fit into 1400 bytes - and I honestly can't think of any real life mod having such a large amount of weapons all at once. Anything with even semi-decent design goals with a large amount of weapons would possibly split them up between different player classes.
EDIT: Forget that. Randy also increased the message buffer to 14000 which should be more than enough. I míssed that part.
I did some more tests. With AEoD's insane amount of weapons the entire network traffic for the weapons amounts to 1433 bytes - which slightly overflows the buffer. But seeing Randy's latest change gave me an idea: Why not collect the entire weapon setup in one buffer and compress it before sending it to the network code? That way a lot more data should fit into 1400 bytes - and I honestly can't think of any real life mod having such a large amount of weapons all at once. Anything with even semi-decent design goals with a large amount of weapons would possibly split them up between different player classes.
EDIT: Forget that. Randy also increased the message buffer to 14000 which should be more than enough. I míssed that part.
-
- Posts: 307
- Joined: Wed Aug 23, 2006 7:58 am
Re: Crash with ÆoD v4.21 (r1433M)
It appears the write buffer has been bumped from 1400 to 14000 in r1438.
Re: Crash with ÆoD v4.21 (r1433M)
Actually the behavior I reported no longer occurs with the new build, that's why I said it fixed for me, though I largely ignore the details and implications of everything else.Graf Zahl wrote:Not really
Random blackscreens/freezing remain an issue, but I can't even tell if the buffer thing has anything to do with them.
Re: Crash with ÆoD v4.21 (r1433M)
Most likely not the same problem. I would dare say this is a technical issue (driver, maybe?) and not a bug, but I'd have to test it myself. I could be wrong, though, and I have been before on a few occasions.Coon wrote:Random blackscreens/freezing remain an issue, but I can't even tell if the buffer thing has anything to do with them.
Re: Crash with ÆoD v4.21 (r1433M)
It happens only with ÆoD, so if in fact a technical issue, must be most unfortunate.SoulPriestess wrote:Most likely not the same problem. I would dare say this is a technical issue (driver, maybe?) and not a bug, but I'd have to test it myself. I could be wrong, though, and I have been before on a few occasions.Coon wrote:Random blackscreens/freezing remain an issue, but I can't even tell if the buffer thing has anything to do with them.