• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.

bucaneer

Major
36 Badges
Jun 20, 2011
501
1
  • Crusader Kings II
  • Victoria 2: Heart of Darkness
  • Victoria 2: A House Divided
  • Magicka
  • Hearts of Iron III
  • Europa Universalis IV
  • Europa Universalis III: Chronicles
  • 500k Club
  • Europa Universalis IV: Golden Century
  • Shadowrun Returns
  • Europa Universalis IV: Dharma
  • Europa Universalis IV: Rule Britannia
  • Europa Universalis IV: Cradle of Civilization
  • Europa Universalis IV: Third Rome
  • Europa Universalis IV: Mandate of Heaven
  • Europa Universalis IV: Rights of Man
  • Europa Universalis IV: Mare Nostrum
  • Europa Universalis IV: Cossacks
  • Europa Universalis IV: Common Sense
  • Pillars of Eternity
  • Europa Universalis IV: Pre-order
  • Europa Universalis IV: El Dorado
  • Warlock: Master of the Arcane
  • Cities in Motion
  • Crusader Kings II: Legacy of Rome
  • Victoria 2
  • Teleglitch: Die More Edition
  • Sengoku
  • Europa Universalis IV: Res Publica
  • March of the Eagles
  • Crusader Kings II: The Old Gods
  • Leviathan: Warships
  • Crusader Kings II: The Republic
  • Europa Universalis IV: Wealth of Nations
  • Europa Universalis IV: Art of War
  • Crusader Kings II: Sword of Islam
I've experienced three CTDs in a short play session - one happened when closing the Factions tab, another when switching from Factions to Intrigue, and the third when opening Character tab. There is no terminal output and the only thing that seems sort of relevant to the crashes in game logs is this repeated line from error.log:
Code:
[/var/lib/jenkins/jenkins-tmp/jenkins-tmp/workspace/CK2-Release-Linux/clausewitzII/clausewitzlib/sound.cpp:232]: Sound factions_view not found.
Although it appeared in the log when the crash occurred while opening Character tab as well, so I'd doubt that's the cause.

Systemd managed to catch the core dumps of all crashes - I've uploaded the first one here and can do the same for the others if it is at all useful.

I'm using Arch Linux 64bit, 3.3.7-ck kernel, nVidia GTX 650 Ti graphics card with 310.19 drivers.
 
As far as I'm aware, both the Steam Linux client and the CK2 Linux edition have not formally been released as yet. Are you finding otherwise?
 
As far as I'm aware, both the Steam Linux client and the CK2 Linux edition have not formally been released as yet. Are you finding otherwise?

Steam for Linux was officially released some weeks ago, and CK2 was today.

I can also reproduce this on 64-bit Arch Linux, kernel3.6.11 with a Nvidia GTX 550 Ti and 310.19 drivers.
 
Tegus:

If you add a signal handler to SIGSEGV, you can obtain stacktrace for all of these crashes, instead of trying to dig through things yourself.

#ifndef WIN32
/* This is for obtaining a stacktrace */
void traphandler(int sig)
{
void *array[50];
size_t size;

/* get void*'s for all entries on the stack */
size = backtrace(array, 50);

/* print out all the frames to stderr */
fprintf(stderr, "Error: signal %d:\n", sig);
backtrace_symbols_fd(array, size, 2);
exit(1);
}
#endif

Install the signal handler using (preferably early in main):
#ifndef WIN32
/* Install signal handler */
signal(SIGSEGV, traphandler);
#endif

Note, there are some caveats doing this, check the backtrace_symbols_fd/backtrace man page for details.
 
I also have this problem with segfault semi-randomly when clicking one of the icons in the top left corner. Sometimes it happens in the beginning of the game and some times I can play for a while, but it's always when I click one of those buttons. Here's a backtrace:

