When checking refCnt > 0
, make sure we're the exclusive owner beforehand
#11864
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In
dataStream
, we still use the antipattern of a conditional release after onNext. The idea is that if the downstream consumer does not release the buffer, we'll do it for them after onNext.However, if the downstream does release the buffer but the buffer is also still used elsewhere, this
refCnt
check did not work, and the buffer was released twice. This issue likely was exposed by the new netty allocator.This patch makes sure the buffer refCnt is 1 so that we don't interfere with others.
Fixes micronaut-projects/micronaut-reactor#555