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 premature releasing of ContextElementResponseVector objects in the function processOnChangeConditionForSubscription() provokes errors (detected by valgrind) when using these objects at creating the payload for notifications (using the objects after they've being freed).
A real solution is yet to be found, but we have a workaround, implemented in the PR #3009 .
This workaround consists in delaying the calls to release() of these ContextElementResponseVectors, saving pointers to the vectors and then at the end of the request (after the notification has been sent), all of them are released.
This issue is to not forget about this workaround, and that it would be better to find a real solution to the problem.
The implementation is in mongoGlobal.cpp (saving) and in rest.cpp (delayed release of the objects).
IMPORTANT
A thread variable holds a pointer to the ContextElementResponseVector objects to "delay-release", so the releasing function (delayedReleaseExecute) must be called from the same thread as the "populating function" (delayedReleaseAdd).
The text was updated successfully, but these errors were encountered:
Bugs or issues related with deprecated features and not affecting any other feature are not addressed (they are closed in github.com as soon as they are spotted).
The premature releasing of
ContextElementResponseVector
objects in the functionprocessOnChangeConditionForSubscription()
provokes errors (detected by valgrind) when using these objects at creating the payload for notifications (using the objects after they've being freed).A real solution is yet to be found, but we have a workaround, implemented in the PR #3009 .
This workaround consists in delaying the calls to release() of these ContextElementResponseVectors, saving pointers to the vectors and then at the end of the request (after the notification has been sent), all of them are released.
This issue is to not forget about this workaround, and that it would be better to find a real solution to the problem.
The implementation is in
mongoGlobal.cpp
(saving) and inrest.cpp
(delayed release of the objects).IMPORTANT
A thread variable holds a pointer to the ContextElementResponseVector objects to "delay-release", so the releasing function (
delayedReleaseExecute
) must be called from the same thread as the "populating function" (delayedReleaseAdd
).The text was updated successfully, but these errors were encountered: