After I talked to hologram projector AKA the terminal for a while, I went to leave, and naev froze up, with the music still playing.
It still said that Strangelove's image flickers and disappears, although it didn't until I switched workspaces. When I did, and switched back, the screen wasn't redrawn.
I haven't been able to reproduce the exact sequence, but found something, while a bit nonsentical, makes the problem weakly reproducible:
Approach the projector, selecting with the mouse, and fast-forward through the dialogue with the spacebar
select leave with the mouse.
if the game doesn't hang, repeat approach / leave one or two more times. If it doesn't hang, kill the game, exiting gdb, and try again.
I think I got the game to hang on first approach once, but generally it doesn't. It hangs slightly more often on third approach than second approach, and overall maybe half the time for second&third approach combined. I tried more
approaches but have not found any hang if it didn't hang on third approach. Hang/nonhang seem to come in runs, maybe
related to memory allocation, address space randomization, or entropy for the random number generator?
I have also been able to reproduce the hang with keyboard-selected approach/leave, where it hung on the third leave, but only
once; it mostly didn't hang when I selected with the keyboard.
Here is a backtrace from when I interrupt the hung naev in gdb:
After I talked to hologram projector AKA the terminal for a while, I went to leave, and naev froze up, with the music still playing. It still said that Strangelove's image flickers and disappears, although it didn't until I switched workspaces. When I did, and switched back, the screen wasn't redrawn. I haven't been able to reproduce the exact sequence, but found something, while a bit nonsentical, makes the problem weakly reproducible:
I think I got the game to hang on first approach once, but generally it doesn't. It hangs slightly more often on third approach than second approach, and overall maybe half the time for second&third approach combined. I tried more approaches but have not found any hang if it didn't hang on third approach. Hang/nonhang seem to come in runs, maybe related to memory allocation, address space randomization, or entropy for the random number generator?
I have also been able to reproduce the hang with keyboard-selected approach/leave, where it hung on the third leave, but only once; it mostly didn't hang when I selected with the keyboard.
Here is a backtrace from when I interrupt the hung naev in gdb:
0 futex_wait_cancelable (private=0, expected=0, futex_word=0x1f6434c)
1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x1611700,
2 __pthread_cond_wait (cond=0x1f64320, mutex=0x1611700)
3 0x00007ffff7b9f5c2 in SDL_CondWait_REAL (cond=,
4 0x000000000048cb75 in music_al_play () at ../src/music_openal.c:800
5 0x000000000048b582 in music_play () at ../src/music.c:350
6 0x00000000004f969e in musicL_play (L=)
7 0x000000000053d485 in lj_BC_FUNCC () at buildvm_x86.dasc:849
8 0x000000000052f49a in lua_pcall (L=L@entry=0x7fffe13df380,
9 0x0000000000507571 in cust_pcall (L=L@entry=0x7fffe13df380,
10 0x000000000050782e in cust_key (key=32, mod=KMOD_NONE,
11 0x0000000000507941 in cust_event (wid=,
12 0x000000000044995e in dialogue_custom_event (wid=12, event=0x7fffffffcbb0)
13 0x00000000004dee8d in toolkit_inputWindow (wdw=0x3e74ed0,
14 0x00000000004df254 in toolkit_input (event=event@entry=0x7fffffffcbb0)
15 0x000000000046cf24 in input_handle (event=event@entry=0x7fffffffcbb0)
16 0x0000000000449613 in toolkit_loop (
17 0x000000000044ad12 in dialogue_custom (
18 0x00000000005074bd in tk_custom (L=0x7fffe13df380) at ../src/nlua_tk.c:399
19 0x000000000053d485 in lj_BC_FUNCC () at buildvm_x86.dasc:849
20 0x000000000052f49a in lua_pcall (L=0x7fffe13df380, nargs=nargs@entry=1,
21 0x0000000000493d57 in nlua_pcall (env=env@entry=225, nargs=nargs@entry=1,
22 0x00000000004f93ab in misn_runFunc (misn=,
23 0x0000000000494a52 in npc_approach (i=i@entry=0) at ../src/npc.c:587
24 0x00000000004705f8 in bar_approach (wid=9, str=)
25 0x00000000004de9c2 in toolkit_mouseEventWidget (w=w@entry=0x44ab400,
26 0x00000000004deaa8 in toolkit_mouseEvent (w=w@entry=0x44ab400,
27 0x00000000004deed5 in toolkit_inputWindow (wdw=0x44ab400,
28 0x00000000004e86c6 in tab_raw (tab=0x7fffac006260, event=0x7fffffffcfb0)
29 0x00000000004dee73 in toolkit_inputWindow (wdw=0x3825740,
30 0x00000000004df254 in toolkit_input (event=event@entry=0x7fffffffcfb0)
31 0x000000000046cf24 in input_handle (event=event@entry=0x7fffffffcfb0)
32 0x000000000048ec05 in main (argc=, argv=)
(gdb)