#0 0x08d12bd1 in Mix_FadeOutChannel ()
#1 0x08a5eb18 in CPdxSound::Fadeout(int) ()
#2 0x0871777e in CFactionsView::Hide() ()
#3 0x0864cd4e in CInGameIdler::OpenViewEarly(ViewState, bool) ()
#4 0x0862bde8 in CInGameIdler::OpenPlotsView(bool, bool) ()
#5 0x08625060 in CInGameIdler::ViewPlots() ()
#6 0x0865d451 in CButtonObserverGlue<CInGameIdler>::OnClick() ()
#7 0x08a7e7bc in CButtonObservable::NotifyClicked() ()
#8 0x08a7e965 in CButton::processInput(CInputEvent&, CMouse*) ()
#9 0x08b09b64 in CCollisionObject::processInput(CInputEvent&, CMouse*) ()
#10 0x08ab4204 in CGui::HandelInput(CMouse*, CKeyBoard*, CList<CInputEvent>&)
()
#11 0x086364d3 in CInGameIdler::Idle(bool) ()
#12 0x08a0ac70 in CApplication::UpdateOneFrame(bool) ()
#13 0x08a0ad4e in CApplication::Run() ()
#14 0x0874c402 in main ()


When a tutorial crashes I get the following backtrace:

#0 0xf7c2e6b6 in ?? () from /lib/i386-linux-gnu/libc.so.6
#1 0xf7e5201b in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) ()
from /usr/lib/i386-linux-gnu/libstdc++.so.6
#2 0x08dbcd55 in CString::CString(char const*) ()
#3 0x0864ce08 in CInGameIdler::OpenViewLate(ViewState, bool) ()
#4 0x0862bd73 in CInGameIdler::OpenRealmView(CLandedTitle*, bool, bool) ()
#5 0x0860f34d in CEU3Gui::OnTitleShieldClick(CGuiObject*) ()
#6 0x0861309f in CButtonObserverGlue<CEU3Gui>::OnClick(CGuiObject*) ()
#7 0x08a7eb58 in CButtonObservable::NotifyClicked(CGuiObject*) ()
#8 0x08a7e971 in CButton::processInput(CInputEvent&, CMouse*) ()
#9 0x08b09b64 in CCollisionObject::processInput(CInputEvent&, CMouse*) ()
#10 0x08ab4204 in CGui::HandelInput(CMouse*, CKeyBoard*, CList<CInputEvent>&)
()
#11 0x086364d3 in CInGameIdler::Idle(bool) ()
#12 0x08a0ac70 in CApplication::UpdateOneFrame(bool) ()
#13 0x08a0ad4e in CApplication::Run() ()
#14 0x0874c402 in main ()

It's 100% repeatable, for example by running the first tutorial and clicking the shield to open realm view when instructed to.

Hoping it will be fixed soon, because CK2 seems awesome :)

Xubuntu 12.10, x86_64, 3.5.0-21-generic. Nvidia 310.14 on a GTX 660 Ti.
 
Here's a bit more info. The fact that two threads are doing audio stuff concurrently tingles my spidey sense. Also, those registers are pointed nowhere (beyond the heap). It's not clear to me why the add instruction is there. Note that I was opening a different view than the previous backtrace. Hope this helps.

Code:
(gdb) bt
#0  0x08d12bd1 in Mix_FadeOutChannel ()
#1  0x08a5eb18 in CPdxSound::Fadeout(int) ()
#2  0x08a07207 in CRepublicView::Hide() ()
#3  0x0864cd4e in CInGameIdler::OpenViewEarly(ViewState, bool) ()
#4  0x0862b585 in CInGameIdler::OpenDynasticView(CCharacter*, bool, bool) ()
#5  0x0865adce in CInGameIdler::OpenCharacterLeftClick(CGuiObject*) ()
#6  0x0865d9bd in CButtonObserverGlue<CEU3Idler>::OnClick(CGuiObject*) ()
#7  0x08a7eb58 in CButtonObservable::NotifyClicked(CGuiObject*) ()
#8  0x08a7e971 in CButton::ProcessInput(CInputEvent&, CMouse*) ()
#9  0x08b09b64 in CCollisionObject::ProcessInput(CInputEvent&, CMouse*) ()
#10 0x08ab4204 in CGui::HandelInput(CMouse*, CKeyBoard*, CList<CInputEvent>&) ()
#11 0x086364d3 in CInGameIdler::Idle(bool) ()
#12 0x08a0ac70 in CApplication::UpdateOneFrame(bool) ()
#13 0x08a0ad4e in CApplication::Run() ()
#14 0x0874c402 in main ()
(gdb) info threads
  Id   Target Id         Frame 
  5    Thread 0xecce9b40 (LWP 16785) "ck2" 0xf7fdb425 in __kernel_vsyscall ()
  4    Thread 0xeceeab40 (LWP 16783) "ck2" 0xf7fdb425 in __kernel_vsyscall ()
  3    Thread 0xef0b6b40 (LWP 16782) "ck2" 0xf7fdb425 in __kernel_vsyscall ()
  2    Thread 0xf11d7b40 (LWP 16696) "SDLAudioDev1" 0xf7fdb425 in __kernel_vsyscall ()
