Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to debug in webflux? [SPR-17585] #22117

Closed
spring-issuemaster opened this issue Dec 10, 2018 · 2 comments

Comments

@spring-issuemaster
Copy link
Collaborator

@spring-issuemaster spring-issuemaster commented Dec 10, 2018

eacdy opened SPR-17585 and commented

I use Spring Boot 2.1.1.RELEASE with  webflux.

Dependencies are like below:

 

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-webflux</artifactId>
</dependency>

 

Here goes the Controller, I use Hooks.onOperatorDebug(); as reactor's document says it Can open debug mode.

 

@RestController
public class TestController {
    @GetMapping("/test")
    public Mono test(String a) {
        Hooks.onOperatorDebug();
        return Mono.just("test1")
                .map(t -> t + "test2")
                .zipWith(Mono.error(() -> new IllegalArgumentException("error")));
    }

    @PostMapping("/test")
    public Mono post(@RequestBody Req req) {
        return Mono.just(req);
    }
}

class Req {
    private String a;
    private String b;

    public String getA() {
        return a;
    }

    public void setA(String a) {
        this.a = a;
    }

    public String getB() {
        return b;
    }

    public void setB(String b) {
        this.b = b;
    }
}

 

log level is below:

 

logging:
  level:
    root: trace

 

 

When I call http://localhost:8080/test , I Can only get logs like below:

