Used strace for it. Would something else work better for you¿Geoff the Medio wrote:I don't know what I'm looking at in that .trace file... it doesn't look like the usual stack traces that people post when diagnosing crashes...
Crash [build 2016-01-09.e7887b8]
Moderator: Oberlus
Re: Crash [build 2016-01-09.e7887b8]
- Geoff the Medio
- Programming, Design, Admin
- Posts: 13587
- Joined: Wed Oct 08, 2003 1:33 am
- Location: Munich
Re: Crash [build 2016-01-09.e7887b8]
The stack traces I'm used to seeing look something likeAndrewW wrote:Would something else work better for you¿
Code: Select all
0 org.freeorion.FreeOrion 0x0053c9d2 GG::Wnd::UpperLeft() const + 24
1 org.freeorion.FreeOrion 0x0053ca11 GG::Wnd::Top() const + 17
2 org.freeorion.FreeOrion 0x004ffe02 std::_Rb_tree<std::_List_iterator<GG::ListBox::Row*>, std::_List_iterator<GG::ListBox::Row*>, std::_Identity<std::_List_iterator<GG::ListBox::Row*> >, GG::ListBox::RowPtrIteratorLess, std::allocator<std::_List_iterator<GG::ListBox::Row*> > >::lower_bound(std::_List_iterator<GG::ListBox::Row*> const&) + 42
3 org.freeorion.FreeOrion 0x004ffd09 std::_Rb_tree<std::_List_iterator<GG::ListBox::Row*>, std::_List_iterator<GG::ListBox::Row*>, std::_Identity<std::_List_iterator<GG::ListBox::Row*> >, GG::ListBox::RowPtrIteratorLess, std::allocator<std::_List_iterator<GG::ListBox::Row*> > >::erase(std::_List_iterator<GG::ListBox::Row*> const&) + 27
4 org.freeorion.FreeOrion 0x004f5cf2 GG::ListBox::Erase(std::_List_iterator<GG::ListBox::Row*>, bool, bool) + 274
5 org.freeorion.FreeOrion 0x004f5b9a GG::ListBox::ChildrenDraggedAway(std::vector<GG::Wnd*, std::allocator<GG::Wnd*> > const&, GG::Wnd const*) + 188
6 org.freeorion.FreeOrion 0x004d5baa GG::GUIImpl::HandleMouseButtonRelease(unsigned int, GG::Pt const&, int) + 948
7 org.freeorion.FreeOrion 0x004d8ced GG::GUI::HandleGGEvent(GG::GUI::EventType, GG::Key, unsigned int, GG::Flags<GG::ModKey>, GG::Pt const&, GG::Pt const&, std::string const*) + 463
8 org.freeorion.FreeOrion 0x005295db GG::SDLGUI::HandleSystemEvents() + 699
9 org.freeorion.FreeOrion 0x001d4c4c HumanClientApp::HandleSystemEvents() + 26
10 org.freeorion.FreeOrion 0x001d5a86 non-virtual thunk to HumanClientApp::HandleSystemEvents() + 22
11 org.freeorion.FreeOrion 0x004b36de GG::ModalEventPump::operator()() + 52
12 org.freeorion.FreeOrion 0x00529e04 GG::SDLGUI::Run() + 54
Re: Crash [build 2016-01-09.e7887b8]
From gdb:
Code: Select all
Program received signal SIGSEGV, Segmentation fault.
0x0000000041639b1a in ?? ()
(gdb) bt full
#0 0x0000000041639b1a in ?? ()
No symbol table info available.
#1 0x00007fed0e4af4b2 in ?? ()
from /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.340.65
No symbol table info available.
#2 0x00007fed0e0923a8 in ?? ()
from /usr/lib/x86_64-linux-gnu/libnvidia-glcore.so.340.65
No symbol table info available.
#3 0x0000000000531715 in CircleArc(GG::Pt const&, GG::Pt const&, double, double, bool) ()
No symbol table info available.
#4 0x000000000060dece in MapWnd::RenderSystems() ()
No symbol table info available.
#5 0x0000000000612eab in MapWnd::Render() ()
No symbol table info available.
#6 0x00007fed14c8e64c in GG::GUI::RenderWindow(GG::Wnd*) ()
from /home/andrew/Games/freeorion/libGiGi.so
No symbol table info available.
#7 0x00007fed14c8f045 in GG::GUI::Render() ()
from /home/andrew/Games/freeorion/libGiGi.so
No symbol table info available.
#8 0x00007fed14c5eff3 in GG::EventPumpBase::LoopBody(GG::GUI*, GG::EventPumpState&, bool, bool) () from /home/andrew/Games/freeorion/libGiGi.so
No symbol table info available.
#9 0x00007fed14c5f282 in GG::ModalEventPump::operator()() ()
from /home/andrew/Games/freeorion/libGiGi.so
No symbol table info available.
#10 0x00007fed149142c8 in GG::SDLGUI::Run() ()
from /home/andrew/Games/freeorion/libGiGiSDL.so
No symbol table info available.
#11 0x000000000047685e in mainSetupAndRun() ()
No symbol table info available.
#12 0x000000000043e5dc in main ()
No symbol table info available.
- Geoff the Medio
- Programming, Design, Admin
- Posts: 13587
- Joined: Wed Oct 08, 2003 1:33 am
- Location: Munich
Re: Crash [build 2016-01-09.e7887b8]
In FreeOrion/UI/CUIDrawUtil.cpp locate the CircleArc function on line 301. Add a line to the start to output some debug info:
Then recompile, run from a command line so you can see the output, then produce the crash, and report back the last couple output lines from that call.
Code: Select all
void CircleArc(const GG::Pt& ul, const GG::Pt& lr, double theta1, double theta2, bool filled_shape) {
std::cout << "CircleArc ul: " << ul << " lr: " << lr << " theta1: " << theta1 << " theta2: " << theta2 << " filled: " << filled_shape << std::flush << std::endl;
Re: Crash [build 2016-01-09.e7887b8]
Geoff the Medio wrote:Then recompile, run from a command line so you can see the output, then produce the crash, and report back the last couple output lines from that call.
Code: Select all
CircleArc ul: (1119, 260) lr: (1122, 263) theta1: 0 theta2: 6.28319 filled: 0
CircleArc ul: (1143, 260) lr: (1146, 263) theta1: 0 theta2: 6.28319 filled: 1
Segmentation fault
Re: Crash [build 2016-01-09.e7887b8]
Looks like a crash in the graphics driver...
Re: Crash [build 2016-01-09.e7887b8]
Hadn't changed anything on this end. Did go and update the system after the crashes started, though that didn't happen to include any updates for the Nvidia drivers.Vezzra wrote:Looks like a crash in the graphics driver...
Re: Crash [build 2016-01-09.e7887b8]
Hm, can you try to find out at which commit exactly those crashes start to happen? Because e7887b8 doesn't make much sense, that's just new graphics for the Basic Small Hull. The issue must have been introduced by some earlier commit...AndrewW wrote:Hadn't changed anything on this end. Did go and update the system after the crashes started, though that didn't happen to include any updates for the Nvidia drivers.
- Geoff the Medio
- Programming, Design, Admin
- Posts: 13587
- Joined: Wed Oct 08, 2003 1:33 am
- Location: Munich
Re: Crash [build 2016-01-09.e7887b8]
Could you include a few more preceeding lines?AndrewW wrote:Geoff the Medio wrote:Then recompile, run from a command line so you can see the output, then produce the crash, and report back the last couple output lines from that call.Code: Select all
CircleArc ul: (1119, 260) lr: (1122, 263) theta1: 0 theta2: 6.28319 filled: 0 CircleArc ul: (1143, 260) lr: (1146, 263) theta1: 0 theta2: 6.28319 filled: 1 Segmentation fault
Maybe try adding an early abort check if you can identify conditions like a small enough lr - ul difference with filled = 1 that are required to get a crash?
Re: Crash [build 2016-01-09.e7887b8]
No problem: (You did specify a couple initially)Geoff the Medio wrote:Could you include a few more preceeding lines?
Code: Select all
CircleArc ul: (1126, 253) lr: (1129, 256) theta1: 0 theta2: 6.28319 filled: 0
CircleArc ul: (1137, 264) lr: (1140, 267) theta1: 0 theta2: 6.28319 filled: 1
CircleArc ul: (1137, 264) lr: (1140, 267) theta1: 0 theta2: 6.28319 filled: 0
CircleArc ul: (1119, 260) lr: (1122, 263) theta1: 0 theta2: 6.28319 filled: 1
CircleArc ul: (1119, 260) lr: (1122, 263) theta1: 0 theta2: 6.28319 filled: 0
CircleArc ul: (1143, 260) lr: (1146, 263) theta1: 0 theta2: 6.28319 filled: 1
CircleArc ul: (1143, 260) lr: (1146, 263) theta1: 0 theta2: 6.28319 filled: 0
CircleArc ul: (1127, 259) lr: (1130, 262) theta1: 0 theta2: 6.28319 filled: 0
CircleArc ul: (1126, 253) lr: (1129, 256) theta1: 0 theta2: 6.28319 filled: 0
CircleArc ul: (1137, 264) lr: (1140, 267) theta1: 0 theta2: 6.28319 filled: 1
CircleArc ul: (1137, 264) lr: (1140, 267) theta1: 0 theta2: 6.28319 filled: 0
CircleArc ul: (1119, 260) lr: (1122, 263) theta1: 0 theta2: 6.28319 filled: 1
CircleArc ul: (1119, 260) lr: (1122, 263) theta1: 0 theta2: 6.28319 filled: 0
CircleArc ul: (1143, 260) lr: (1146, 263) theta1: 0 theta2: 6.28319 filled: 1
CircleArc ul: (1143, 260) lr: (1146, 263) theta1: 0 theta2: 6.28319 filled: 0
CircleArc ul: (1127, 259) lr: (1130, 262) theta1: 0 theta2: 6.28319 filled: 0
CircleArc ul: (1126, 253) lr: (1129, 256) theta1: 0 theta2: 6.28319 filled: 0
CircleArc ul: (1137, 264) lr: (1140, 267) theta1: 0 theta2: 6.28319 filled: 1
CircleArc ul: (1137, 264) lr: (1140, 267) theta1: 0 theta2: 6.28319 filled: 0
CircleArc ul: (1119, 260) lr: (1122, 263) theta1: 0 theta2: 6.28319 filled: 1
CircleArc ul: (1119, 260) lr: (1122, 263) theta1: 0 theta2: 6.28319 filled: 0
CircleArc ul: (1143, 260) lr: (1146, 263) theta1: 0 theta2: 6.28319 filled: 1
CircleArc ul: (1143, 260) lr: (1146, 263) theta1: 0 theta2: 6.28319 filled: 0
CircleArc ul: (1127, 259) lr: (1130, 262) theta1: 0 theta2: 6.28319 filled: 0
CircleArc ul: (1126, 253) lr: (1129, 256) theta1: 0 theta2: 6.28319 filled: 0
CircleArc ul: (1137, 264) lr: (1140, 267) theta1: 0 theta2: 6.28319 filled: 1
CircleArc ul: (1137, 264) lr: (1140, 267) theta1: 0 theta2: 6.28319 filled: 0
CircleArc ul: (1119, 260) lr: (1122, 263) theta1: 0 theta2: 6.28319 filled: 1
CircleArc ul: (1119, 260) lr: (1122, 263) theta1: 0 theta2: 6.28319 filled: 0
CircleArc ul: (1143, 260) lr: (1146, 263) theta1: 0 theta2: 6.28319 filled: 1
CircleArc ul: (1143, 260) lr: (1146, 263) theta1: 0 theta2: 6.28319 filled: 0
CircleArc ul: (1127, 259) lr: (1130, 262) theta1: 0 theta2: 6.28319 filled: 0
CircleArc ul: (1126, 253) lr: (1129, 256) theta1: 0 theta2: 6.28319 filled: 0
CircleArc ul: (1137, 264) lr: (1140, 267) theta1: 0 theta2: 6.28319 filled: 1
CircleArc ul: (1137, 264) lr: (1140, 267) theta1: 0 theta2: 6.28319 filled: 0
CircleArc ul: (1119, 260) lr: (1122, 263) theta1: 0 theta2: 6.28319 filled: 1
CircleArc ul: (1119, 260) lr: (1122, 263) theta1: 0 theta2: 6.28319 filled: 0
CircleArc ul: (1143, 260) lr: (1146, 263) theta1: 0 theta2: 6.28319 filled: 1
Segmentation fault
- Geoff the Medio
- Programming, Design, Admin
- Posts: 13587
- Joined: Wed Oct 08, 2003 1:33 am
- Location: Munich
Re: Crash [build 2016-01-09.e7887b8]
Looks like the crash doesn't just depend on the size of the circle being drawn either... plenty are the same 4x4 pixels.
You could try as I suggested above, and put an early abort at the start of the function that doesn't do the rendering if the box is that small, though. Might help? Not sure if it will make a noticable difference in the rendered map, so might be worth testing...
You could try as I suggested above, and put an early abort at the start of the function that doesn't do the rendering if the box is that small, though. Might help? Not sure if it will make a noticable difference in the rendered map, so might be worth testing...
Re: Crash [build 2016-01-09.e7887b8]
Willing to give it a try. What would be the code and where to put it?Geoff the Medio wrote:You could try as I suggested above, and put an early abort at the start of the function that doesn't do the rendering if the box is that small, though. Might help? Not sure if it will make a noticable difference in the rendered map, so might be worth testing...
- Geoff the Medio
- Programming, Design, Admin
- Posts: 13587
- Joined: Wed Oct 08, 2003 1:33 am
- Location: Munich
Re: Crash [build 2016-01-09.e7887b8]
Same place. Check if Value(ul.x - lr.x) < 5 || Value(ul.y - lr.y) < 5. If so, return.AndrewW wrote:What would be the code and where to put it?
Re: Crash [build 2016-01-09.e7887b8]
Ok, got back to this.
Did another system wide update (which included an update to the video driver this time around), tried again same problem. Built a new version [build 2016-01-23,39534a3], still has the same issue.
Can crash it if I simply zoom all the way out while it's Creating AI clients:
Did another system wide update (which included an update to the video driver this time around), tried again same problem. Built a new version [build 2016-01-23,39534a3], still has the same issue.
Can crash it if I simply zoom all the way out while it's Creating AI clients:
Code: Select all
FreeOrion server waiting for network events
CircleArc ul: (522, 381) lr: (525, 384) theta1: 0 theta2: 6.28319 filled: 1
Segmentation fault
Re: Crash [build 2016-01-09.e7887b8]
Andrew, have you been able to track down the commit introducing the issue? It might help narrowing down the cause if we now which changes triggered the problem...Vezzra wrote:Hm, can you try to find out at which commit exactly those crashes start to happen?