#49769 Ticket 49768 - Under network intensive load persistent search can erronously decrease connection refcnt
Closed by spichugi. Opened by tbordaz.
tbordaz/389-ds-base Ticket-49768  into  master

Download 49769.patch

Bug Description:
If a connection enters in turbo mode (because of high traffic) or
a worker reads several requests in the read buffer (more_data), the thread
keeps processing connection.
In that condition it should not decrease the refcnt.
In case the operation is a persistent search, it decreases systematically
the refcnt.
So refcnt can become lower than the actual number of threads active on the connection.

Most of the time it can create messages like
    Attempt to release connection that is not acquired
In some rare case, if the a connection is out of the active list but a remaining thread
tries to remove it again it can lead to a crash

Fix Description:
The fix consist, when processing a PS, to decrease the refcnt at the condition
the connection is not in turbo mode or in more_data.

https://pagure.io/389-ds-base/issue/49768

Reviewed by: ?

Platforms tested: F26

Flag Day: no

Doc impact: no

rebased onto 8f04487f99aa4ae92adae8b5bf632a3f9068667b

Pull-Request has been merged by tbordaz

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 pull request has been cloned to Github as issue and is available here:
- https://github.com/389ds/389-ds-base/issues/2828

If you want to continue to work on the PR, please navigate to the github issue,
download the patch from the attachments and file a new pull request.

Thank you for understanding. We apologize for all inconvenience.

Pull-Request has been closed by spichugi

Metadata