Uploaded image for project: 'Spring Framework'
  1. Spring Framework
  2. SPR-17609

ChannelSendOperator does not propagate cancel signal to the server

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Complete
    • Affects Version/s: 5.1.3
    • Fix Version/s: 5.0.12, 5.1.4
    • Component/s: Web
    • Labels:
      None
    • Last commented by a User:
      true

      Description

      This is a follow-up to SPR-17506 in which writing with Content-Length: 0 and byte[0] was causing hanging. The issue was fixed in 5.1.3 by using response.setComplete() instead of writing an empty byte array. However the underlying issue of hanging with Content-Length: 0 and byte[0] remains.

      After further investigation, there is an issue in ChanelSendOperator in that it currently only cancels the upstream write Publisher. 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 SPR-17506 there is also a sample in https://github.com/reactor/reactor-netty/issues/518.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              rstoya05-aop Rossen Stoyanchev
              Reporter:
              rstoya05-aop Rossen Stoyanchev
              Last updater:
              Spring Issues Spring Issues
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Days since last comment:
                3 years, 19 weeks, 5 days ago