Hi, Zeid,
Thanks for the report. This particular issue should have been fixed
in ibis1.1.6. If you get a chance, please give it a try.
There is a note about the change from Jan 29 in ChangeLog, which reads
* src/fileManager.cpp: storage::enlarge used copy-and-swap idiom
incorrectly and caused the client to assume the operation was a
failure
Please feel free to let us know if you continue to see problems with
this function.
John
On 2/10/2010 2:47 PM, Derhally, Zeid wrote:
> Hi,
>
> I believe I’ve run into a memory leak with ibis 1.1.5
>
> In the function, ibis::fileManager::storage::enlarge, there is a call to
> swap() around line 1909, looks like
>
> try {
>
> ibis::fileManager::storage cp(nelm);
>
> memcpy(cp.m_begin, m_begin, oldsize);
>
> cp.m_end;
>
> swap(cp);
>
> }
>
> catch (...) {
>
> LOGGER(ibis::gVerbose >= 0)
>
> << "Warning -- " << evt << " failed to allocate new storage, "
>
> "current storage unchanged";
>
> }
>
> The swap function also swaps the reference count value which causes the
> m_begin buffer to not be freed up because the temporary object on the
> stack inherited the reference count of the current object.
>
> I’ve made a change in my sources where I did not swap the reference
> count when enlarging the storage and that took care of the leak.
>
> Thanks.
>
> Zeid
>
>
>
> _______________________________________________
> FastBit-users mailing list
> [email protected]
> https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users
_______________________________________________
FastBit-users mailing list
[email protected]
https://hpcrdm.lbl.gov/cgi-bin/mailman/listinfo/fastbit-users