* 1    Thread 0xf5cfa700 (LWP 16688) "ck2" 0x08d12bd1 in Mix_FadeOutChannel ()
(gdb) thread 2
[Switching to thread 2 (Thread 0xf11d7b40 (LWP 16696))]
#0  0xf7fdb425 in __kernel_vsyscall ()
(gdb) bt
#0  0xf7fdb425 in __kernel_vsyscall ()
#1  0xf7c80710 in ppoll () from /lib/i386-linux-gnu/libc.so.6
#2  0xf5531f0b in pa_mainloop_poll () from /usr/lib/i386-linux-gnu/libpulse.so.0
#3  0xf55326c9 in pa_mainloop_iterate () from /usr/lib/i386-linux-gnu/libpulse.so.0
#4  0x08d4981f in PULSEAUDIO_WaitDevice ()
#5  0x08d1f8a4 in SDL_RunAudio ()
#6  0x08d403f7 in SDL_RunThread ()
#7  0x08d4d8ca in RunThread ()
#8  0xf7b8bd4c in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#9  0xf7c8ed3e in clone () from /lib/i386-linux-gnu/libc.so.6
(gdb) thread 1
[Switching to thread 1 (Thread 0xf5cfa700 (LWP 16688))]
#0  0x08d12bd1 in Mix_FadeOutChannel ()
(gdb) disassemble 
Dump of assembler code for function Mix_FadeOutChannel:
   0x08d12b77 <+0>:     push   ebp
   0x08d12b78 <+1>:     mov    ebp,esp
   0x08d12b7a <+3>:     push   edi
   0x08d12b7b <+4>:     push   esi
   0x08d12b7c <+5>:     xor    esi,esi
   0x08d12b7e <+7>:     push   ebx
   0x08d12b7f <+8>:     sub    esp,0x1c
   0x08d12b82 <+11>:    mov    ebx,DWORD PTR [ebp+0x8]
   0x08d12b85 <+14>:    cmp    DWORD PTR ds:0x93ff5f0,0x0
   0x08d12b8c <+21>:    mov    edi,DWORD PTR [ebp+0xc]
   0x08d12b8f <+24>:    je     0x8d12c1b <Mix_FadeOutChannel+164>
   0x08d12b95 <+30>:    cmp    ebx,0xffffffff
   0x08d12b98 <+33>:    jne    0x8d12bb9 <Mix_FadeOutChannel+66>
   0x08d12b9a <+35>:    jmp    0x8d12bad <Mix_FadeOutChannel+54>
   0x08d12b9c <+37>:    push   eax
   0x08d12b9d <+38>:    push   eax
   0x08d12b9e <+39>:    push   edi
   0x08d12b9f <+40>:    push   ebx
   0x08d12ba0 <+41>:    inc    ebx
   0x08d12ba1 <+42>:    call   0x8d12b77 <Mix_FadeOutChannel>
   0x08d12ba6 <+47>:    add    esp,0x10
   0x08d12ba9 <+50>:    add    esi,eax
   0x08d12bab <+52>:    jmp    0x8d12baf <Mix_FadeOutChannel+56>
   0x08d12bad <+54>:    xor    ebx,ebx
   0x08d12baf <+56>:    cmp    ebx,DWORD PTR ds:0x93ff60c
   0x08d12bb5 <+62>:    jl     0x8d12b9c <Mix_FadeOutChannel+37>
   0x08d12bb7 <+64>:    jmp    0x8d12c1b <Mix_FadeOutChannel+164>
   0x08d12bb9 <+66>:    cmp    ebx,DWORD PTR ds:0x93ff60c
   0x08d12bbf <+72>:    jge    0x8d12c1b <Mix_FadeOutChannel+164>
   0x08d12bc1 <+74>:    call   0x8d1fae7 <SDL_LockAudio>
   0x08d12bc6 <+79>:    imul   edx,ebx,0x3c
   0x08d12bc9 <+82>:    mov    ebx,DWORD PTR ds:0x93ff610
   0x08d12bcf <+88>:    add    ebx,edx
