When we allocate a new operation, we actual re-use one from a freelist, or we alloc a new one. This has the effect that we never clean out old operations, so during a high load event we allocate a lot of op structs, and don't free them.
Not only that, it's bad practice - it confuses memory sanitisation tools, it confuses coverity, and it also creates a locking point in operation creation time.
We have multithread memory allocators now, we should use them - IE we should just create and free these as needed.
Metadata Update from @firstyear: - Issue assigned to firstyear
Metadata Update from @mreynolds: - Custom field component adjusted to None - Custom field origin adjusted to None - Custom field reviewstatus adjusted to None - Custom field type adjusted to None - Custom field version adjusted to None - Issue set to the milestone: 1.4 backlog
This is also true of our reuse of connection objects too.
Metadata Update from @firstyear: - Issue set to the milestone: None (was: 1.4 backlog)
Metadata Update from @mreynolds: - Issue set to the milestone: 1.4 backlog
389-ds-base is moving from Pagure to Github. This means that new issues and pull requests will be accepted only in 389-ds-base's github repository.
This issue has been cloned to Github and is available here: - https://github.com/389ds/389-ds-base/issues/2487
If you want to receive further updates on the issue, please navigate to the github issue and click on subscribe button.
subscribe
Thank you for understanding. We apologize for all inconvenience.
Metadata Update from @spichugi: - Issue close_status updated to: wontfix - Issue status updated to: Closed (was: Open)