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

0 Members and 1 Guest are viewing this topic.

Offline Alan Bolte

  • 28
  • Deneb III
    • @Compellor
Access violations and assert:total_ammo
I haven't played FS2 for years, but today I decided to go back through War in Heaven, and it's been... a little unstable. I updated Knossus, updated all my mods, and everything went well for a while...

My first time through Delenda Est, in the middle of a dense furball, the framerate dropped to single digits for a few seconds, and then it crashed to desktop, producing a mdmp file containing an access violation. I'd tell you more, but I couldn't reproduce the crash, and I can't figure out where to get symbol files. I could upload the mdmp file somewhere if you want it.

I then used Knossus to enable fast debug. This resulted in a ton of warning popups that seem to indicate Blue Planet's models and tables need to be updated to modern standards. Clicking through them every time a mission or cutscene loaded was a real drag.

My first time through Nothing is True, I got right up to the part at the end where I ordered my wingmen to attack the federation fighters, and then an assert triggered: "total_ammo" at aicode.cpp:5740

From skimming the code, I think this means that somehow an AI ship with only ballistic weapons (probably my wingman... maybe the Custos?) somehow ended up with its maximum ammo set to 0. Couldn't reproduce on second runthrough, not sure how I would, though of course I could run through the mission a dozen times if you want me to be thorough.

I got through Everthing is Permitted withough errors, but then when I went to the dreamscape afterwards, I experienced another access violation with mdmp during the Custos training sequence. No idea what triggered it, but there was no framerate drop this time.

My log is here: https://fsnebula.org/log/60b73bc1d6a16939c439130d


I am running Windows 10 on some seriously old hardware (~2013), and I haven't tried a ton of troubleshooting, but I'm not really sure where to start, with nothing clearly reproducible. I just figured I should log my experience.
Anything worth doing is worth analyzing to death -Iranon

 

Offline Alan Bolte

  • 28
  • Deneb III
    • @Compellor
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.
Anything worth doing is worth analyzing to death -Iranon

 

Offline mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
Re: Access violations and assert:total_ammo
Thanks for going out of your way to test this and figure out how to reproduce it. :yes:

I'm not familiar with BP's modpack but I suspect this isn't a quick fix. In the meantime, you can probably get around the issue by using an older FSO build in Knossos. From the mod.json it looks like the oldest build BP is set to use is 21.1. If you go to Knossos -> Settings -> Show builds in mod list... then go to Knossos -> Explore -> FSO -> Details. There will be a dropdown in the top left to select and install older builds.

@Battuta I know you're tired of maintaining this mod. There are a lot of POF/table warnings in the log here that would be where I would start fixing things. I'm willing to help out with that if you guys need it. My only hesitation is that BP is a complex modpack that I'd be afraid of breaking in some unforseen way.
Cutscene Upgrade Project - Mainhall Remakes - Between the Ashes - MjnMixael's Render Boutique
Youtube Channel - P3D Model Box
Between the Ashes is looking for committed testers, PM me for details.
Freespace Upgrade Project See what's happening.

 

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
Thanks mjn, u r a frend.

I suspect Darius is the one taking care of all the janitorial duties, unfortunately. My guy may have this under control, I don't know, he is a dad and a doctor!

I really, really do not want to go through the horrorshow of retesting every mission to see what's changed with every creeping unnoticed second-order consequence of some code change. But it probably has to be done. Bluuuuuuuuuuuuuuuuuuuuuuugh

  
Re: Access violations and assert:total_ammo
Or, of course, you could just pin the modpack to the last known working build. Then you never have to worry about incremental breakages ever 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
That is something that can be done after a comprehensive playthrough and retest, yes. But it's not an option before you have a last known working build. Unless you're suggesting we go back to a build from 2015.

 
Re: Access violations and assert:total_ammo
That is something that can be done after a comprehensive playthrough and retest, yes. But it's not an option before you have a last known working build. Unless you're suggesting we go back to a build from 2015.

