Watch, Follow, &
Connect with Us
Public Report
Report From: Kylix/Internet/Indy    [ Add a report in this area ]  
Report #:  2743   Status: Open
TIdTCPServer has memory leak
Project:  Kylix Build #:  4.186
Version:    3.0 Submitted By:   Andrew Fionik
Report Type:  Minor failure / Design problem Date Reported:  10/26/2002 3:31:13 AM
Severity:    Serious / Highly visible problem Last Updated: 3/20/2012 2:24:39 AM
Platform:    Kylix Pascal IDE Internal Tracking #:   158285
Resolution: None  Resolved in Build: : None
Duplicate of:  None
Voting and Rating
Overall Rating: (1 Total Rating)
4.00 out of 5
Total Votes: None
Description
When client disconnects from server, some memory not freed. This not noticeable with applications which have small amount connections, but with server with large amount of hits this makes server not usable in few hours.
Steps to Reproduce:
Attachment contains simple server that wait connection on port 10002. Once connected server will read lines from connection and throw it back. Quit command "quit".

1. Unpack and compile attachment application.
2. Run 'top' or other memory montioring tool.
3. Run server
4. Notice memory usage.
5. Connect to server with telnet.
6. Notice that program size in memory is growing.
7. Enter somethig.
8. Enter "quit"
9. Notice that program size in memory is not returned to previous value.

Repeat steps 4..9 again. Program allocates more and more memory and won't return it to system.
Workarounds
Seems that Indy 9 does not have this problem. It can be correctly compiled and installed on Kylix 3.

For Kylix 2 this can be challenging, because Kylix 2 refuses to compile Indy 9 arguing that Indy currently used by Kylix IDE. Even it Indy uninstalled from it. It is possible to physically remove Indy components from K2, compile and install Indy 9, but some other packages won't work with Indy 9.
Attachment
tcpserverdemo.zip
Comments

Andrew Fionik at 3/29/2003 12:26:33 AM -
Matthias Thoma said that Kylix 3 also shipped with Indy 9. I'm confused. I failed to find what version of Indy was shipped with Kylix 3 and assumed that it was Indy 8.0. This version has bug (i mean version that initially shipped with Kylix 3).
I'm downloaded latest version of Indy from original Indy site. Readme in that Indy says - version 9.0. Most of files (including readme) has date 22 July 2002. Most likely if you download latest version of Indy at current moment you will notice that memory leak disappears.

Server Response from: ETNACODE01