Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

Using factory->create() on an endpoint that is down, causes a memroy leak #9

Open
Skmirch opened this Issue · 1 comment

2 participants

@Skmirch

in the file cassandra_factory.cc , in the function.....

CassandraClient *CassandraFactory::createThriftClient(const string &in_host,
int in_port,
bool framed_transport)

In this function the open is called after the pointer to CassandraClient is created. Any exception in open causes the CassandraClient pointer to be lost resulting in a memory leak. Not being able to connect to an endpoint throws the thrift TTransport exception which therefore results in a memory leak that I am seeing.

Reversing the order like so solves the problem...

transport->open(); /* throws an exception */
CassandraClient *client= new(std::nothrow) CassandraClient(protocol);

This has been tested to work.

Thanks.
-- Sandeep

@minaguib

Thanks Sandeep. I've committed this fix in minaguib/libcassandra@cb68df9

I'll send Padraig a pull request including it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.