ChannelSendOperator does not propagate cancel signal to the server [SPR-17609] #22141
Labels
in: web
Issues in web modules (web, webmvc, webflux, websocket)
status: backported
An issue that has been backported to maintenance branches
type: bug
A general bug
Milestone
Rossen Stoyanchev opened SPR-17609 and commented
This is a follow-up to #22038 in which writing with
Content-Length: 0
andbyte[0]
was causing hanging. The issue was fixed in 5.1.3 by usingresponse.setComplete()
instead of writing an empty byte array. However the underlying issue of hanging withContent-Length: 0
andbyte[0]
remains.After further investigation, there is an issue in
ChanelSendOperator
in that it currently only cancels the upstream writePublisher
. So in a case where a cancel happens after the first signal (onNext, onError, onComplete) is emitted, and therefore after the server write Subscriber is hooked in, in that scenario only the upstream write Publisher is notified to stop sending, but the server write Subscriber is not aware.In addition to the sample in #22038 there is also a sample in reactor/reactor-netty#518.
Affects: 5.1.3
Issue Links:
Referenced from: commits 09da10c
Backported to: 5.0.12
The text was updated successfully, but these errors were encountered: