Crash [build 2016-01-09.e7887b8]

Problems and solutions for installing or running FreeOrion, including discussion of bugs if needed before posting a bug report on GitHub. For problems building from source, post in Compile.

Moderator: Oberlus

Message
Author
AndrewW
Juggernaut
Posts: 791
Joined: Mon Feb 04, 2013 10:15 pm

Re: Crash [build 2016-01-09.e7887b8]

#31 Post by AndrewW »

Vezzra wrote: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...
Don't think it was a specific commit, since it was working ok then wasn't within the same commit (original one the problem showed up on). Hadn't ever seen the problem prior to the [build 2016-01-09.e7887b8] though.

User avatar
mem359
Dyson Forest
Posts: 214
Joined: Sun Jun 08, 2014 1:18 am

Re: Crash [build 2016-01-09.e7887b8]

#32 Post by mem359 »

I don't know if it is related, but I'm seeing problems with the Mac OSX builds, which seem to be GL driver related (based on the crash report).

After I open the "Options" window from the main menu, hitting "Done" causes the program to crash.

This does *not* happen for the version posted on Jan 05 (2016-01-05.bb0103d), but does happen for the version posted on Jan 12 (2016-01-11.609936e).

Edit: Also see crashes for the Jan 19 and Jan 26 test builds.
Last edited by mem359 on Thu Jan 28, 2016 4:07 am, edited 1 time in total.

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 12854
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Crash [build 2016-01-09.e7887b8]

#33 Post by Geoff the Medio »

mem359 wrote:After I open the "Options" window from the main menu, hitting "Done" causes the program to crash.
What are the last few lines of freeorion.log?

User avatar
mem359
Dyson Forest
Posts: 214
Joined: Sun Jun 08, 2014 1:18 am

Re: Crash [build 2016-01-09.e7887b8]

#34 Post by mem359 »

Geoff the Medio wrote:
mem359 wrote:After I open the "Options" window from the main menu, hitting "Done" causes the program to crash.
What are the last few lines of freeorion.log?
It is identical in both versions.

Code: Select all

2016-01-27 21:05:31.955716 [debug] Client : Limited FPS to 60
2016-01-27 21:05:31.956435 [debug] Client : OpenGL Version Number: 2.1
2016-01-27 21:05:31.956939 [debug] Client : (HumanClientFSM) IntroMenu
2016-01-27 21:05:31.956965 [debug] Client : HumanClientApp::KillServer()
2016-01-27 21:05:31.956981 [debug] Client : Process::Kill
2016-01-27 21:05:31.956993 [debug] Client : Process::Kill found no m_impl
2016-01-27 21:05:31.957004 [debug] Client : Process::Kill calling RequestTermination()
2016-01-27 21:05:31.957018 [debug] Client : ClientNetworking::SetPlayerID: player id set to: -1
2016-01-27 21:05:32.127284 [debug] Client : HumanClientApp::HandleFocusChange(Gained Focus)
Apparently, merely opening (and closing) the "Options" window does not write anything to freeorion.log.

To be clear, I am using the Mac test builds provided by Vezzra.
I am launching the program, clicking the "Options" button in the main menu, then clicking "Done" in the Options window. Nothing else. Did not change any of the settings, did not load or start any games.

The only reason why I thought this might be GL related is due to some of the messages in the CrashReporter.

Code: Select all

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x000000000000000c
Exception Note:        EXC_CORPSE_NOTIFY

