http://bugs.winehq.org/show_bug.cgi?id=19561
Summary: Very large memory leak when doing overlapped reads Product: Wine Version: 1.1.26 Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: major Priority: P2 Component: wineserver AssignedTo: wine-bugs@winehq.org ReportedBy: ronfischler@gmail.com
Created an attachment (id=22796) --> (http://bugs.winehq.org/attachment.cgi?id=22796) Program compiled and ready to run using mingw
WINE is buffering serial ports which is in conflict with using overlapped reads. Additionally, when using overlapped reads on a serial port, there is a large memory leak. Every time we receive a block of data on the port, (say 800 bytes in our case,) wineserver allocates many pages on the heap and does not free them afterwards. We are seeing as many as 21 pages lost to the heap every time we read a small block of data.
My company is creating a Monitor & Control product that works through serial ports, and we want it to be able to run on Linux netbooks (using USB to serial port adapters.) This memory leak is the only thing holding us up. The memory leak is too large for us to recommend to customers that our application can be used on Linux platforms using WINE.
We are including an attachment for a small program that captures the leak. The problem is a result of our call to readfile() in the do-while loop. It is using the overlappedRead feature. Every time this Win32 function call is made, 84K bytes disappears forever.
-Ron F.