Unknow crash in-game

Bug #896034 reported by FS-21
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ares
Fix Released
Medium
AlexB

Bug Description

Using the most recent binary in trunk (r964) I got a crash window in a skirmish battle. I don't know he exact cause so I can't reproduce it and this not always happen.

This is the dump file:
http://www.megaupload.com/?d=BO9HJHUG

##### ADDITIONAL INFORMATION #####
I don't know if it will help but just after I clicked to close the error window I heared the Chrono legionnarie weapon sound.

Tags: don-t know window
Revision history for this message
FS-21 (jagarni1983) wrote :
Revision history for this message
FS-21 (jagarni1983) wrote :

I got another crash that could be related to the bug:
http://www.megaupload.com/?d=E0C2TVDT

Playing as Yuri this time I mind-controlled an IFV with a Chrono legionnarie inside the vehicle and I was erasing vehicles until a little enemy group killed the IFV then I got the error, I'm not sure if the captured IFV was still erasing a vehicle when the IFV was destroyed or if it erased the vehicle just before the error.

Revision history for this message
FS-21 (jagarni1983) wrote :

Using for the test the revision 1012 I re-enabled the conflictive AI scripts that use Chrono Legionnaires (it use original code from YR) & I let all the night an AI battle (4 AIs, no teams & my buildings hidden by a cloak generator to be ignored by the AI). When I woke up I had again the crash with the same EIP as before ("0071AF4D", related to temporal weapons).

To find since what revision started all this I downloaded old revisions & during the last days I tested them until I got 1 that I couldn't reproduce the crash.
The same error happens in olders revisions like the r955, r941 but not with r936.

Currently (~2 days & counting) I'm still trying if r936 is affected & it does a crash, then I'll continue the test with more older revisions.

Revision history for this message
FS-21 (jagarni1983) wrote :

Finally with r936 I got a crash with different EIP (005657A5) & r939 with EIP (007225F3) but both cases could be because this .ini files are using features that could not exist in r936-r939.

In both cases (r936 & r939) I don't get the EIP related to temporal weapons (0071AF4D) so the possible range when it started could be (r939-r941] (this conclussion is considered if EIP:"0071AF4D" will not happen after these crashes).

I forgot to test r940 If I find something different (that EIP not related to temporal weapons or no crashes) I'll update the issue.

EDIT: in few minutes during the first test with r940 I got a crash, the EIP is "0071AF4D"... then I conclude that all the crashes started after r936-r939.
I'll retry again with older revisions & only If I find this crash I'll update or create a new post about it.

Revision history for this message
AlexB (alexander-b) wrote :

Thank you for this very detailed report!
5657A5 happens while getting a cell using invalid coordinates.
7225F3 is related to ore and gems trying to spread.

While commiting 936 i fucked up and forgot to include the dll.inj file. Can you test 937, please, if it doesn't consume too much time?

Revision history for this message
FS-21 (jagarni1983) wrote :

Test results during 24 hours with r937:
I got the EIP: "005657A5" 2 times in total.
With other tests of long duration it not crashed. No luck to get the EIP related to temporal weapons.

Revision history for this message
FS-21 (jagarni1983) wrote :

During all the week I made a lot of long tests to provoke it to crash (& if I could, detect what could cause it), 2 days ago I started disabling hooks that were added/modified in those revisions I said that could be the beginning of this EIP:"0071AF4D".

With r941 I noticed that if I remove the line "737F97 = UnitClass_ReceiveDamage, 0" in Ares.dll.inj I have no crashes (during 2 days of multiple long tests). I don't know if I had an excesive luck not having crashes related to temporal weapons or if I found where to find the problem (UnitClass_ReceiveDamage).

Revision history for this message
AlexB (alexander-b) wrote :

This could indeed be it. I looked at all the revisions yesterday evening but stopped to catch a little sleep. With all the other changes in that range of revisions it make no sense.

