Author Topic: Access violations and assert:total_ammo  (Read 1615 times)

0 Members and 1 Guest are viewing this topic.

Re: Access violations and assert:total_ammo
I can reproduce the crash in the Custos training! All I have to do is hit , (comma) to toggle my weapons.

If you mean the Dreamscape training, that's not causing the bug for me, I'm afraid. We may need to iterate a bit to get a decent reproduction here. If you're familiar with Visual Studio dev tools, it might help if we can dissect the bug on your machine — you can compile your own version with debug symbols.
The good Christian should beware of mathematicians, and all those who make empty prophecies. The danger already exists that the mathematicians have made a covenant with the devil to darken the spirit and to confine man in the bonds of Hell.

  

Offline Alan Bolte

  • 28
  • Deneb III
    • @Compellor
Re: Access violations and assert:total_ammo
So, the reproducible issue isn't reproducible in the latest nightly build. Congrats on already fixing the weapon switching bug, lol.

That leaves the other access violation (probably only reproducible if I make my computer struggle to deal with too much at once, I dunno, I'm not worried about it), and the Total Ammo assert, which was just weird. I may or may not bother trying to figure out how to reproduce that one.
Anything worth doing is worth analyzing to death -Iranon

 

Offline Alan Bolte

  • 28
  • Deneb III
    • @Compellor
Re: Access violations and assert:total_ammo
To try to sum up a long discord discussion about the disconnect between SCP and modders that's... largely orthogonal to the thread topic but is happening here anyway:

SCP doesn't intentionally break things, but sometimes things break, including AI and other hard-to-track balance-affecting things. SCP would like to have better testing, but it's probably impractical, though some ideas are being pursued. SCP doesn't want to tell anyone in overworked, volunteer modding teams that they need to do something, but in practice, if a modder doesn't do all the isolation work required to figure out what SCP changed that caused a problem, SCP usually won't have the resources to do that isolation work themselves, at least not in a timely manner.

It's probably best not to link events to AI behaviors, or to expect AI behavior to be deterministic in general.

Also, SCP is not a hive-mind, so all of the above is probably a misrepresentation of what any individual member actually thinks, and may not actually represent a gestalt.

There was then much discussion of whether more frequent newsletters like this one would reduce the feeling that SCP is an unknowable entity that doesn't care.



I got the impression that Battuta and mjn are correct about mods older than 3.8 needing a full test cycle; no one is happy about this, but there doesn't seem to be a better option. If something broke in between the mod's last update and 3.8, then the modder is either going to have isolate the problem themselves, or convince a specific SCP member that the problem deserves priority over whatever other problems they're trying to fix.

Again, this is just my attempt to summarize, so I might have got something wrong.
Anything worth doing is worth analyzing to death -Iranon

 

Offline Cyborg17

  • 29
  • Bawsh: i HAz Shivun frend buttons
Re: Access violations and assert:total_ammo
"SCP would like to have better testing, but it's probably impractical, though some ideas are being pursued."

Yup, and this is also low on the priority list.

qtFRED and PCS3 would be a higher priority.

 

Offline mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
Re: Access violations and assert:total_ammo
I do not dispute the difficulty of testing SCP bugs and features. I didn't get my SCP badge cause I can write code. I got it because I'm damn good at isolating and reproducing bugs.

SCP does not like it when some mod maker tells them how easy it will be to make some feature or fix some bugs. HLP history is littered with examples of ruffled feathers over that exact issue. So I get a bit annoyed when an SCP dev pops in to more than one thread insisting on the same tired fix that does. not. apply. here. and how easy that fix is. In the future? Sure. That's a way to solve the problem. Right now? Won't do it.

BP has almost 60 mission files. I simply ask that people consider just how difficult that's going to be to test thoroughly no matter what FSO build is chosen. It's not like BP was known for simple retail-style missions, either.
Cutscene Upgrade Project - Mainhall Remakes - Between the Ashes
Youtube Channel - P3D Model Box
Between the Ashes is looking for committed testers, PM me for details.
Freespace Upgrade Project See what's happening.

 
Re: Access violations and assert:total_ammo
The thing is, at the end of the day the only practical way to expect your mods to work stably for users for any length of time is to test them against a specific version of FSO and then keep that version fixed in Knossos. You need both parts for stability; the problem BP has here is that it hasn't really gone through a thorough test-and-fix cycle for a very long time, so there's no clear target to pin it on.
The good Christian should beware of mathematicians, and all those who make empty prophecies. The danger already exists that the mathematicians have made a covenant with the devil to darken the spirit and to confine man in the bonds of Hell.

 

Offline Alan Bolte

  • 28
  • Deneb III
    • @Compellor
Re: Access violations and assert:total_ammo
Next problem: tanks don't show up in Eyes in the Storm. The little rocket trails appear and travel down to the platforms, but there's no models, and therefore no turret fire. That's in the nightly 20210602. I switched back to stable 21.2, and that fixed the problem.


By the way, I tried switching to 3.8 at one point, but the game won't launch at all, with:

Error: game_settings.tbl(line 28):
Error: Missing required token: [#END]. Found [$Movie subtitle font: 1] instead.

File: parselo.cpp
Line: 290

Just for reference...


Anything worth doing is worth analyzing to death -Iranon

 
Re: Access violations and assert:total_ammo
The thing is, at the end of the day the only practical way to expect your mods to work stably for users for any length of time is to test them against a specific version of FSO and then keep that version fixed in Knossos. You need both parts for stability; the problem BP has here is that it hasn't really gone through a thorough test-and-fix cycle for a very long time, so there's no clear target to pin it on.

(Lest anyone think SCP coders are just blaming everyone but themselves for the issues cropping up, I will say that I think there have been a lot of careless breakages pushed into FSO in the past several months which have exacerbated the frustrations felt by modders here. The problem is that while the SCP can certainly be more careful about stuff like that, full backwards compatibility for all engine behaviour is not achievable, and even tiny obvious bugfixes have the potential to break mods. So we still need to get everyone on the same page with their approach to engine stability.)
The good Christian should beware of mathematicians, and all those who make empty prophecies. The danger already exists that the mathematicians have made a covenant with the devil to darken the spirit and to confine man in the bonds of Hell.

 

Offline General Battuta

  • Poe's Law In Action
  • 214
  • i wonder when my postcount will exceed my iq
Re: Access violations and assert:total_ammo
Next problem: tanks don't show up in Eyes in the Storm. The little rocket trails appear and travel down to the platforms, but there's no models, and therefore no turret fire. That's in the nightly 20210602. I switched back to stable 21.2, and that fixed the problem.


By the way, I tried switching to 3.8 at one point, but the game won't launch at all, with:

Error: game_settings.tbl(line 28):
Error: Missing required token: [#END]. Found [$Movie subtitle font: 1] instead.

File: parselo.cpp
Line: 290
https://www.hard-light.net/forums/Smileys/HLP/sigh.gif
Just for reference...

 :shaking:

 
Re: Access violations and assert:total_ammo
Well, duh. From what I understand, BP was at some point updated to work with some pretty recent MVPS... which require a pretty recent build. One far more recent than 3.8.

Also, regarding the compatibility topic, just one comment fished out from the Discord:
How do you kill a hydra?

You starve it to death.

 

Offline 0rph3u5

  • 211
  • This place is empty promises all the way down..
Re: Access violations and assert:total_ammo
Error: game_settings.tbl(line 28):
Error: Missing required token: [#END]. Found [$Movie subtitle font: 1] instead.

File: parselo.cpp
Line: 290

All that is saying is that game_settings.tbl in the package was at one point updated for FSO 19.0.0, see:
https://wiki.hard-light.net/index.php/Game_settings.tbl#.24Movie_subtitle_font:

To approximate a working FSO version for the tables, it might be good to trace back when the source files for the Knossos build were last updated. If the BP team does not use a software solution that allows for that, it has to be done by hand by someone who is the source for Knossos build or has access to those files.
"When you work with water, you have to know and respect it. When you labour to subdue it, you have to understand that one day it may rise up and turn all your labours into nothing. For what is water, which seeks to make all things level, which has no taste or colour of its own, but a liquid form of Nothing?" - Graham Swift, Waterland

==================

"I am Curiosity, and I've always wondered what would become of you, here at the end of the world." - The Guide/The Curious Other, Othercide

"As you sought to steal a kingdom for yourself, so must you do again, a thousand times over. For a theft, a true theft, must be practiced to be earned." - The terms of Nyrissa's curse, Pathfinder: Kingmaker

"...because they are not Dragons."

 

Offline General Battuta

  • Poe's Law In Action
  • 214
  • i wonder when my postcount will exceed my iq
Re: Access violations and assert:total_ammo
The tables aren't the problem, I am much more worried about Eyes in the Storm tank spawns breaking again

 

Offline General Battuta

  • Poe's Law In Action
  • 214
  • i wonder when my postcount will exceed my iq
Re: Access violations and assert:total_ammo
Again, what needs to be done here is a full test cycle to find a known good build. The issue is not the ability to launch the game, it is stuff silently breaking due to changes in the engine.

 

Offline General Battuta

  • Poe's Law In Action
  • 214
  • i wonder when my postcount will exceed my iq
Re: Access violations and assert:total_ammo
On that note can someone nominate a stable build that is recent enough to include the vital fixes we need, like the correct SEXP node flushing behavior and checkpoints working again? Or does such a build not exist outside nightlies?

 

Offline Cyborg17

  • 29
  • Bawsh: i HAz Shivun frend buttons
Re: Access violations and assert:total_ammo
I'm pretty sure 21.2 has the sexp node flushing fix.  Not sure about checkpoints.

 

Offline 0rph3u5

  • 211
  • This place is empty promises all the way down..
Re: Access violations and assert:total_ammo
Again, what needs to be done here is a full test cycle to find a known good build. The issue is not the ability to launch the game, it is stuff silently breaking due to changes in the engine.

I've found that with suspected bugs created by the advance of FSO, the reverse process is much more effective.

Set a stable build. Go back and find the non-function element. Recreate it in isolation to narrow down the cause.

EDIT: It might be worth it to point out that the process of recreating a sequence of events in isolation is a prime opportunity to compare it to other possible ways to achieve the same results.
« Last Edit: June 04, 2021, 01:37:27 am by 0rph3u5 »
"When you work with water, you have to know and respect it. When you labour to subdue it, you have to understand that one day it may rise up and turn all your labours into nothing. For what is water, which seeks to make all things level, which has no taste or colour of its own, but a liquid form of Nothing?" - Graham Swift, Waterland

==================

"I am Curiosity, and I've always wondered what would become of you, here at the end of the world." - The Guide/The Curious Other, Othercide

"As you sought to steal a kingdom for yourself, so must you do again, a thousand times over. For a theft, a true theft, must be practiced to be earned." - The terms of Nyrissa's curse, Pathfinder: Kingmaker

"...because they are not Dragons."

 

Offline Alan Bolte

  • 28
  • Deneb III
    • @Compellor
Re: Access violations and assert:total_ammo
Well, just to sum up my experience, at the moment 21.2 isn't stable because switching primaries in dreamscape causes a crash, but the fix for that is in a nightly, but the nightly breaks the tanks for some reason I haven't looked into. So if there is a perfectly-stable build (which there might not be), it's either 19.0, or some version after that but before the dreamscape problem started.

OTOH, the dreamscape problem is minor enough that you could just note it as a 'known issue' and call 21.2 close-enough-to-stable, unless there are other problems I didn't run into. Sure, I got one unexplained CTD and one impossible assertion, but those aren't compatibility issues.
Anything worth doing is worth analyzing to death -Iranon

 

Offline General Battuta

  • Poe's Law In Action
  • 214
  • i wonder when my postcount will exceed my iq
Re: Access violations and assert:total_ammo
Again, what needs to be done here is a full test cycle to find a known good build. The issue is not the ability to launch the game, it is stuff silently breaking due to changes in the engine.

I've found that with suspected bugs created by the advance of FSO, the reverse process is much more effective.

Set a stable build. Go back and find the non-function element. Recreate it in isolation to narrow down the cause.

EDIT: It might be worth it to point out that the process of recreating a sequence of events in isolation is a prime opportunity to compare it to other possible ways to achieve the same results.

I don't really get what you are suggesting here.

 

Offline MatthTheGeek

  • Captain Obvious
  • 212
  • Frenchie McFrenchface
Re: Access violations and assert:total_ammo
Hi everyone.

We've started working on a big maintenance update for BP Complete that should bring it back to the latest FSO and MVP version and clear most of the debug issues.

There's a lot of standard debugging maintenance that has been long overdue.

Once this is done and updated on Knossos, and we can confirm all campaign missions run and finish properly under normal playing circumstances, we'll see if we can still reproduce and track down some of those specific issues.
People are stupid, therefore anything popular is at best suspicious.

Mod management tools     -     Wiki stuff!     -     Help us help you

666maslo666: Releasing a finished product is not a good thing! It is a modern fad.

SpardaSon21: it seems like you exist in a permanent state of half-joking misanthropy

Axem: when you put it like that, i sound like an insane person

bigchunk1: it's not retarded it's american!
bigchunk1: ...

batwota: steele's maneuvering for the coup de gras
MatthTheGeek: you mispelled grâce
Awaesaar: grace
batwota: oh right :P
Darius: ah!
Darius: yes, i like that
MatthTheGeek: the way you just spelled it it means fat
Awaesaar: +accent I forgot how to keyboard
MatthTheGeek: or grease
Darius: the killing fat!
Axem: jabba does the coup de gras
MatthTheGeek: XD
Axem: bring me solo and a cookie

 

Offline 0rph3u5

  • 211
  • This place is empty promises all the way down..
Re: Access violations and assert:total_ammo
I don't really get what you are suggesting here.

Instead of trying to find a new stable build through a long line of tests, you set one build that to serve as your new baseline. The missions will be broken but you'd at least have the firm foundation from which you can plan out the work to make put them back into a working order.

With that you can clean up all the little stuff in Debug Log on start-up - which shortens the list of possible error sources from assets, version mismatches in the tables and the like. This will ensure the mission will "broken" only by what it is in itself.

Once that is cleaned up you go into the mission on a Debug Build and note down each instance in the which the mission is now "broken". As soon as you have the events identified that no longer work, you make a mission that only contains the best approximation of the non-functional events you can - depending on what needs to be done that can take different shapes.

Use the isolated testing mission to narrow down as exact as you can what is not working. Then try to match what is suposed to happen with a similar mechanic that can achieve the same objective - even if it is more complex.



A recent example is the bug described here: https://www.hard-light.net/forums/index.php?topic=97011.msg1907744#msg1907744

When it was first reported, I had the player who encountered send me their Debug Log - it gave me the version information for the replication (21.0.0). As it was a reasonable build for players to use, I made it the target build for the fix, regardless what the build was SerRes was originally released on or patched to. I achieved replication on 21.0.0 and quickly was able to find the offending event by comparing the ingame message and events logs.

Then I created a mission to check the behavior of that event's condition in isolation: A small clean mission that contained nothing but the player fighter and capital ship that was needed for the replication of the event's condition. No other ships and only a few events that let me trigger the arrival and departure of the capital ship with the push of a button.
Using messages and subtitles, I build myself a framework there to check the condition in isolation at first (when-argument with a number-of list using cap-subsys-cargo-known-delay). Then as a second step against a similar event (when using a combination of and & 4xcap-subsys-cargo-known-delay), as a thrid step I compared to a variable based solution (5 events using when and cap-subsys-cargo-known-delay to modifiy-variable +1 each for each subsystem; one to trigger if the variable became >= 4).

Turned out that in between the release build of SerRes on a Nightly and FSO 21.0.0 the behavior of the number-of argument lists was changed, so that the event no longer triggered the way it was originally intended - which is when 4+ subsystem of a certain capital ship were scanned. Instead the event triggered when it was supplied with 2+ valid argument instead when 4+ arguments were valid.

The original event logic would not function under 21.0.0 but an alternative existed and easily achieved. All that it really took was accepting that there was no way to restore the event 1-to-1 but that aiming to achieve the same results through a different approach.
Temporarily I have to suggest to players to get an old Nightly, which still works on the original behavior, for internal development reasons.



Granted, this was an incident where everything alligned perfecty - no scripts were involved and it was pretty simple to isolate what was wrong. For other issues I had to put in additional work to just find what is wrong but it was not hard, it just took the time to prepare the missions with a custom debug overlay that gives the information I require for the situation at hand. Finding an alternative solution to any given event logic is not hard either, most of the time just recreating the original event in the clean mission gives me an idea how to achieve the same results using different SEXP.

And if you are short on time, breaking down the individual steps and keeping a good record of the tasks required helps greatly - I use DIN A3 paper sheets to make my "task boards" so I can pick up and leave a complicated job at will.
"When you work with water, you have to know and respect it. When you labour to subdue it, you have to understand that one day it may rise up and turn all your labours into nothing. For what is water, which seeks to make all things level, which has no taste or colour of its own, but a liquid form of Nothing?" - Graham Swift, Waterland

==================

"I am Curiosity, and I've always wondered what would become of you, here at the end of the world." - The Guide/The Curious Other, Othercide

"As you sought to steal a kingdom for yourself, so must you do again, a thousand times over. For a theft, a true theft, must be practiced to be earned." - The terms of Nyrissa's curse, Pathfinder: Kingmaker

"...because they are not Dragons."