View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
---|---|---|---|---|---|---|---|---|---|
0004078 | Spring engine | General | public | 2013-10-23 19:02 | 2013-10-23 20:11 | ||||
Reporter | abma | ||||||||
Assigned To | Kloot | ||||||||
Priority | normal | Severity | major | Reproducibility | have not tried | ||||
Status | resolved | Resolution | fixed | ||||||
Product Version | 94.1.1+git | ||||||||
Target Version | 95.0 | Fixed in Version | |||||||
Summary | 0004078: SIGFPE on zoom-in/out | ||||||||
Description | got an SIGFPE when zooming in... | ||||||||
Additional Information | [f=0004232] Error: Floating point exception (SIGFPE) in spring 94.1.1-1410-gfed2e04 develop (Debug) [f=0004232] Error: Stacktrace: [f=0004232] Error: <0> /lib/x86_64-linux-gnu/libpthread.so.0(+0xfbb0) [0x7fc35fea3bb0] [f=0004232] Error: <1> /home/abma/dev/spring/develop/rts/System/FastMath.h:284 (discriminator 1) [f=0004232] Error: <2> /home/abma/dev/spring/develop/rts/Game/TraceRay.cpp:295 (discriminator 1) [f=0004232] Error: <3> /home/abma/dev/spring/develop/rts/Rendering/Env/ISky.cpp:94 [f=0004232] Error: <4> /home/abma/dev/spring/develop/rts/Rendering/Env/AdvSky.cpp:547 [f=0004232] Error: <5> /usr/include/c++/4.8/bits/stl_tree.h:1346 [f=0004232] Error: <6> /home/abma/dev/spring/develop/rts/Game/Game.cpp:1261 [f=0004232] Error: <7> /home/abma/dev/spring/develop/rts/Map/SMF/ROAM/Patch.h:98 (discriminator 1) [f=0004232] Error: <8> /usr/include/c++/4.8/bits/stl_vector.h:317 [f=0004232] Error: <9> /usr/include/c++/4.8/bits/basic_string.tcc:658 [f=0004232] Error: <10> /usr/include/c++/4.8/bits/allocator.h:119 [f=0004232] Error: <11> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7fc35ca4bde5] [f=0004232] Error: <12> ??:? | ||||||||
Tags | No tags attached. | ||||||||
Checked infolog.txt for Errors | |||||||||
Attached Files |
|
![]() |
|
abma (administrator) 2013-10-23 19:03 |
seems to be reproduceable when zooming max out and then zooming very fast in while holding CTRL + SHIFT. |
abma (administrator) 2013-10-23 19:05 |
(gdb) bt full #0 0x00000000005b5db1 in fastmath::floor<float> (f=@0x7fffffffdbb0: 2,2999616e+09) at rts/System/FastMath.h:284 No locals. #1 0x00000000006148a9 in TraceRay::GuiTraceRay (start=..., dir=..., length=55199,0781, exclude=0x0, hitUnit=@0x7fffffffdc60: 0x0, hitFeature=@0x7fffffffdc68: 0x0, useRadar=false, groundOnly=true, ignoreWater=false) at rts/Game/TraceRay.cpp:295 minEgressDist = 4,59163468e-41 begQuad = 0x1bba350 endQuad = 0x7fffebfe6fe0 <typeinfo for exec_node> fi = {_M_node = 0x1d08210} guiRayLength = 55199,0781 groundRayLength = -1 waterRayLength = 0 minIngressDist = -8,44844719e+26 minRayLength = 0 hitFactory = false cq = {b0 = 0, b1 = 1, t0 = 5,42789485e-38, t1 = 0, p0 = {static binder = { class_ = 0x19d18c0, base = 0x0, flags = creg::CF_None, memberRegistrator = 0x193c4c0 <float3::memberRegistrator>, name = 0x127c60e "float3", size = 12, alignment = 4, hasVTable = false, constructor = 0xcb108a <float3::_ConstructInstance(void*)>, destructor = 0xcb10b6 <float3::_DestructInstance(void*)>, nextBinder = 0x193c440 <type2<float>::binder>}, static memberRegistrator = 0x193c5a8 <float3mreg>, static hasVTable = false, static CMP_EPS = 9,99999975e-05, ---Type <return> to continue, or q <return> to quit--- static NORMALIZE_EPS = 9,99999996e-13, static maxxpos = 19455, static maxzpos = 9215, { {x = -nan(0x7fdbb0), y = 4,59163468e-41, z = 8,02330391e-39}, {r = -nan(0x7fdbb0), g = 4,59163468e-41, b = 8,02330391e-39}, {x1 = -nan(0x7fdbb0), y1 = 4,59163468e-41, x2 = 8,02330391e-39}, {s = -nan(0x7fdbb0), t = 4,59163468e-41, p = 8,02330391e-39}, {xstart = -nan(0x7fdbb0), ystart = 4,59163468e-41, xend = 8,02330391e-39}}}, p1 = {static binder = { class_ = 0x19d18c0, base = 0x0, flags = creg::CF_None, memberRegistrator = 0x193c4c0 <float3::memberRegistrator>, name = 0x127c60e "float3", size = 12, alignment = 4, hasVTable = false, constructor = 0xcb108a <float3::_ConstructInstance(void*)>, destructor = 0xcb10b6 <float3::_DestructInstance(void*)>, nextBinder = 0x193c440 <type2<float>::binder>}, static memberRegistrator = 0x193c5a8 <float3mreg>, static hasVTable = false, static CMP_EPS = 9,99999975e-05, static NORMALIZE_EPS = 9,99999996e-13, static maxxpos = 19455, static maxzpos = 9215, {{x = 0, y = 2,22463597e-36, z = 0}, { r = 0, g = 2,22463597e-36, b = 0}, {x1 = 0, y1 = 2,22463597e-36, x2 = 0}, {s = 0, t = 2,22463597e-36, p = 0}, {xstart = 0, ystart = 2,22463597e-36, xend = 0}}}, lmp = 0x4283590} ui = {_M_node = 0x1bbb300} #2 0x00000000008ad42e in ISky::SunVisible (this=0x4e54210, pos=...) at rts/Rendering/Env/ISky.cpp:94 hitUnit = 0x0 hitFeature = 0x0 sunDir = {static binder = {class_ = 0x19d18c0, base = 0x0, flags = creg::CF_None, ---Type <return> to continue, or q <return> to quit--- memberRegistrator = 0x193c4c0 <float3::memberRegistrator>, name = 0x127c60e "float3", size = 12, alignment = 4, hasVTable = false, constructor = 0xcb108a <float3::_ConstructInstance(void*)>, destructor = 0xcb10b6 <float3::_DestructInstance(void*)>, nextBinder = 0x193c440 <type2<float>::binder>}, static memberRegistrator = 0x193c5a8 <float3mreg>, static hasVTable = false, static CMP_EPS = 9,99999975e-05, static NORMALIZE_EPS = 9,99999996e-13, static maxxpos = 19455, static maxzpos = 9215, {{x = 0,577349603, y = 0,577349603, z = 0,577349603}, {r = 0,577349603, g = 0,577349603, b = 0,577349603}, { x1 = 0,577349603, y1 = 0,577349603, x2 = 0,577349603}, {s = 0,577349603, t = 0,577349603, p = 0,577349603}, {xstart = 0,577349603, ystart = 0,577349603, xend = 0,577349603}}} sunDist = 0 0000003 0x0000000000893127 in CAdvSky::DrawSun (this=0x4e54210) at rts/Rendering/Env/AdvSky.cpp:547 modSunColor = {static binder = {class_ = 0x19d18c0, base = 0x0, flags = creg::CF_None, memberRegistrator = 0x193c4c0 <float3::memberRegistrator>, name = 0x127c60e "float3", size = 12, alignment = 4, hasVTable = false, constructor = 0xcb108a <float3::_ConstructInstance(void*)>, destructor = 0xcb10b6 <float3::_DestructInstance(void*)>, nextBinder = 0x193c440 <type2<float>::binder>}, static memberRegistrator = 0x193c5a8 <float3mreg>, static hasVTable = false, static CMP_EPS = 9,99999975e-05, static NORMALIZE_EPS = 9,99999996e-13, static maxxpos = 19455, static maxzpos = 9215, {{x = 0,800000012, y = 0, z = -nan(0x7fe450)}, {r = 0,800000012, g = 0, b = -nan(0x7fe450)}, { ---Type <return> to continue, or q <return> to quit--- x1 = 0,800000012, y1 = 0, x2 = -nan(0x7fe450)}, {s = 0,800000012, t = 0, p = -nan(0x7fe450)}, {xstart = 0,800000012, ystart = 0, xend = -nan(0x7fe450)}}} ffy = -nan(0x7fdde0) cvs0 = 0x43d4048 bf1 = 0x400000000 <Address 0x400000000 out of bounds> xzSunCameraPos = {static binder = {class_ = 0x19d18c0, base = 0x0, flags = creg::CF_None, memberRegistrator = 0x193c4c0 <float3::memberRegistrator>, name = 0x127c60e "float3", size = 12, alignment = 4, hasVTable = false, constructor = 0xcb108a <float3::_ConstructInstance(void*)>, destructor = 0xcb10b6 <float3::_DestructInstance(void*)>, nextBinder = 0x193c440 <type2<float>::binder>}, static memberRegistrator = 0x193c5a8 <float3mreg>, static hasVTable = false, static CMP_EPS = 9,99999975e-05, static NORMALIZE_EPS = 9,99999996e-13, static maxxpos = 19455, static maxzpos = 9215, {{x = 205044320, y = 2,21886928e-27, z = 2,31146572e-36}, {r = 205044320, g = 2,21886928e-27, b = 2,31146572e-36}, { x1 = 205044320, y1 = 2,21886928e-27, x2 = 2,31146572e-36}, {s = 205044320, t = 2,21886928e-27, p = 2,31146572e-36}, {xstart = 205044320, ystart = 2,21886928e-27, xend = 2,31146572e-36}}} ymod = 5,42789485e-38 baseX = 32767 cvs1 = 0xf5750 bf2 = 0x7fffffffddd0 "}\t" buf = '\000' <repeats 55 times>, "\003", '\000' <repeats 31 times>, "\002", '\000' <repeats 39 times> ---Type <return> to continue, or q <return> to quit--- fx = 5,42789037e-38 cvs2 = 0x7fffffffdd60 fy = 0 ffx = 0 baseY = -8944 cvs3 = 0xcaaedc <ScopedTimer::~ScopedTimer()+160> mid = 0 0000004 0x00000000009b94a1 in CWorldDrawer::Draw (this=0x5fe2b10) at rts/Rendering/WorldDrawer.cpp:210 myScopedTimerFromMakro = {<BasicTimer> = {<boost::noncopyable_::noncopyable> = {<No data fields>}, hash = 1783, starttime = {static binder = {class_ = 0x19d1c40, base = 0x0, flags = creg::CF_None, memberRegistrator = 0x19396e0 <spring_time::memberRegistrator>, name = 0x126c51b "spring_time", size = 8, alignment = 8, hasVTable = false, constructor = 0xc5564c <spring_time::_ConstructInstance(void*)>, destructor = 0xc55678 <spring_time::_DestructInstance(void*)>, nextBinder = 0x1939600 <CRectangleOptimizer::binder>}, static memberRegistrator = 0x1939770 <spring_timemreg>, static hasVTable = false, x = 1382547929466200032, static xs = 1382547891744125066}, nameIterator = { _M_node = 0x4247cd0}}, autoShowGraph = false, it = {_M_node = 0x3be6130}} gd = 0x7efcce0 plane_below = {0, -1, 0, 0} plane_above = {0, 1, 0, 0} 0000005 0x000000000059b22a in CGame::Draw (this=0x21dbf60) at rts/Game/Game.cpp:1261 currentTimePreUpdate = {static binder = {class_ = 0x19d1c40, base = 0x0, ---Type <return> to continue, or q <return> to quit--- flags = creg::CF_None, memberRegistrator = 0x19396e0 <spring_time::memberRegistrator>, name = 0x126c51b "spring_time", size = 8, alignment = 8, hasVTable = false, constructor = 0xc5564c <spring_time::_ConstructInstance(void*)>, destructor = 0xc55678 <spring_time::_DestructInstance(void*)>, nextBinder = 0x1939600 <CRectangleOptimizer::binder>}, static memberRegistrator = 0x1939770 <spring_timemreg>, static hasVTable = false, x = 1382547929463889985, static xs = 1382547891744125066} doDrawWorld = true __PRETTY_FUNCTION__ = "virtual bool CGame::Draw()" currentTimePreDraw = {static binder = {class_ = 0x19d1c40, base = 0x0, flags = creg::CF_None, memberRegistrator = 0x19396e0 <spring_time::memberRegistrator>, name = 0x126c51b "spring_time", size = 8, alignment = 8, hasVTable = false, constructor = 0xc5564c <spring_time::_ConstructInstance(void*)>, destructor = 0xc55678 <spring_time::_DestructInstance(void*)>, nextBinder = 0x1939600 <CRectangleOptimizer::binder>}, static memberRegistrator = 0x1939770 <spring_timemreg>, static hasVTable = false, x = 1382547929464444330, static xs = 1382547891744125066} myScopedTimerFromMakro = {<BasicTimer> = {<boost::noncopyable_::noncopyable> = {<No data fields>}, hash = 26460840, starttime = {static binder = {class_ = 0x19d1c40, base = 0x0, flags = creg::CF_None, memberRegistrator = 0x19396e0 <spring_time::memberRegistrator>, name = 0x126c51b "spring_time", size = 8, alignment = 8, hasVTable = false, constructor = 0xc5564c <spring_time::_ConstructInstance(void*)>, destructor = 0xc55678 <spring_time::_DestructInstance(void*)>, ---Type <return> to continue, or q <return> to quit--- nextBinder = 0x1939600 <CRectangleOptimizer::binder>}, static memberRegistrator = 0x1939770 <spring_timemreg>, static hasVTable = false, x = 140737488347264, static xs = 1382547891744125066}, nameIterator = { _M_node = 0x7fffffffe090}}, autoShowGraph = 217, it = {_M_node = 0x193c2a8 <refs+8>}} currentTimePostDraw = {static binder = {class_ = 0x19d1c40, base = 0x0, flags = creg::CF_None, memberRegistrator = 0x19396e0 <spring_time::memberRegistrator>, name = 0x126c51b "spring_time", size = 8, alignment = 8, hasVTable = false, constructor = 0xc5564c <spring_time::_ConstructInstance(void*)>, destructor = 0xc55678 <spring_time::_DestructInstance(void*)>, nextBinder = 0x1939600 <CRectangleOptimizer::binder>}, static memberRegistrator = 0x1939770 <spring_timemreg>, static hasVTable = false, x = 140737488347032, static xs = 1382547891744125066} #6 0x0000000000c7d19d in SpringApp::Update (this=0x7fffffffe280) at rts/System/SpringApp.cpp:964 cputimer = {<BasicTimer> = {<boost::noncopyable_::noncopyable> = {<No data fields>}, hash = 1972, starttime = {static binder = {class_ = 0x19d1c40, base = 0x0, flags = creg::CF_None, memberRegistrator = 0x19396e0 <spring_time::memberRegistrator>, name = 0x126c51b "spring_time", size = 8, alignment = 8, hasVTable = false, constructor = 0xc5564c <spring_time::_ConstructInstance(void*)>, destructor = 0xc55678 <spring_time::_DestructInstance(void*)>, nextBinder = 0x1939600 <CRectangleOptimizer::binder>}, static memberRegistrator = 0x1939770 <spring_timemreg>, static hasVTable = false, x = 1382547929463887177, static xs = 1382547891744125066}, nameIterator = { _M_node = 0x1e8b520}}, autoShowGraph = false, it = {_M_node = 0x1e8a480}} ---Type <return> to continue, or q <return> to quit--- ret = 1 #7 0x0000000000c7d3f8 in SpringApp::Run (this=0x7fffffffe280) at rts/System/SpringApp.cpp:1041 No locals. #8 0x0000000000c4db1a in Run (argc=1, argv=0x7fffffffe458) at rts/System/Main.cpp:64 app = {cmdline = 0x19bd3e0} ret = -1 err = 0x19bcba0 #9 0x0000000000c4e209 in main (argc=1, argv=0x7fffffffe458) at rts/System/Main.cpp:123 restart = false |
abma (administrator) 2013-10-23 19:08 |
holding CTRL only leads to SIGFPE as well, but when holding SHIFT+CTRL its easier to get the SIGFPE... |
Kloot (developer) 2013-10-23 19:29 Last edited: 2013-10-23 19:30 |
cq = {... p0 = ... {x = -nan(0x7fdbb0) ... } What camera mode(s) trigger(s) this and on what map(s)? Does it happen when zooming in extremely close to units or features or also when there is only empty ground? Seems there are a few unrelated NaN sources as well: modSunColor = { ... z = -nan(0x7fe450)} ffy = -nan(0x7fdde0) // fy - math::floor(fy) |
abma (administrator) 2013-10-23 19:44 |
Overhead (TA) style camera, didn't test others yet. not sure if a unit in view affects it, seems to crash with and without in view, but didn't crash when zoomed very closely to map. |
abma (administrator) 2013-10-23 19:45 |
(crash = SIGFPE this time) |
Kloot (developer) 2013-10-23 19:46 Last edited: 2013-10-23 19:47 |
what map(s)? |
abma (administrator) 2013-10-23 19:49 |
Using map: Altored_Earth |
abma (administrator) 2013-10-23 19:52 |
no SIGFPE's on other (smaller) maps it seems |
Kloot (developer) 2013-10-23 19:55 |
Can't reproduce here on that map, maybe zoom-speed isn't high enough. Also, for me pressing CTRL with overhead camera controls the viewing angle, it does not affect speed. |
abma (administrator) 2013-10-23 19:58 |
oops, yes CTRL changes view angel for me too. wasn't clear as in the first tries it instantly SIGFPE'd. SHIFT speeds changing view angel a little up for me. i'm using a debug build, so maybe this gives the needed slowdown to reproduce this. |
Kloot (developer) 2013-10-23 20:07 Last edited: 2013-10-23 20:10 |
Ah, this line const float waterRayLength = math::floor(math::fabs(start.y / std::min(dir.y, -0.00001f))) generates an FPE when start.y = 21481.2246f (possible only on larger maps) dir.y = 0.577349603f since floor(abs(21481.2246f / min(0.577349603f, -0.00001f))) == floor(abs(21481.2246f / -0.00001f)) == floor(abs(-2e+09)) == floor(2e+09) == 10752 (!) causes an overflow during float to int conversion. |
![]() |
|||
Date Modified | Username | Field | Change |
---|---|---|---|
2013-10-23 19:02 | abma | New Issue | |
2013-10-23 19:03 | abma | Note Added: 0011828 | |
2013-10-23 19:05 | abma | Note Added: 0011829 | |
2013-10-23 19:08 | abma | Note Added: 0011830 | |
2013-10-23 19:29 | Kloot | Note Added: 0011831 | |
2013-10-23 19:30 | Kloot | Note Edited: 0011831 | View Revisions |
2013-10-23 19:44 | abma | Note Added: 0011832 | |
2013-10-23 19:45 | abma | Note Added: 0011833 | |
2013-10-23 19:46 | Kloot | Note Added: 0011834 | |
2013-10-23 19:47 | Kloot | Note Edited: 0011834 | View Revisions |
2013-10-23 19:48 | abma | File Added: infolog.txt | |
2013-10-23 19:49 | abma | Note Added: 0011835 | |
2013-10-23 19:52 | abma | Note Added: 0011836 | |
2013-10-23 19:55 | Kloot | Note Added: 0011837 | |
2013-10-23 19:58 | abma | Note Added: 0011838 | |
2013-10-23 20:07 | Kloot | Note Added: 0011839 | |
2013-10-23 20:08 | Kloot | Note Edited: 0011839 | View Revisions |
2013-10-23 20:10 | Kloot | Note Edited: 0011839 | View Revisions |
2013-10-23 20:11 | Kloot | Changeset attached | => spring develop e8326232 |
2013-10-23 20:11 | Kloot | Assigned To | => Kloot |
2013-10-23 20:11 | Kloot | Status | new => resolved |
2013-10-23 20:11 | Kloot | Resolution | open => fixed |