You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The fix in 92fb0a4 (for #38) is incomplete and incorrect for Union or Any fields. I think it creates a reference loop leading to a resource leak. Reported as epics-base/p4p#147 .
export EVENT_NOEPOLL=1
valgrind --leak-check=full --suppressions=pvxs.supp \
./bin/linux-x86_64-debug/pvxmonitor -# 5 test:image
...
==677865== 24 bytes in 3 blocks are definitely lost in loss record 31 of 111
==677865== at 0x484220F: operator new[](unsigned long) (vg_replace_malloc.c:640)
==677865== by 0x48DB3B3: pvxs::shared_array<pvxs::Value, void>::shared_array(unsigned long) (sharedArray.h:282)
==677865== by 0x490BA69: pvxs::impl::from_wire_field(pvxs::impl::Buffer&, std::map<unsigned short, std::vector<pvxs::impl::FieldDesc, std::allocator<pvxs::impl::FieldDesc> >, std::less<unsigned short>, std::allocator<std::pair<unsigned short const, std::vector<pvxs::impl::FieldDesc, std::allocator<pvxs::impl::FieldDesc> > > > >&, pvxs::impl::FieldDesc const*, std::shared_ptr<pvxs::impl::FieldStorage> const&) (dataencode.cpp:610)
==677865== by 0x490C5AB: pvxs::impl::from_wire_valid(pvxs::impl::Buffer&, std::map<unsigned short, std::vector<pvxs::impl::FieldDesc, std::allocator<pvxs::impl::FieldDesc> >, std::less<unsigned short>, std::allocator<std::pair<unsigned short const, std::vector<pvxs::impl::FieldDesc, std::allocator<pvxs::impl::FieldDesc> > > > >&, pvxs::Value&) (dataencode.cpp:723)
==677865== by 0x49E9805: pvxs::client::Connection::handle_MONITOR() (clientmon.cpp:550)
...
The text was updated successfully, but these errors were encountered:
The fix in 92fb0a4 (for #38) is incomplete and incorrect for Union or Any fields. I think it creates a reference loop leading to a resource leak. Reported as epics-base/p4p#147 .
The text was updated successfully, but these errors were encountered: