V24 Bugs/crashes reporting thread

Status
Not open for further replies.
r3080 CTD on end turn (repeatable) instantly after I press <enter>

I'm snowed under with work and will not have tiome to do much about the recent CTDs until at least tomorrow (maybe later). However, I can tell you, based on this minidump, that it is to do with bad code in unit promotion (it's obviously incorrect), that will happen if you enable buildings with freePromotionOnMove, which Hydro did yesterday.

Because the code is obviously broken, I will get a fix into the DLL in the next 30 minutes, but I won't be able to test it due to work constraints, so let me know...

Edit - fix now pushed to SVN (but untested)
 
This happened to me, I deleted my old c2c and so I didn't overwrite from svn, it was fresh, see if this helps.

wow, thanks friend :goodjob: this actually fixed it ,who knew it crashed because of something like that:crazyeye:
 
V24, patch 2. Click and drag on my stone thrower first turn, insta crash. Every damn time. Maybe this dump will have the crash.
 

Attachments

V24, patch 2. Click and drag on my stone thrower first turn, insta crash. Every damn time. Maybe this dump will have the crash.

Do you mean the guardian guy? you can't move him out of your capital. The stone thrower should be fine. Just make sure you haven't selected all. I have crashed when trying to move the guardian guy.
 
Do you mean the guardian guy? you can't move him out of your capital. The stone thrower should be fine. Just make sure you haven't selected all. I have crashed when trying to move the guardian guy.

Nope, I mean my initial stone thrower; the one that isn't in the stack with the settler. I click the unit on the map and I instantly see my desktop. Every time.
 
Nope, I mean my initial stone thrower; the one that isn't in the stack with the settler. I click the unit on the map and I instantly see my desktop. Every time.

No idea then, make sure you don't have stack attack ticked in BUG menu, apart from this you'll have to wait for koshling or whoever to analyse the minidump
 
I have found an issue with the CIV4TechInfos.xml file, which may also point out a problem with the way MapScriptTools.py is doing something.

Some of the techs have an empty PrereqTech tag, like "<PrereqTech/>", inside their AndPreReqs section before one that is not empty. The empty one blocks the one that is not empty from showing up in the list of prereq techs generated by the MapScriptTools.py file. I have not actually checked to see if they are blocked for showing up in game, but if the list the map script tools generates is any indication then they are not being used.

For example, the tech TECH_MODERN_SANITATION has this:
Code:
			<AndPreReqs>
				<PrereqTech/>
				<PrereqTech>TECH_ANTIBIOTICS</PrereqTech>
			</AndPreReqs>
Which is apparently either ending the parsing when it hits the <PrereqTech/> or it is putting some invalid value (presumably -1) for a tech into the list of And prereq techs before TECH_ANTIBIOTICS which causes the map script tools assume it has hit the end of the list before it gets to it.

This could be a problem only for the map script tools, since it is not checking to see what the number of And tech prereqs really is and looping over the entire list, but stopping when it hits a value that is not valid for a tech. But that would indicate that either the list is empty or that using a <PrereqTech/> actually makes the list have an array element that is invalid at a lower index than one or more valid entries (they go up as high as, I think, 3 after such a thing).

Even if this does not block them from getting into the data during parsing, putting valid entries in the list after the invalid one (or possibly more than one), and even if the DLL can deal with this and still correctly use the actual prereqs, it is still a bad idea to put bad values into your list of AndPreReqs in front of or in between the valid entries. The CIV4TechInfos.xml should have all of these removed (there are quite a few, some are after all the valid entries which is not a problem, but in at least 2 dozen cases there are techs listed after the empty element). It looks like they only occur in the AndPreReqs in the tech infos.
 
I have found an issue with the CIV4TechInfos.xml file, which may also point out a problem with the way MapScriptTools.py is doing something.

Some of the techs have an empty PrereqTech tag, like "<PrereqTech/>", inside their AndPreReqs section before one that is not empty. The empty one blocks the one that is not empty from showing up in the list of prereq techs generated by the MapScriptTools.py file. I have not actually checked to see if they are blocked for showing up in game, but if the list the map script tools generates is any indication then they are not being used.

For example, the tech TECH_MODERN_SANITATION has this:
Code:
			<AndPreReqs>
				<PrereqTech/>
				<PrereqTech>TECH_ANTIBIOTICS</PrereqTech>
			</AndPreReqs>
Which is apparently either ending the parsing when it hits the <PrereqTech/> or it is putting some invalid value (presumably -1) for a tech into the list of And prereq techs before TECH_ANTIBIOTICS which causes the map script tools assume it has hit the end of the list before it gets to it.

This could be a problem only for the map script tools, since it is not checking to see what the number of And tech prereqs really is and looping over the entire list, but stopping when it hits a value that is not valid for a tech. But that would indicate that either the list is empty or that using a <PrereqTech/> actually makes the list have an array element that is invalid at a lower index than one or more valid entries (they go up as high as, I think, 3 after such a thing).

Even if this does not block them from getting into the data during parsing, putting valid entries in the list after the invalid one (or possibly more than one), and even if the DLL can deal with this and still correctly use the actual prereqs, it is still a bad idea to put bad values into your list of AndPreReqs in front of or in between the valid entries. The CIV4TechInfos.xml should have all of these removed (there are quite a few, some are after all the valid entries which is not a problem, but in at least 2 dozen cases there are techs listed after the empty element). It looks like they only occur in the AndPreReqs in the tech infos.

Yes you are absolutely correct in all of the above:blush::blush:
 
I have found an issue with the CIV4TechInfos.xml file, which may also point out a problem with the way MapScriptTools.py is doing something.

Some of the techs have an empty PrereqTech tag, like "<PrereqTech/>", inside their AndPreReqs section before one that is not empty. The empty one blocks the one that is not empty from showing up in the list of prereq techs generated by the MapScriptTools.py file. I have not actually checked to see if they are blocked for showing up in game, but if the list the map script tools generates is any indication then they are not being used.

For example, the tech TECH_MODERN_SANITATION has this:
Code:
			<AndPreReqs>
				<PrereqTech/>
				<PrereqTech>TECH_ANTIBIOTICS</PrereqTech>
			</AndPreReqs>
Which is apparently either ending the parsing when it hits the <PrereqTech/> or it is putting some invalid value (presumably -1) for a tech into the list of And prereq techs before TECH_ANTIBIOTICS which causes the map script tools assume it has hit the end of the list before it gets to it.

This could be a problem only for the map script tools, since it is not checking to see what the number of And tech prereqs really is and looping over the entire list, but stopping when it hits a value that is not valid for a tech. But that would indicate that either the list is empty or that using a <PrereqTech/> actually makes the list have an array element that is invalid at a lower index than one or more valid entries (they go up as high as, I think, 3 after such a thing).

Even if this does not block them from getting into the data during parsing, putting valid entries in the list after the invalid one (or possibly more than one), and even if the DLL can deal with this and still correctly use the actual prereqs, it is still a bad idea to put bad values into your list of AndPreReqs in front of or in between the valid entries. The CIV4TechInfos.xml should have all of these removed (there are quite a few, some are after all the valid entries which is not a problem, but in at least 2 dozen cases there are techs listed after the empty element). It looks like they only occur in the AndPreReqs in the tech infos.
That kind of Prereq list has a fixed length and the DLL always loops through all of them and always checks for NO_TECH.
So from the DLL side this kind of usage is valid.
Nonetheless it is kind of pointless and especially when no And prereq is there, it should just be left empty or removed.
 
Nope, I mean my initial stone thrower; the one that isn't in the stack with the settler. I click the unit on the map and I instantly see my desktop. Every time.

If instead of drag clicking (or left clicking) you right click on the first turn, 99% of the time the succeeding turns will work fine by left clicking. If the game crashes on the first turn, simply reload the autosave and right click instead.
 
Minor display issue in the Tech Tree:
iGridX = 9, TECH_ADHESIVES and TECH_DRUIDISM are on the same iGridY. I changed the iGridY to 15 for TECH_DRUIDISM in Civ4TechInfos.xml and that fixed the display.
 
As long as I'm no the topic of XML wackiness, here are 3 more which have no actual effect except probably infinitesimally slowing down the loading process:

Modules\NotSoGood\AnimalPlacing\AnimalPlacing_CIV4BuildInfos.xml
This has two entries for BUILD_BONUS_FUR which are identical.