VM Regions Near 0xc:
--> 
    __TEXT                 000000000008f000-0000000000851000 [ 7944K] r-x/rwx SM=COW  /Users/USER/*/FreeOrion.app/Contents/MacOS/FreeOrion

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.GeForceTeslaGLDriver	0x076b0e64 0x7395000 + 3260004
1   com.apple.GeForceTeslaGLDriver	0x079d984d 0x7395000 + 6572109
2   com.apple.GeForceTeslaGLDriver	0x079d7769 0x7395000 + 6563689
3   com.apple.GeForceTeslaGLDriver	0x076b1fc8 0x7395000 + 3264456
4   GLEngine                      	0x06dfea1b glDrawArrays_ACC_Exec + 442
5   libGL.dylib                   	0x94b1c933 glDrawArrays + 47
6   org.freeorion.FreeOrion       	0x001237eb CUIWnd::Render() + 263
7   org.freeorion.FreeOrion       	0x005387fb GG::GUI::RenderWindow(GG::Wnd*) + 53
8   org.freeorion.FreeOrion       	0x00538960 GG::GUI::RenderWindow(GG::Wnd*) + 410
9   org.freeorion.FreeOrion       	0x00538960 GG::GUI::RenderWindow(GG::Wnd*) + 410
10  org.freeorion.FreeOrion       	0x00538ffa GG::GUI::Render() + 148
11  org.freeorion.FreeOrion       	0x00510b91 GG::EventPumpBase::LoopBody(GG::GUI*, GG::EventPumpState&, bool, bool) + 409
12  org.freeorion.FreeOrion       	0x00510cdb GG::ModalEventPump::operator()() + 81
13  org.freeorion.FreeOrion       	0x00586e44 GG::SDLGUI::Run() + 54
14  org.freeorion.FreeOrion       	0x000c27a9 mainSetupAndRun() + 807

User avatar
Vezzra
Release Manager, Design
Posts: 5489
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Crash [build 2016-01-09.e7887b8]

#35 Post by Vezzra »

mem359 wrote:This does *not* happen for the version posted on Jan 05 (2016-01-05.bb0103d), but does happen for the version posted on Jan 12 (2016-01-11.609936e).

Edit: Also see crashes for the Jan 19 and Jan 26 test builds.
Ok, so essentially the last build that worked for you has been bb0103d, and the first that didn't 609936e. That means the change that introduced the issue must have happened between these two commits. The thing is, practically all commits between bb0103d and 609936e have been only changes to content (content scripts, stringtables, image files), there is actually only one commit with changes to the backend code: cd7cbf6. That one however looks like it could be the culprit.

I've produced a special test build that has the changes of cd7cbf6 reverted, here is the download link:

http://sourceforge.net/projects/freeori ... g/download

Please download and check if the issue turns up with this build, and report back. Just to be safe, make sure to delete config.xml and all log files before you run the special test build.

User avatar
mem359
Dyson Forest
Posts: 214
Joined: Sun Jun 08, 2014 1:18 am

Re: Crash [build 2016-01-09.e7887b8]

#36 Post by mem359 »

Vezzra wrote:
mem359 wrote:This does *not* happen for the version posted on Jan 05 (2016-01-05.bb0103d), but does happen for the version posted on Jan 12 (2016-01-11.609936e).

Edit: Also see crashes for the Jan 19 and Jan 26 test builds.
Ok, so essentially the last build that worked for you has been bb0103d, and the first that didn't 609936e. That means the change that introduced the issue must have happened between these two commits. The thing is, practically all commits between bb0103d and 609936e have been only changes to content (content scripts, stringtables, image files), there is actually only one commit with changes to the backend code: cd7cbf6. That one however looks like it could be the culprit.

I've produced a special test build that has the changes of cd7cbf6 reverted, here is the download link:

http://sourceforge.net/projects/freeori ... g/download

Please download and check if the issue turns up with this build, and report back. Just to be safe, make sure to delete config.xml and all log files before you run the special test build.
The special test build works.
I can open and close the Options window without the program crashing.

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 12854
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Crash [build 2016-01-09.e7887b8]

#37 Post by Geoff the Medio »

Vezzra wrote:That one however looks like it could be the culprit.
I don't know why that specifically would be a problem, as it uses the same set of state setting calls as numerous other places, and the posted call stack is not crashing within that function. Presumably it's actually crashing somewhere else, after the modified function is restoring the state to what it was before the call, instead of altering it as in the previous code...

Edit: Does an addition like this compile on OSX / Linux?

Code: Select all

--- "a/C:\\Users\\Geoff\\AppData\\Local\\Temp\\TortoiseGit\\GUIBE8.tmp\\GUI-f22cb9e-left.cpp"
+++ "b/C:\\Users\\Geoff\\Desktop\\FreeOrion_VS2013_SDK\\FreeOrion\\GG\\src\\GUI.cpp"
@@ -1476,10 +1476,17 @@ bool GUI::FocusWndDeselect()
 GUI* GUI::GetGUI()
 { return s_gui; }
 
+namespace {
+    template <class T>
+    void PrintType(T* t)
+    { std::cout << "RenderWndow wnd: " << typeid(*t).name() << std::endl; }
+}
+
 void GUI::RenderWindow(Wnd* wnd)
 {
     if (!wnd)
         return;
+    PrintType(wnd);
 
     if (wnd->Visible()) {
         wnd->Render();
If so, it would be useful to run with that when producing the crash, to perhaps get a record of the recently rendered windows, to have an idea where to look for problems setting / unsetting the rendering state.

User avatar
Vezzra
Release Manager, Design
Posts: 5489
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Crash [build 2016-01-09.e7887b8]

#38 Post by Vezzra »

Geoff the Medio wrote:I don't know why that specifically would be a problem, as it uses the same set of state setting calls as numerous other places, and the posted call stack is not crashing within that function. Presumably it's actually crashing somewhere else, after the modified function is restoring the state to what it was before the call, instead of altering it as in the previous code...
Yeah, I know, but fact is that with this commit reverted a test build works on mem359's system, while a test build after that commit crashes. That commit shouldn't cause this, yet it does, and I can't even speculate what's going on here... but since when do computer make sense...? ;)
Edit: Does an addition like this compile on OSX / Linux?
It does on OSX (didn't test on Linux). Made another special test build with that patch applied.

@mem359, can you download and run this test build like the other one? You will have to launch the freeorion executable from the command line though (because the debug output Geoff added is dumped to the console), do you know how to do this? We need the debug messages printed in the console window.

Download link: http://sourceforge.net/projects/freeori ... g/download

Something I noticed when I briefly reread this thread: both mem359 and Andrew apparently have nvidia cards, so I started to wonder if their issues might be related. @Andrew: I pushed the two branches I created to produce the two special test builds to my clone of the FO repo on github. "fix-mac-graphics-driver-crash" is the branch with commit cd7cbf6 reverted, "log-mac-graphics-driver-crash" is the branch with the patch (with the additional debug output) Geoff posted above applied. Can you pull and build the branch with the reverted commit and see if that fixes the issue on your system?

AndrewW
Juggernaut
Posts: 791
Joined: Mon Feb 04, 2013 10:15 pm

Re: Crash [build 2016-01-09.e7887b8]

#39 Post by AndrewW »

Vezzra wrote:Something I noticed when I briefly reread this thread: both mem359 and Andrew apparently have nvidia cards, so I started to wonder if their issues might be related. @Andrew: I pushed the two branches I created to produce the two special test builds to my clone of the FO repo on github. "fix-mac-graphics-driver-crash" is the branch with commit cd7cbf6 reverted, "log-mac-graphics-driver-crash" is the branch with the patch (with the additional debug output) Geoff posted above applied. Can you pull and build the branch with the reverted commit and see if that fixes the issue on your system?
Seems to have fixed the issue. And just to confirm, yes Nvidia GTX 660 in here.

User avatar
mem359
Dyson Forest
Posts: 214
Joined: Sun Jun 08, 2014 1:18 am

Re: Crash [build 2016-01-09.e7887b8]

#40 Post by mem359 »

Vezzra wrote:Something I noticed when I briefly reread this thread: both mem359 and Andrew apparently have nvidia cards, so I started to wonder if their issues might be related.
Nice catch. My laptop has the Nvidia GeForce GT 330M.
And you are probably right.
I found a program (gfxCardStatus) that gives limited control over the Mac graphics cards. I managed to start FreeOrion with the Intel integrated graphics being used. (The OS will switch to the Nvidia card when running FreeOrion, but I had a few seconds to monkey around before that happened.) I was able to open and close the Options window and exit *without* crashing. I switched back to the normal operation (using the discrete Nvidia card), and still got the Options-window crashing.
Vezzra wrote:@mem359, can you download and run this test build like the other one? You will have to launch the freeorion executable from the command line though (because the debug output Geoff added is dumped to the console), do you know how to do this? We need the debug messages printed in the console window.
I assume you just want the end of the log? (I notice that debug messages are generated in vast quantities even when the program is mostly idle. If you want the output from both the Nvidia and integrated graphics logs, I can post them here if needed.)

Code: Select all

RenderWndow wnd: N12_GLOBAL__N_114RowContentsWndE
RenderWndow wnd: N2GG6LayoutE
RenderWndow wnd: N2GG6LayoutE
RenderWndow wnd: 7CUISpinIdE
RenderWndow wnd: 7CUIEdit
RenderWndow wnd: 14CUIArrowButton
RenderWndow wnd: 14CUIArrowButton
RenderWndow wnd: 8CUILabel
RenderWndow wnd: N2GG7ListBox3RowE
RenderWndow wnd: N2GG6LayoutE
RenderWndow wnd: N12_GLOBAL__N_114RowContentsWndE
RenderWndow wnd: N2GG6LayoutE
RenderWndow wnd: 9CUIButton
RenderWndow wnd: 9CUIScroll
RenderWndow wnd: N9CUIScroll9ScrollTabE
RenderWndow wnd: 11IntroScreen
RenderWndow wnd: N2GG13StaticGraphicE
RenderWndow wnd: N2GG13StaticGraphicE
RenderWndow wnd: 6CUIWnd
Segmentation fault: 11
logout
Saving session...

User avatar
Vezzra
Release Manager, Design
Posts: 5489
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Crash [build 2016-01-09.e7887b8]

#41 Post by Vezzra »

AndrewW wrote:Seems to have fixed the issue. And just to confirm, yes Nvidia GTX 660 in here.
mem359 wrote:
Vezzra wrote:Something I noticed when I briefly reread this thread: both mem359 and Andrew apparently have nvidia cards, so I started to wonder if their issues might be related.
Nice catch. My laptop has the Nvidia GeForce GT 330M.
And you are probably right.
I found a program (gfxCardStatus) that gives limited control over the Mac graphics cards. I managed to start FreeOrion with the Intel integrated graphics being used. (The OS will switch to the Nvidia card when running FreeOrion, but I had a few seconds to monkey around before that happened.) I was able to open and close the Options window and exit *without* crashing. I switched back to the normal operation (using the discrete Nvidia card), and still got the Options-window crashing.
Very well, this seems to confirm my suspicions. Apparently there is some really weird glitch in Nvidias OpenGL drivers for OSX and Linux (at least for these cards) which, in conjunction with the changes of commit cd7cbf6, cause these elusive crashes.

@Geoff, as these cards aren't exactly exotic models, and these issues that seem related occur on different platforms, I think we should revert that commit for the time being, until you can get around to try to fix whatever strange thing is going on here - is that ok? Or do you foresee some potential problems when we do this revert?
I assume you just want the end of the log?
Yep, I guess that fine. If I understand correctly, Geoff wanted to narrow down where exactly the crash occurs, for that it should be sufficient - Geoff?

User avatar
Vezzra
Release Manager, Design
Posts: 5489
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Crash [build 2016-01-09.e7887b8]

#42 Post by Vezzra »

Vezzra wrote:@Geoff, as these cards aren't exactly exotic models, and these issues that seem related occur on different platforms, I think we should revert that commit for the time being, until you can get around to try to fix whatever strange thing is going on here - is that ok? Or do you foresee some potential problems when we do this revert?
I assume you just want the end of the log?
Yep, I guess that fine. If I understand correctly, Geoff wanted to narrow down where exactly the crash occurs, for that it should be sufficient - Geoff?
Bump? Or are you already on it...?

AndrewW
Juggernaut
Posts: 791
Joined: Mon Feb 04, 2013 10:15 pm

Re: Crash [build 2016-01-09.e7887b8]

#43 Post by AndrewW »

Vezzra wrote:Bump? Or are you already on it...?
Well, I can confirm it still occurs with [build 2016-02-06.0731e53].

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 12854
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Crash [build 2016-01-09.e7887b8]

#44 Post by Geoff the Medio »

Just do as you think is best and don't wait for my permission... or at least don't want more than a couple days.

User avatar
Vezzra
Release Manager, Design
Posts: 5489
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Crash [build 2016-01-09.e7887b8]

#45 Post by Vezzra »

Geoff the Medio wrote:Just do as you think is best and don't wait for my permission... or at least don't want more than a couple days.
Okay... I just didn't want to revert some code of which I don't really know what it's doing without checking back first. :)

Post Reply