Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
Description
The `PdxInstanceImpl::updatePdxStream` method assigns the result of `DataInput::getBufferCopy` to its `m_buffer` member variable, but `m_buffer` is deleted by `PdxInstanceImpl` in its destructor, implying that `PdxInstanceImpl` owns the pointer, which means, in this case, that the existing `m_buffer`, if there is one, is leaked in this call. We discovered that `updatePdxStream` is called on every put of a Pdx type, so in a tight loop with a lot of puts we are potentially leaking a lot of memory.
Repro steps:
Run the soon-to-be-implemented `LeakPdxMemory` test in the NC integration test suite. Test will attempt to do a large number of puts of a large Pdx object, and look for an out of memory exception.
Expected result:
Test passes
Actual result:
Test fails.
Attachments
Issue Links
- links to