CIV4UnitInfos.xml
This has two entries for UNIT_TESLA_INFANTRY which are identical except for one tag, the iRequired tag in the UnitMeshGroup (the first one has it set to 3, the second to 2).

Modules\MLF_CIV4ModularLoadingControls.xml
This has Module entries for 2 folders that don't exist: Custom_Buildings and CIVPlayer8.

None of this stuff matters much, but having data for folders that don't exist and overwriting data with the same data (except the one tag for one of them) seems pointless.
 
As long as I'm no the topic of XML wackiness, here are 3 more which have no actual effect except probably infinitesimally slowing down the loading process:

Modules\NotSoGood\AnimalPlacing\AnimalPlacing_CIV4BuildInfos.xml
This has two entries for BUILD_BONUS_FUR which are identical.

CIV4UnitInfos.xml
This has two entries for UNIT_TESLA_INFANTRY which are identical except for one tag, the iRequired tag in the UnitMeshGroup (the first one has it set to 3, the second to 2).

Modules\MLF_CIV4ModularLoadingControls.xml
This has Module entries for 2 folders that don't exist: Custom_Buildings and CIVPlayer8.

None of this stuff matters much, but having data for folders that don't exist and overwriting data with the same data (except the one tag for one of them) seems pointless.

Again:eek: many many thx, and now fixed.:)
 
I have found an issue with the CIV4TechInfos.xml file, which may also point out a problem with the way MapScriptTools.py is doing something.

Some of the techs have an empty PrereqTech tag, like "<PrereqTech/>", inside their AndPreReqs section before one that is not empty. The empty one blocks the one that is not empty from showing up in the list of prereq techs generated by the MapScriptTools.py file. I have not actually checked to see if they are blocked for showing up in game, but if the list the map script tools generates is any indication then they are not being used.

For example, the tech TECH_MODERN_SANITATION has this:
Code:
			<AndPreReqs>
				<PrereqTech/>
				<PrereqTech>TECH_ANTIBIOTICS</PrereqTech>
			</AndPreReqs>
Which is apparently either ending the parsing when it hits the <PrereqTech/> or it is putting some invalid value (presumably -1) for a tech into the list of And prereq techs before TECH_ANTIBIOTICS which causes the map script tools assume it has hit the end of the list before it gets to it.

This could be a problem only for the map script tools, since it is not checking to see what the number of And tech prereqs really is and looping over the entire list, but stopping when it hits a value that is not valid for a tech. But that would indicate that either the list is empty or that using a <PrereqTech/> actually makes the list have an array element that is invalid at a lower index than one or more valid entries (they go up as high as, I think, 3 after such a thing).

Even if this does not block them from getting into the data during parsing, putting valid entries in the list after the invalid one (or possibly more than one), and even if the DLL can deal with this and still correctly use the actual prereqs, it is still a bad idea to put bad values into your list of AndPreReqs in front of or in between the valid entries. The CIV4TechInfos.xml should have all of these removed (there are quite a few, some are after all the valid entries which is not a problem, but in at least 2 dozen cases there are techs listed after the empty element). It looks like they only occur in the AndPreReqs in the tech infos.

I've gone through the Tech file and corrected all of the instances where this occurs. Whilst there is no mention of this causing a CtD I have to ask if this is possible, could this problem cause a CtD?
 
I've gone through the Tech file and corrected all of the instances where this occurs. Whilst there is no mention of this causing a CtD I have to ask if this is possible, could this problem cause a CtD?
No, I checked and for the DLL those empty tags are ok in those places.
 
No, I checked and for the DLL those empty tags are ok in those places.

Yeah Afforess made i believe an override when he was doing the dll stuff over 2 years ago.
 
SVN 3083 (from about two hours ago). CTD as soon as all units are moved. 48x30,2 viewport. Logging didn't pick up anything other than my unit commands on last turn.

View attachment 325814
View attachment 325813

I couldn't reproduce an actual crash, but I DID reproduce some incorrect viewport-related behaviour at exactly the time you mention, which I can believe MIGHT lead to a crash. I have just pushed a fix to SVN for that - please let me know if it solves your problem. If it does not please check that the rpoblem does NOT occur if you run without viewports enabled so we can be sure it is a viewport problem (as I expect it is)
 
Status
Not open for further replies.
Back
Top Bottom