why not tho

 

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 mod would not work any more and we'd have to throw out our progress on Act 4 missions.

I don't understand why this is hard to grasp! If you need to upgrade to a new build for whatever reason (MVPs compatibility, new features, a vital bugfix like 'turning is no longer framerate dependent') you also have to accept the risk of regressions and the test burden for them.

Also at some point we really need to sit down and see how much the gameplay has changed from 1999 retail and how much of that change is intended and or desired.
« Last Edit: June 02, 2021, 11:32:14 am by General Battuta »

 

Offline mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
Re: Access violations and assert:total_ammo
Or, of course, you could just pin the modpack to the last known working build. Then you never have to worry about incremental breakages ever again.
You scolded me multiple times about not updating BtA for the same reasons here. This is simply to point out that you didn't listen to me then and you aren't listening to Battuta now. It took months of work to update BtA1. Time that I would have rather spent on BtA2.

The mod would not work any more and we'd have to throw out our progress on Act 4 missions.

I don't understand why this is hard to grasp! If you need to upgrade to a new build for whatever reason (MVPs compatibility, new features, a vital bugfix like 'turning is no longer framerate dependent') you also have to accept the risk of regressions and the test burden for them.

Also at some point we really need to sit down and see how much the gameplay has changed from 1999 retail and how much of that change is intended and or desired.

This is a major point that people need to take to heart. It's not easy to keep up with the cycle of features and breakage in SCP while maintaining previously created missions AND trying to create new content. And there is constantly unintentional breakage from SCP's direction. That Mefistofele mission is a prime example. In Shell Game, an event was tied to when the hostiles fire missiles. They always used to fire missiles when they got in range of the friendlies. Now for some reason, they fire missiles the moment they arrive. Why? Dunno. Some SCP change caused it, but the BtA team was forced to deal with it.

Mods like BP are big and complex and whatever one-liner fix is suggested in threads like this are usually easier said than done.

EDIT: Further thoughts. That Shell Game missile timing bug implies an AI change across the board regarding how the AI chooses when to fire missiles. This can easily have balance impacts; to say nothing of other mods that may have sexp timing issues due to checking missile fire via sexp. Is SCP looking into why that changed? I bet not. I also bet that's not the only unintentional breakage in SCP. Mod authors just have to hope the changes are minor enough not to mess with missions too badly. The whack-a-mole game here is only playable when the moles show their heads and sometimes I just don't want to play it.

Using an old build is an easy to write solution. But players want mods updated to use the new MediaVPs or whatever. Sometimes that requires a newer build. We have a complex modding machine here and "use an old build" is not a long term solution.
« Last Edit: June 02, 2021, 12:14:01 pm by mjn.mixael »
Cutscene Upgrade Project - Mainhall Remakes - Between the Ashes - MjnMixael's Render Boutique
Youtube Channel - P3D Model Box
Between the Ashes is looking for committed testers, PM me for details.
Freespace Upgrade Project See what's happening.

 

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
I have so much **** to do and I do almost none of it, I'm good for like 4-5 hours of work a day on anything, the rest of my life is spent being a useless slime emission, I need all the hours in my day to feel bad about not doing the stuff I'm supposed to be doing! I can't find the time to constantly fix mods, I barely have enough time to feel ****ty about not fixing them!

 
Re: Access violations and assert:total_ammo
I am not requesting anyone spend any time on fixing anything! Presumably at some point it did work, it is vastly easier on you and the users if the build that was used was the one which you last knew it worked on. If you aren't actually using recent features there's no reason to be using recent versions. And there is definitely no reason to always default to the most recent nightly, because that will only ensure these constant incremental breakages will always happen, even if you update it.