=> 0x08d12bd1 <+90>:    cmp    DWORD PTR [ebx+0x4],0x0
   0x08d12bd5 <+94>:    je     0x8d12c16 <Mix_FadeOutChannel+159>
   0x08d12bd7 <+96>:    mov    eax,DWORD PTR [ebx+0x10]
   0x08d12bda <+99>:    test   eax,eax
   0x08d12bdc <+101>:   jle    0x8d12c16 <Mix_FadeOutChannel+159>
   0x08d12bde <+103>:   cmp    DWORD PTR [ebx+0x24],0x1
   0x08d12be2 <+107>:   je     0x8d12c16 <Mix_FadeOutChannel+159>
   0x08d12be4 <+109>:   mov    DWORD PTR [ebx+0x28],eax
   0x08d12be7 <+112>:   mov    esi,0x1
   0x08d12bec <+117>:   mov    DWORD PTR [ebx+0x24],0x1
   0x08d12bf3 <+124>:   mov    DWORD PTR [ebx+0x30],edi
   0x08d12bf6 <+127>:   mov    DWORD PTR [ebp-0x1c],edx
   0x08d12bf9 <+130>:   call   0x8d4fac7 <SDL_GetTicks>
   0x08d12bfe <+135>:   mov    edx,DWORD PTR [ebp-0x1c]
   0x08d12c01 <+138>:   add    edx,DWORD PTR ds:0x93ff610
   0x08d12c07 <+144>:   cmp    DWORD PTR [edx+0x24],0x0
   0x08d12c0b <+148>:   mov    DWORD PTR [ebx+0x34],eax
   0x08d12c0e <+151>:   jne    0x8d12c16 <Mix_FadeOutChannel+159>
   0x08d12c10 <+153>:   mov    eax,DWORD PTR [edx+0x10]
   0x08d12c13 <+156>:   mov    DWORD PTR [edx+0x2c],eax
   0x08d12c16 <+159>:   call   0x8d1fb18 <SDL_UnlockAudio>
   0x08d12c1b <+164>:   lea    esp,[ebp-0xc]
   0x08d12c1e <+167>:   mov    eax,esi
   0x08d12c20 <+169>:   pop    ebx
   0x08d12c21 <+170>:   pop    esi
   0x08d12c22 <+171>:   pop    edi
   0x08d12c23 <+172>:   pop    ebp
   0x08d12c24 <+173>:   ret    
End of assembler dump.
(gdb) x 0x93ff610
0x93ff610 <mix_channel>:        0x095aa040
(gdb) x/2 0x93ff610
0x93ff610 <mix_channel>:        0x095aa040      0x00000000
(gdb) info registers
eax            0x0      0
ecx            0x1      1
edx            0x82d81890       -2099767152
ebx            0x8c32b8d0       -1942832944
esp            0xffff8fd0       0xffff8fd0
ebp            0xffff8ff8       0xffff8ff8
esi            0x0      0
edi            0xbb8    3000
eip            0x8d12bd1        0x8d12bd1 <Mix_FadeOutChannel+90>
eflags         0x210282 [ SF IF RF ID ]
cs             0x23     35
ss             0x2b     43
ds             0x2b     43
es             0x2b     43
fs             0x0      0
gs             0x63     99