Archived
This forum has been archived. Please start a new discussion on GitHub.
Memory leak when connection failed
Hello,
I have a code like this:
try
{
Ice::ObjectPrx base = ic->stringToProxy( "Test:tcp -p 9326");
::frontEnd::netIce::ServerPrx server = ::frontEnd::netIce::ServerPrx::checkedCast( base );
return 0;
);
}
catch ( Ice::Exception &ex )
{
// couldn't connect to server
return 0;
}
The problem is when we can't connect to server (Ice::ConnectionRefusedException is thrown) I have a memory leak. If I write return 0 just after the line
Ice::ObjectPrx base = ic->stringToProxy( "Test:tcp -p 9326");
I don't have any memory leaks.
I suspect that I work with Ice incorrectly in some way. Could you explain, what is wrong?
Vitaly Berov
I have a code like this:
try
{
Ice::ObjectPrx base = ic->stringToProxy( "Test:tcp -p 9326");
::frontEnd::netIce::ServerPrx server = ::frontEnd::netIce::ServerPrx::checkedCast( base );
return 0;
);
}
catch ( Ice::Exception &ex )
{
// couldn't connect to server
return 0;
}
The problem is when we can't connect to server (Ice::ConnectionRefusedException is thrown) I have a memory leak. If I write return 0 just after the line
Ice::ObjectPrx base = ic->stringToProxy( "Test:tcp -p 9326");
I don't have any memory leaks.
I suspect that I work with Ice incorrectly in some way. Could you explain, what is wrong?
Vitaly Berov
0
Comments
-
Hi,
Your code looks fine. Do you have more information on the leak? What platform and Ice version do you use? Also, what tool do you use to figure memory leaks? There's no known memory leaks in Ice.
Cheers,
Benoit.0 -
Hi, Benoit
We've found a problem. We use MSVC2005 and we had "enable C++ exception" option switched off. Compiler issued some warnings and compiled our code successfully.
But it didn't called destructors when unwound exceptions. So "Ice::ObjectPrx base" destructor never called -> not all references at "ic" were released -> we had memory leaks.
Sorry for disturbance and be on the watch for warnings!
Vitaly Berov0