[Linux] The DST process doesn't disappear after leaving the game


krop
  • Pending

After quitting DST, the main window disappears but the game remains active. the issue exists on the live and preview branch.

Launching DST and opening the item collection is enough to reproduce the issue locally.

What I tried so far:

- Reinstalling the game,
- disabling all mods,
- uninstalling all mods

client_log.txt after pressing the 'Quit' button:

Quote

[00:00:23]: ModWorkshop::CancelDownloads clearing all unfinished downloads
[00:00:23]: Collecting garbage...
[00:00:23]: lua_gc took 0.04 seconds
[00:00:23]: ~ShardLuaProxy()
[00:00:23]: ~cEventLeaderboardProxy()
[00:00:23]: ~ItemServerLuaProxy()
[00:00:23]: ~InventoryLuaProxy()
[00:00:23]: ~NetworkLuaProxy()
[00:00:23]: ~SimLuaProxy()
[00:00:23]: ModWorkshop::CancelDownloads clearing all unfinished downloads
[00:00:23]: lua_close took 0.05 seconds
[00:00:23]: ModWorkshop::CancelDownloads clearing all unfinished downloads
[00:00:23]: [Steam] Auth ticket cancelled
[00:00:23]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.
[00:00:23]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.
[00:00:23]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.

[ repeated ]

[00:00:23]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.
[00:00:23]: CurlRequestManager::ClientThread::Main() complete
[00:00:23]: HttpClient2 discarded 0 callbacks.
[00:00:23]: Shutting down

 

For obvious reasons, attaching gdb to the process doesn't give much clues

# gdb -p `pidof dontstarve_steam`
 

(gdb) set pagination 0
(gdb) thread apply all bt

Thread 3 (Thread 0xefbffb40 (LWP 29525)):
#0  0xf7fbf159 in __kernel_vsyscall ()
#1  0xf7346093 in __GI___libc_read (nbytes=4096, buf=0xef800660, fd=0) at ../sysdeps/unix/sysv/linux/read.c:26
#2  __GI___libc_read (fd=0, buf=0xef800660, nbytes=4096) at ../sysdeps/unix/sysv/linux/read.c:24
#3  0xf72cf01b in _IO_new_file_underflow (fp=<optimized out>) at libioP.h:947
#4  0xf72d03bc in __GI__IO_default_uflow (fp=0xf7439540 <_IO_2_1_stdin_>) at libioP.h:947
#5  0xf72c9db1 in _IO_getc (fp=<optimized out>) at getc.c:38
#6  0xf764db5c in __gnu_cxx::stdio_sync_filebuf<char, std::char_traits<char> >::underflow() () from /usr/lib/libstdc++.so.6
#7  0xf76070ec in std::istream::getline(char*, int, char) () from /usr/lib/libstdc++.so.6
#8  0x082a22c7 in ?? ()
#9  0x0829fd87 in ?? ()
#10 0x0832d8bd in ?? ()
#11 0xf79d107d in start_thread (arg=0xefbffb40) at pthread_create.c:477
#12 0xf7358696 in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:108

Thread 2 (Thread 0xefffbb40 (LWP 29524)):
#0  0xf7fbf159 in __kernel_vsyscall ()
#1  0xf79daf66 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, clockid=0, expected=1, futex_word=0x979be98) at ../sysdeps/nptl/futex-internal.h:320
#2  do_futex_wait (sem=sem@entry=0x979be98, abstime=0x0, clockid=0) at sem_waitcommon.c:117
#3  0xf79db077 in __new_sem_wait_slow (sem=0x979be98, abstime=0x0, clockid=0) at sem_waitcommon.c:285
#4  0x0832d6bf in ?? ()
#5  0x08232760 in ?? ()
#6  0x0832d8bd in ?? ()
#7  0xf79d107d in start_thread (arg=0xefffbb40) at pthread_create.c:477
#8  0xf7358696 in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:108

Thread 1 (Thread 0xf621a7c0 (LWP 29521)):
#0  0xf7fbf159 in __kernel_vsyscall ()
#1  0xf72d2961 in __lll_lock_wait_private (futex=0xf743af54 <_IO_stdfile_0_lock>) at ./lowlevellock.c:35
#2  0xf72d0f1a in __GI__IO_flush_all () at genops.c:698
#3  0xf72d0ff3 in _IO_cleanup () at genops.c:843
#4  0xf7289d82 in __run_exit_handlers (status=0, listp=0xf74393bc <__exit_funcs>, run_list_atexit=true, run_dtors=true) at exit.c:130
#5  0xf7289e43 in __GI_exit (status=0) at exit.c:139
#6  0xf7270df9 in __libc_start_main (main=0x8051160, argc=1, argv=0xffe1ade4, init=0x8420550, fini=0x84205c0, rtld_fini=0xf7fd0e70 <_dl_fini>, stack_end=0xffe1addc) at ../csu/libc-start.c:342
#7  0x08059100 in ?? ()

 

 

 

 


Steps to Reproduce

Start DST, visit a sub-menu (eg: the items gallery), quit the game



User Feedback


....

Small update: I had some free time to test, so I also wiped all Steam data and reinstalled (to work around caching issues)...

The problem is still there

Share this comment


Link to comment
Share on other sites
.... ....

Steam log after pressing the quit button:

Updates 0Seconds elapsed: 65.4947 fps:0
[00:01:06]: ModWorkshop::CancelDownloads clearing all unfinished downloads
[00:01:06]: Collecting garbage...
[00:01:06]: lua_gc took 0.04 seconds
[00:01:06]: ~ShardLuaProxy()
[00:01:06]: ~cEventLeaderboardProxy()
[00:01:06]: ~ItemServerLuaProxy()
[00:01:06]: ~InventoryLuaProxy()
[00:01:06]: ~NetworkLuaProxy()
[00:01:06]: ~SimLuaProxy()
[00:01:06]: ModWorkshop::CancelDownloads clearing all unfinished downloads
[00:01:06]: lua_close took 0.05 seconds
[00:01:06]: ModWorkshop::CancelDownloads clearing all unfinished downloads
[00:01:06]: [Steam] Auth ticket cancelled
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager.  
[00:01:06]: CurlRequestManager::ClientThread::Main() complete
[00:01:06]: HttpClient2 discarded 0 callbacks.
[00:01:06]: Shutting down

No activity if I attach strace to the dangling process, only:

futex(0xf73690c0, FUTEX_WAIT_PRIVATE, 2, NULL


 

 

Share this comment


Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now