ReceiveDamage should not be called for temporal weapons. Do you have a temporal death weapon that is used like described here: http://www.modenc.renegadeprojects.com/Internal_Error/YR#eip_0071AF4D (maybe by accident)?

Revision history for this message
FS-21 (jagarni1983) wrote :

No, None of the 3 cases of the EIP are met.
Chrono legionnarie has the original weapon with the only change to the Elite weapon that can shoot over the walls like the non-elite weapon & I added an Elite weapon when is in IFVs:

[NeutronRifleE]
Damage=16
ROF=120
Range=5
Speed=100
Projectile=InvisibleMedium;InvisibleLow
Warhead=ChronoBeam
Report=ChronoLegionAttack
IsRadBeam=yes

; Fire by Chrono Legion
[NeutronRifle]
Damage=8
ROF=120
Range=5
Speed=100
Projectile=InvisibleMedium
Warhead=ChronoBeam
Report=ChronoLegionAttack
IsRadBeam=yes

[CRNeutronRifle]
Damage=8
ROF=120
Range=6
Speed=100
Projectile=InvisibleLow
Warhead=ChronoBeam
Report=
IsRadBeam=yes
Report=ChronoLegionAttack

[CRNeutronRifleE]
Damage=12
ROF=120
Range=6
Speed=100
Projectile=InvisibleLow
Warhead=ChronoBeam
Report=
IsRadBeam=yes
Report=ChronoLegionAttack

Exist a second unit (vehicle) that is called chrono prison but is a non-buildable unit & works like the chrono legionnarie but I'll put the code:

[NeutronCannon]
Damage=1000
ROF=65
Range=6.5
Speed=100
Projectile=InvisibleMedium
Warhead=ChronoWarpWH
Report=ChronoLegionAttack
FireWhileMoving=no
IsRadBeam=yes

[ChronoWarpWH]
Verses=100%,100%,100%,100%,100%,100%,0%,0%,0%,100%,0%
Temporal=yes

I'll upload the rulesmd.ini if you want additional info.

Revision history for this message
DCoder DCoder (dcoder1337) wrote :

Psst, Alex, you can inspect the memory dumps to see weapon data.

Revision history for this message
AlexB (alexander-b) wrote :

Psst, you can, I can't. :( I wouldn't even know how to start. (Ok, I got a faint idea of following pointers and adding field offsets from layout.txt, but that's about it.)

Revision history for this message
AlexB (alexander-b) wrote :

Steps to reproduce:
1) Get a CLEG. It can shoot at stuff.
2) Get an IFV and put the CLEG in. Still working.
3) Destroy the IFV. The CLEG will get out.
4) Let the CLEG shoot at something. Bang.

Works on vanilla YR, too, so your weapons code/rules is fine. Commenting out the UnitClass_ReceiveDamage prevents the bug from happening. The bug does not occur with OpenTopped units, only with Gunners.

I'll fix it in a moment.

Revision history for this message
Bug Importer (bug-importer) wrote :

Code related to this issue has just been checked in!
Author: AlexB
Location: trunk, r1020
Commit contains DLL: Yes
Revision comment:
Fixed issue #1422: TemporalImUsing is restored on the passenger when a Gunner unit is destroyed. Otherwise the passenger lost its Temporal which results in a crash when it tries to fire.
Related to issue #1500: Passengers/Pilots that couldn't be placed on the battlefield after a unit has been destroyed will be killed.
Related to issue #1539: High bridges are considered when calculating the height above ground. Infantry should not escape by parachute any more when a unit on a slope is destroyed.
SVN: http://svn.renegadeprojects.com/Ares/1020

Revision history for this message
FS-21 (jagarni1983) wrote :

With the r1020 I can't reproduce anymore your steps to produce the crash.
Thanks for fix it!

Revision history for this message
AlexB (alexander-b) wrote :

Thanks for going the great lenghts to identify the culprit! Closed.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.