2018-12-10 17:18:42.965 DEBUG 30489 --- [ctor-http-nio-2] r.n.http.server.HttpServerOperations     : [id: 0xb40b3015, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:50514] Increasing pending responses, now 12018-12-10 17:18:42.965 DEBUG 30489 --- [ctor-http-nio-2] r.n.http.server.HttpServerOperations     : [id: 0xb40b3015, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:50514] Increasing pending responses, now 12018-12-10 17:18:42.965 DEBUG 30489 --- [ctor-http-nio-2] reactor.netty.http.server.HttpServer     : [id: 0xb40b3015, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:50514] Handler is being applied: org.springframework.http.server.reactive.ReactorHttpHandlerAdapter@1075e83b2018-12-10 17:18:42.966 TRACE 30489 --- [ctor-http-nio-2] o.s.w.s.adapter.HttpWebHandlerAdapter    : [b40b3015] HTTP GET "/test?a=b", headers={masked}2018-12-10 17:18:42.966 TRACE 30489 --- [ctor-http-nio-2] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'testController'2018-12-10 17:18:42.966 DEBUG 30489 --- [ctor-http-nio-2] s.w.r.r.m.a.RequestMappingHandlerMapping : [b40b3015] Mapped to public reactor.core.publisher.Mono com.itmuch.webfluxtest.TestController.test(java.lang.String)2018-12-10 17:18:42.967 DEBUG 30489 --- [ctor-http-nio-2] reactor.core.publisher.Hooks             : Enabling stacktrace debugging via onOperatorDebug2018-12-10 17:18:42.967 DEBUG 30489 --- [ctor-http-nio-2] reactor.core.publisher.Hooks             : Hooking onEachOperator: onOperatorDebug2018-12-10 17:18:42.968 DEBUG 30489 --- [ctor-http-nio-2] o.s.w.r.r.m.a.ResponseBodyResultHandler  : Using 'application/json;charset=UTF-8;q=0.8' given [text/html, application/xhtml+xml, image/webp, image/apng, application/xml;q=0.9, */*;q=0.8] and supported [application/json;charset=UTF-8, application/*+json;charset=UTF-8, text/event-stream]2018-12-10 17:18:42.968 DEBUG 30489 --- [ctor-http-nio-2] o.s.w.r.r.m.a.ResponseBodyResultHandler  : [b40b3015] 0..1 [?]2018-12-10 17:18:42.974 TRACE 30489 --- [ctor-http-nio-2] o.s.w.r.function.server.RouterFunctions  : [b40b3015] Matched org.springframework.boot.autoconfigure.web.reactive.error.DefaultErrorWebExceptionHandler$$Lambda$520/760265546@76f0b1372018-12-10 17:18:42.974 TRACE 30489 --- [ctor-http-nio-2] o.s.c.e.PropertySourcesPropertyResolver  : Searching for key 'spring.template.provider.cache' in PropertySource 'server.ports'2018-12-10 17:18:42.974 TRACE 30489 --- [ctor-http-nio-2] o.s.c.e.PropertySourcesPropertyResolver  : Searching for key 'spring.template.provider.cache' in PropertySource 'configurationProperties'2018-12-10 17:18:42.974 TRACE 30489 --- [ctor-http-nio-2] o.s.c.e.PropertySourcesPropertyResolver  : Searching for key 'spring.template.provider.cache' in PropertySource 'systemProperties'2018-12-10 17:18:42.974 TRACE 30489 --- [ctor-http-nio-2] o.s.c.e.PropertySourcesPropertyResolver  : Searching for key 'spring.template.provider.cache' in PropertySource 'systemEnvironment'2018-12-10 17:18:42.974 TRACE 30489 --- [ctor-http-nio-2] o.s.c.e.PropertySourcesPropertyResolver  : Searching for key 'spring.template.provider.cache' in PropertySource 'random'2018-12-10 17:18:42.975 TRACE 30489 --- [ctor-http-nio-2] o.s.c.e.PropertySourcesPropertyResolver  : Searching for key 'spring.template.provider.cache' in PropertySource 'applicationConfig: [classpath:/application.yml]'2018-12-10 17:18:42.975 TRACE 30489 --- [ctor-http-nio-2] o.s.c.e.PropertySourcesPropertyResolver  : Could not find key 'spring.template.provider.cache' in any property source2018-12-10 17:18:42.975 TRACE 30489 --- [ctor-http-nio-2] o.s.c.e.PropertySourcesPropertyResolver  : Searching for key 'spring.template.provider.cache' in PropertySource 'server.ports'2018-12-10 17:18:42.975 TRACE 30489 --- [ctor-http-nio-2] o.s.c.e.PropertySourcesPropertyResolver  : Searching for key 'spring.template.provider.cache' in PropertySource 'configurationProperties'2018-12-10 17:18:42.975 TRACE 30489 --- [ctor-http-nio-2] o.s.c.e.PropertySourcesPropertyResolver  : Searching for key 'spring.template.provider.cache' in PropertySource 'systemProperties'2018-12-10 17:18:42.975 TRACE 30489 --- [ctor-http-nio-2] o.s.c.e.PropertySourcesPropertyResolver  : Searching for key 'spring.template.provider.cache' in PropertySource 'systemEnvironment'2018-12-10 17:18:42.975 TRACE 30489 --- [ctor-http-nio-2] o.s.c.e.PropertySourcesPropertyResolver  : Searching for key 'spring.template.provider.cache' in PropertySource 'random'2018-12-10 17:18:42.975 TRACE 30489 --- [ctor-http-nio-2] o.s.c.e.PropertySourcesPropertyResolver  : Searching for key 'spring.template.provider.cache' in PropertySource 'applicationConfig: [classpath:/application.yml]'2018-12-10 17:18:42.975 TRACE 30489 --- [ctor-http-nio-2] o.s.c.e.PropertySourcesPropertyResolver  : Could not find key 'spring.template.provider.cache' in any property source2018-12-10 17:18:42.975 TRACE 30489 --- [ctor-http-nio-2] o.s.c.e.PropertySourcesPropertyResolver  : Searching for key 'spring.template.provider.cache' in PropertySource 'server.ports'2018-12-10 17:18:42.975 TRACE 30489 --- [ctor-http-nio-2] o.s.c.e.PropertySourcesPropertyResolver  : Searching for key 'spring.template.provider.cache' in PropertySource 'configurationProperties'2018-12-10 17:18:42.975 TRACE 30489 --- [ctor-http-nio-2] o.s.c.e.PropertySourcesPropertyResolver  : Searching for key 'spring.template.provider.cache' in PropertySource 'systemProperties'2018-12-10 17:18:42.975 TRACE 30489 --- [ctor-http-nio-2] o.s.c.e.PropertySourcesPropertyResolver  : Searching for key 'spring.template.provider.cache' in PropertySource 'systemEnvironment'2018-12-10 17:18:42.975 TRACE 30489 --- [ctor-http-nio-2] o.s.c.e.PropertySourcesPropertyResolver  : Searching for key 'spring.template.provider.cache' in PropertySource 'random'2018-12-10 17:18:42.975 TRACE 30489 --- [ctor-http-nio-2] o.s.c.e.PropertySourcesPropertyResolver  : Searching for key 'spring.template.provider.cache' in PropertySource 'applicationConfig: [classpath:/application.yml]'2018-12-10 17:18:42.975 TRACE 30489 --- [ctor-http-nio-2] o.s.c.e.PropertySourcesPropertyResolver  : Could not find key 'spring.template.provider.cache' in any property source2018-12-10 17:18:42.976 DEBUG 30489 --- [ctor-http-nio-2] .a.w.r.e.DefaultErrorWebExceptionHandler : [b40b3015] Resolved [IllegalArgumentException: error] for HTTP GET /test2018-12-10 17:18:42.976 TRACE 30489 --- [ctor-http-nio-2] o.s.core.codec.CharSequenceEncoder       : [b40b3015] Writing "<html><body><h1>Whitelabel Error Page</h1><p>This application has no configured error view, so you are seeing this as a fallback.</p><div id='created'>Mon Dec 10 17:18:42 CST 2018</div><div>There was an unexpected error (type=Internal Server Error, status=500).</div><div>error</div></body></html>"2018-12-10 17:18:42.977 DEBUG 30489 --- [ctor-http-nio-2] r.n.channel.ChannelOperationsHandler     : [id: 0xb40b3015, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:50514] Writing object DefaultHttpResponse(decodeResult: success, version: HTTP/1.1)HTTP/1.1 500 Internal Server ErrorContent-Type: text/htmlContent-Length: 2972018-12-10 17:18:42.977 DEBUG 30489 --- [ctor-http-nio-2] r.n.channel.ChannelOperationsHandler     : [id: 0xb40b3015, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:50514] Writing object 2018-12-10 17:18:42.977 TRACE 30489 --- [ctor-http-nio-2] r.n.channel.ChannelOperationsHandler     : [id: 0xb40b3015, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:50514] Pending write size = 2972018-12-10 17:18:42.978 TRACE 30489 --- [ctor-http-nio-2] o.s.w.s.adapter.HttpWebHandlerAdapter    : [b40b3015] Completed 500 INTERNAL_SERVER_ERROR, headers={masked}2018-12-10 17:18:42.978 TRACE 30489 --- [ctor-http-nio-2] o.s.h.s.r.ReactorHttpHandlerAdapter      : [b40b3015] Handling completed2018-12-10 17:18:42.978 DEBUG 30489 --- [ctor-http-nio-2] r.n.http.server.HttpServerOperations     : [id: 0xb40b3015, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:50514] Last HTTP response frame2018-12-10 17:18:42.978 DEBUG 30489 --- [ctor-http-nio-2] r.n.channel.ChannelOperationsHandler     : [id: 0xb40b3015, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:50514] Writing object EmptyLastHttpContent2018-12-10 17:18:42.978 DEBUG 30489 --- [ctor-http-nio-2] r.n.http.server.HttpServerOperations     : [id: 0xb40b3015, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:50514] Decreasing pending responses, now 02018-12-10 17:18:42.979 TRACE 30489 --- [ctor-http-nio-2] reactor.netty.channel.ChannelOperations  : [id: 0xb40b3015, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:50514] Disposing ChannelOperation from a channel
java.lang.Exception: ChannelOperation terminal stack at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:363) [reactor-netty-0.8.3.RELEASE.jar:0.8.3.RELEASE] at reactor.netty.http.server.HttpServerOperations.cleanHandlerTerminate(HttpServerOperations.java:509) [reactor-netty-0.8.3.RELEASE.jar:0.8.3.RELEASE] at reactor.netty.http.server.HttpTrafficHandler.operationComplete(HttpTrafficHandler.java:297) [reactor-netty-0.8.3.RELEASE.jar:0.8.3.RELEASE] at reactor.netty.http.server.HttpTrafficHandler.operationComplete(HttpTrafficHandler.java:54) [reactor-netty-0.8.3.RELEASE.jar:0.8.3.RELEASE] at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:511) [netty-common-4.1.31.Final.jar:4.1.31.Final] at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:485) [netty-common-4.1.31.Final.jar:4.1.31.Final] at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:424) [netty-common-4.1.31.Final.jar:4.1.31.Final] at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:103) [netty-common-4.1.31.Final.jar:4.1.31.Final] at io.netty.util.internal.PromiseNotificationUtil.trySuccess(PromiseNotificationUtil.java:48) [netty-common-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.ChannelOutboundBuffer.safeSuccess(ChannelOutboundBuffer.java:696) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.ChannelOutboundBuffer.remove(ChannelOutboundBuffer.java:258) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.nio.AbstractNioByteChannel.doWriteInternal(AbstractNioByteChannel.java:216) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.nio.AbstractNioByteChannel.doWrite0(AbstractNioByteChannel.java:209) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.socket.nio.NioSocketChannel.doWrite(NioSocketChannel.java:397) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannel$AbstractUnsafe.flush0(AbstractChannel.java:934) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.flush0(AbstractNioChannel.java:360) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannel$AbstractUnsafe.flush(AbstractChannel.java:901) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.DefaultChannelPipeline$HeadContext.flush(DefaultChannelPipeline.java:1396) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:776) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:768) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:749) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.flush(CombinedChannelDuplexHandler.java:533) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.ChannelOutboundHandlerAdapter.flush(ChannelOutboundHandlerAdapter.java:115) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.CombinedChannelDuplexHandler.flush(CombinedChannelDuplexHandler.java:358) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:776) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:768) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:749) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.ChannelDuplexHandler.flush(ChannelDuplexHandler.java:117) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:776) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeFlush(AbstractChannelHandlerContext.java:768) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannelHandlerContext.flush(AbstractChannelHandlerContext.java:749) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at reactor.netty.channel.ChannelOperationsHandler.doWrite(ChannelOperationsHandler.java:283) [reactor-netty-0.8.3.RELEASE.jar:0.8.3.RELEASE] at reactor.netty.channel.ChannelOperationsHandler.drain(ChannelOperationsHandler.java:465) [reactor-netty-0.8.3.RELEASE.jar:0.8.3.RELEASE] at reactor.netty.channel.ChannelOperationsHandler.flush(ChannelOperationsHandler.java:194) [reactor-netty-0.8.3.RELEASE.jar:0.8.3.RELEASE] at io.netty.channel.AbstractChannelHandlerContext.invokeFlush0(AbstractChannelHandlerContext.java:776) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:802) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:814) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:794) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:837) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1071) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:300) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at reactor.netty.http.server.HttpServerOperations.onOutboundComplete(HttpServerOperations.java:487) [reactor-netty-0.8.3.RELEASE.jar:0.8.3.RELEASE] at reactor.netty.channel.ChannelOperations.onComplete(ChannelOperations.java:191) [reactor-netty-0.8.3.RELEASE.jar:0.8.3.RELEASE] at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onComplete(FluxOnAssembly.java:383) [reactor-core-3.2.3.RELEASE.jar:3.2.3.RELEASE] at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onComplete(MonoPeekTerminal.java:321) [reactor-core-3.2.3.RELEASE.jar:3.2.3.RELEASE] at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onComplete(FluxOnAssembly.java:383) [reactor-core-3.2.3.RELEASE.jar:3.2.3.RELEASE] at reactor.core.publisher.FluxPeekFuseable$PeekFuseableConditionalSubscriber.onComplete(FluxPeekFuseable.java:578) [reactor-core-3.2.3.RELEASE.jar:3.2.3.RELEASE] at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onComplete(FluxOnAssembly.java:383) [reactor-core-3.2.3.RELEASE.jar:3.2.3.RELEASE] at reactor.core.publisher.Operators$MonoSubscriber.onComplete(Operators.java:1516) [reactor-core-3.2.3.RELEASE.jar:3.2.3.RELEASE] at reactor.core.publisher.MonoIgnoreThen$ThenAcceptInner.onComplete(MonoIgnoreThen.java:314) [reactor-core-3.2.3.RELEASE.jar:3.2.3.RELEASE] at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onComplete(FluxOnAssembly.java:383) [reactor-core-3.2.3.RELEASE.jar:3.2.3.RELEASE] at reactor.core.publisher.Operators.complete(Operators.java:131) [reactor-core-3.2.3.RELEASE.jar:3.2.3.RELEASE] at reactor.core.publisher.MonoEmpty.subscribe(MonoEmpty.java:45) [reactor-core-3.2.3.RELEASE.jar:3.2.3.RELEASE] at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.2.3.RELEASE.jar:3.2.3.RELEASE] at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:76) [reactor-core-3.2.3.RELEASE.jar:3.2.3.RELEASE] at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:153) [reactor-core-3.2.3.RELEASE.jar:3.2.3.RELEASE] at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56) [reactor-core-3.2.3.RELEASE.jar:3.2.3.RELEASE] at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:71) [reactor-core-3.2.3.RELEASE.jar:3.2.3.RELEASE] at reactor.core.publisher.MonoPeekFuseable.subscribe(MonoPeekFuseable.java:70) [reactor-core-3.2.3.RELEASE.jar:3.2.3.RELEASE] at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:71) [reactor-core-3.2.3.RELEASE.jar:3.2.3.RELEASE] at reactor.core.publisher.MonoPeekTerminal.subscribe(MonoPeekTerminal.java:61) [reactor-core-3.2.3.RELEASE.jar:3.2.3.RELEASE] at reactor.core.publisher.MonoOnAssembly.subscribe(MonoOnAssembly.java:76) [reactor-core-3.2.3.RELEASE.jar:3.2.3.RELEASE] at reactor.netty.http.server.HttpServerHandle.onStateChange(HttpServerHandle.java:64) [reactor-netty-0.8.3.RELEASE.jar:0.8.3.RELEASE] at reactor.netty.tcp.TcpServerBind$ChildObserver.onStateChange(TcpServerBind.java:226) [reactor-netty-0.8.3.RELEASE.jar:0.8.3.RELEASE] at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:434) [reactor-netty-0.8.3.RELEASE.jar:0.8.3.RELEASE] at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:141) [reactor-netty-0.8.3.RELEASE.jar:0.8.3.RELEASE] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:159) [reactor-netty-0.8.3.RELEASE.jar:0.8.3.RELEASE] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:438) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323) [netty-codec-4.1.31.Final.jar:4.1.31.Final] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297) [netty-codec-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:253) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:648) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:583) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:500) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:462) [netty-transport-4.1.31.Final.jar:4.1.31.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:897) [netty-common-4.1.31.Final.jar:4.1.31.Final] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_192]
2018-12-10 17:18:42.980 DEBUG 30489 --- [ctor-http-nio-2] r.n.channel.ChannelOperationsHandler     : [id: 0xb40b3015, L:/0:0:0:0:0:0:0:1:8080 - R:/0:0:0:0:0:0:0:1:50514] No ChannelOperation attached. Dropping: EmptyLastHttpContent

The reactor's debug mode is not been actived.

So I wonder How to debug in spring webflux?Or is there anyway help us find errors in our code quickly?

 

 


Affects: 5.1.3

@spring-issuemaster

This comment has been minimized.

Copy link
Collaborator Author

@spring-issuemaster spring-issuemaster commented Dec 10, 2018

Juergen Hoeller commented

I'm afraid this is not a valid ticket in this project issue tracker, and definitely not a blocker bug in the framework. Please raise such questions on other channels, e.g. on StackOverflow.

@spring-issuemaster

This comment has been minimized.

Copy link
Collaborator Author

@spring-issuemaster spring-issuemaster commented Dec 11, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
1 participant
You can’t perform that action at this time.