https://bugs.winehq.org/show_bug.cgi?id=45939
Bug ID: 45939 Summary: wineserver hits ulimit, too many open files (eve online) Product: Wine Version: 3.17 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: showard314@gmail.com Distribution: ---
Created attachment 62469 --> https://bugs.winehq.org/attachment.cgi?id=62469 ls -l /proc/17977/fd
When playing eve online, the wineserver linux process hits the default 4096 limit in ubuntu.
$ ls /proc/17977/fd | wc -l 4096
The wineserver has thousands of files open of this form: '/tmp/.wine-1000/server-805-73a277/anonmap.jD13vQ (deleted)'
Attachments are: lsof -p 17977 ls -l /proc/17977/fd
This sounds like: https://bugs.winehq.org/show_bug.cgi?id=45251 but I can't tell if it is a different bug in wine since so many are those tmp anonmaps
https://bugs.winehq.org/show_bug.cgi?id=45939
zzzzzyzz@hacari.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |zzzzzyzz@hacari.org
https://bugs.winehq.org/show_bug.cgi?id=45939
showard314@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|wineserver hits ulimit, too |wineserver hits ulimit and |many open files (eve |locks up, file descriptor |online) |leak? (eve online)
https://bugs.winehq.org/show_bug.cgi?id=45939
--- Comment #1 from showard314@gmail.com --- Created attachment 62517 --> https://bugs.winehq.org/attachment.cgi?id=62517 partial backtrace of wineserver crash
terminal output when wineserver chases due to hitting ulimit due to thousands of deleted /tmp/.../anomap files
https://bugs.winehq.org/show_bug.cgi?id=45939
--- Comment #2 from showard314@gmail.com --- I got to attach winedbg to the running process and wait for the program to hit the file descriptor limit and crash. However, winedbg only gave the following info upon crash:
00f8:err:winedbg:dbg_handle_debug_event Unknown thread 00f8:err:winedbg:dbg_handle_debug_event Unknown thread 00f8:err:winedbg:dbg_handle_debug_event Unknown thread 00f8:err:winedbg:dbg_handle_debug_event Unknown thread 00f8:err:winedbg:dbg_handle_debug_event Unknown thread 00f8:err:winedbg:dbg_handle_debug_event Unknown thread 00f8:err:winedbg:dbg_handle_debug_event Unknown thread
I found a bug with similar symptoms: https://bugs.winehq.org/show_bug.cgi?id=23999 like this bug, software crashes after some time after spawning lots of processes because of DRM checks.
I think what we might be seeing here is there are anti-cheating checks running in the windows binary that is periodically generating anonymous memory map files to look for hack/cheating code. For some reason these map file descriptors are remaining open long after the file was deleted. Eventually the ulimit is hit and everything locks up/freezes/corrupts because game resources cannot be opened.
https://bugs.winehq.org/show_bug.cgi?id=45939
--- Comment #3 from showard314@gmail.com --- I ran strace on the wineserver process. It has thousands of lines of the form:
openat(AT_FDCWD, "anonmap.RmmUJh", O_RDWR|O_CREAT|O_EXCL, 0600) = 1347 unlink("anonmap.RmmUJh") = 0 openat(AT_FDCWD, "anonmap.Bl6bME", O_RDWR|O_CREAT|O_EXCL, 0600) = 1344 unlink("anonmap.Bl6bME") = 0 openat(AT_FDCWD, "anonmap.dgeK2Z", O_RDWR|O_CREAT|O_EXCL, 0600) = 1349 unlink("anonmap.dgeK2Z")
which is consistent with thousands of file descriptors being created, unlinked/deleted.
I've dug through the wineserver code and found where the anonmap temp files are created, and how the are cached and passed around - but I haven't found where the leak is yet and am stumped debugging it at the moment.
To recreate: 1) download and install eve online. 2) run eve online 3) check the wineserver process count, it is constantly growing until it crashes
https://bugs.winehq.org/show_bug.cgi?id=45939
--- Comment #4 from showard314@gmail.com --- Update: When you close the game launcher, but keep the client open - all the deleted files descriptors get closed an no new ones are open. This continues even if you leave the game open for a while.
So there is a file descriptor leak when creating file mappings that is present in the eve online launcher that is not present in the game.
https://bugs.winehq.org/show_bug.cgi?id=45939
Yotam Benshalom benshalom@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |benshalom@gmail.com
--- Comment #5 from Yotam Benshalom benshalom@gmail.com --- I experienced the same issues with updated wine. The launcher eventually hangs the entire system.