All it takes is a few clicks in Knossos to set the build to an earlier one (and don't allow newer versions), at some point a dependency won't let you go earlier back, whatever that build is is a very good candidate to pin it too, as you'll be dealing with way less bugs. If you want to do a full update for recent versions, that's great, but also a lot of work and that isn't actually necessary.

Having a complex mod like this use recent nightlies is a great way to unearth bugs to be sure, so it's very useful for the SCP! But it's absolutely not worth the frustration for the user and the modder.

Using an old build is an easy to write solution. But players want mods updated to use the new MediaVPs or whatever. Sometimes that requires a newer build. We have a complex modding machine here and "use an old build" is not a long term solution.

I disagree completely. By using its own builds, WoD has unintentionally pinned itself to a build it knows is stable, and directly because of that even a complex mod like WoD has enjoyed a very bug free experience in perpetuity! Sure users like new bells and whistles, but I think everyone understands that requesting a mod to update for it can be a big ask, and they would certainly admit that functioning at all is far superior to some new bells and whistles. Sticking to an old build is the only viable long term solution.
« Last Edit: June 02, 2021, 12:43:07 pm by Asteroth »

 

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
I am not requesting anyone spend any time on fixing anything! Presumably at some point it did work, it is vastly easier on you and the users if the build that was used was the one which you last knew it worked on.

It's from 2015

 
Re: Access violations and assert:total_ammo
I thought you said the mod straight up wouldn't work with a build that old?

 

Offline mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
Re: Access violations and assert:total_ammo
It has had several minor revision bumps over the years, presumably to update to the newer MediaVPs or fix other bugs. So I say again... using an old build is not as easy as you claim it is, Asteroth. It's as much of a dice roll to pick an old one as it is to let it use the most recent stable.

C'mon, man. You made a mod and you code for SCP. You should be able to grasp this.

TLDR: Any mod that has gone this long without actual maintenance needs extensive testing no matter what way you go with it. Please stop acting like it's as simple as a few clicks in Knossos.
Cutscene Upgrade Project - Mainhall Remakes - Between the Ashes - MjnMixael's Render Boutique
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
One option constantly changes over time, and the other does not. It should be very clear which will be easier to maintain. If you're dead set on updating it, then yes obviously, there's no getting around the work that's involved, but the trigger shouldn't be pulled on that until someone has the time and is willing to spend the effort to do so.

 

Offline mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
Re: Access violations and assert:total_ammo
*epic facepalm*

EDIT: It's clear you aren't listening. The problem is more complex and whether or not you understand that doesn't change the fact.

I've offered assistance to the TC and to the BP team to actually help fix this issues. My job here is done. This other back and forth is pointless.
« Last Edit: June 02, 2021, 01:01:19 pm by mjn.mixael »
Cutscene Upgrade Project - Mainhall Remakes - Between the Ashes - MjnMixael's Render Boutique
Youtube Channel - P3D Model Box
Between the Ashes is looking for committed testers, PM me for details.
Freespace Upgrade Project See what's happening.

 

Offline mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
Re: Access violations and assert:total_ammo
To further drive home just how silly it is to just say "use an old build" for older mods... In theory, the last known stable build for BP is from 2015.

Knossos only works with 3.8 or newer, which came out in 2017.

So please spare the one-liner fixes and let's work as a team, maybe?
Cutscene Upgrade Project - Mainhall Remakes - Between the Ashes - MjnMixael's Render Boutique
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
I'm just trying to help, man. It really pains me to see users and modders frustrated over a constantly reoccurring situation which other mods have never and will never need to worry about.

 

Offline mjn.mixael

  • Cutscene Master
  • 212
  • Chopped liver
    • Steam
    • Twitter
Re: Access violations and assert:total_ammo
Then offer real solutions. What you suggested here literally will not work for this case.
Cutscene Upgrade Project - Mainhall Remakes - Between the Ashes - MjnMixael's Render Boutique
Youtube Channel - P3D Model Box
Between the Ashes is looking for committed testers, PM me for details.
Freespace Upgrade Project See what's happening.

 

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
I thought you said the mod straight up wouldn't work with a build that old?

Yes, that's correct. There is no known good build. A full test cycle needs to be performed.