http://bugs.winehq.org/show_bug.cgi?id=27337
Summary: Raw sockets aren't closed correctly in ICMP monitoring programs Product: Wine Version: 1.2.2 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: berroll@mail.ru
Created an attachment (id=34964) --> (http://bugs.winehq.org/attachment.cgi?id=34964) Command line with argument, wine log, netstat output
The problem has occurred with the program NetMap, which is used for the network monitoring (pinging of multiple hosts in cyclic manner). [http://www.imach.uran.ru/netmap/index.html] NetMap under wine is working several minutes, then hangs with an error "Too many open files". Using the FAQ at http://wiki.winehq.org/FAQ I have increased the open file limit by modifying /etc/security/limits.conf: * hard nofile 16384 * soft nofile 1024 This fix extended working time of NetMap but nevertheless, haven't cured program's hangs.
Also I noticed that during NetMap usage under wine the amount of opened connections is enormous and is increasing over time. Perhaps when it exceeds some limit program hangs. This may be a bug of wine with ICMP handling.
I've made a contact with the author of the program and he explained that NetMap opens raw socket for the ping request. This action is made using function IcmpCreateFile of the library icmp.dll. Then this socket is closed by the function IcmpCloseHandle from the same library. He is sure, that IcmpCloseHandle is called correctly and the code is executed correctly in Windows. NetMap author also mentioned that he tested NetMap and old version of wine (0.99.6) and never met this problem. But now he checked NetMap with newer version of wine and confirmed that this problem exists.
In order to check whether this problem is program-related or wine-related I also tried another program - MetaPing [http://www.hammer-software.com/metaping.shtml] It also performs pinging of multiple Internet hosts, like NetMap. And the problem was the same - enormous amount of opened connections, increasing over time.
It seems that IcmpCloseHandle is not correctly processed by wine, as these raw sockets remain opened.
I'm using Ubuntu Linux 10.04 (Lucid) and wine 1.2.2-0ubuntu2~lucid1 from official Ubuntu repository.