Opened 6 years ago
Closed 6 years ago
#5073 closed defect (fixed)
Segfault when destroying a Kush gate
Reported by: | elexis | Owned by: | Stan |
---|---|---|---|
Priority: | Release Blocker | Milestone: | Alpha 23 |
Component: | Core engine | Keywords: | |
Cc: | Patch: |
Description
fpre noticed in an SP match after the jebel barkal kushite wall commit that the game can segfault on that map.
When we played it in MP, all of us got a segfault.
`
(22:24:01) Dunedan: It crashed exactly at the time when my rams destroyed the first of gaias gates. Don't know if that's just a coincidence or not.
(22:27:34) smiley: wait, Dunedan i just crashed exactly when gate destroyed.
`
It is entirely reproducible to get a segfault by constructing a kushite gate and delecting it.
The segfault is not reproducible in nonvisual replay mode, so it is a graphics bug.
gdb reveals:
Thread 1 "pyrogenesis" received signal SIGSEGV, Segmentation fault. CObjectManager::FindObjectBase (this=0x2e34ba0, objectname=...) at ../../../source/graphics/ObjectManager.cpp:67 67 { (gdb) info stack #0 CObjectManager::FindObjectBase (this=0x2e34ba0, objectname=...) at ../../../source/graphics/ObjectManager.cpp:67 #1 0x0000000000832ef3 in CObjectBase::CalculateRandomRemainingSelections (this=this@entry=0x3161820, rng=..., initialSelections=std::vector of length 2, capacity 2 = {...}) at ../../../source/graphics/ObjectBase.cpp:598 #2 0x0000000000833134 in CObjectBase::CalculateRandomRemainingSelections (this=this@entry=0x315a2f0, rng=..., initialSelections=std::vector of length 2, capacity 2 = {...}) at ../../../source/graphics/ObjectBase.cpp:605 #3 0x0000000000833134 in CObjectBase::CalculateRandomRemainingSelections (this=this@entry=0x3161820, rng=..., initialSelections=std::vector of length 2, capacity 2 = {...}) at ../../../source/graphics/ObjectBase.cpp:605 ... at ../../../source/graphics/ObjectBase.cpp:605 #27 0x0000000000833134 in CObjectBase::CalculateRandomRemainingSelections (this=this@entry=0x3161820, rng=..., initialSelections=std::vector of length 2, capacity 2 = {...}) at ../../../source/graphics/ObjectBase.cpp:605 #28 0x0000000000833134 in CObjectBase::CalculateRandomRemainingSelections (this=this@entry=0x315a2f0, rng=..., initialSelections=std::vector of length 2, capacity 2 = {...}) at ../../../source/graphics/ObjectBase.cpp:605
So it most likely is an infinite loop.
Change History (2)
comment:1 by , 6 years ago
Owner: | set to |
---|
comment:2 by , 6 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Fixed in r21558 (rP21558)