spring-projects / spring-boot

Spring Boot
https://spring.io/projects/spring-boot
Apache License 2.0
74.94k stars 40.64k forks source link

File upload hangs with "No ChannelOperation attached. Dropping:" in webflux #12303

Closed martin-drozdik closed 6 years ago

martin-drozdik commented 6 years ago

The problem manifests itself after upgrading from 2.0.0.M7 to 2.0.0.RC1.

The minimal working example is:

https://github.com/martin-drozdik/upload-bug

Just launch the project by executing ./gradlew bootRun and then try to upload a file using:

curl -v -F file=@Downloads/volga-boatmen.jpg localhost:8888/images

The connection hangs with

  • Trying 127.0.0.1...
  • TCP_NODELAY set
  • Connected to localhost (127.0.0.1) port 8888 (#0)

    POST /images HTTP/1.1 Host: localhost:8888 User-Agent: curl/7.55.1 Accept: / Content-Length: 502719 Expect: 100-continue Content-Type: multipart/form-data; boundary=------------------------85915abf781bb4d3

    < HTTP/1.1 100 Continue

in console on client side and with:

2018-03-01 19:00:39.526 DEBUG 8419 --- [ctor-http-nio-2] r.i.n.channel.ChannelOperationsHandler : [id: 0xb0dbbd8f, L:/127.0.0.1:8888 - R:/127.0.0.1:53546] No ChannelOperation attached. Dropping: --------------------------85915abf781bb4d3 Content-Disposition: form-data; name="file"; filename="volga-boatmen.jpg" Content-Type: image/jpeg

����@ICC_PROFILE  0ADBE mntrRGB XYZ �   acspAPPL none ��  �-ADBE
cprt � 2desc 0 kwtpt � bkpt � rTRC � gTRC � bTRC � rXYZ � gXYZ bXYZ  text Copyright 1999 Adobe Systems Incorporated desc Adobe RGB (1998) XYZ �Q  �XYZ curv 3 curv 3 curv 3 XYZ � O� �XYZ 4� �, �XYZ &1 / ���� C 

�� C  �� x�" ��     �� N    !1A"Qaq�2����#B����3$bCr��4�%Sc�&5�Ts�����   � 2018-03-01 19:00:39.527 DEBUG 8419 --- [ctor-http-nio-2] r.ipc.netty.http.server.HttpServer : [id: 0xb0dbbd8f, L:/127.0.0.1:8888 - R:/127.0.0.1:53546] READ COMPLETE

on the server side.

I am using 64bit Ubuntu 17.10 and OpenJDK 1.8 and the behavior was also reproduced on an apple laptop with Oracle JVM 1.9.

As soon as I downgrade back to 2.0.0.M7 everything works as expected.

spencergibb commented 6 years ago

2.0.0.RELEASE was put out last night. Can you try the updated version?

wilkinsona commented 6 years ago

As expected, this works with 2.0.0.RELEASE, almost certainly thanks to the upgrade to Reactor Bismuth SR 7.