obsidiandynamics / kafdrop

Kafka Web UI
Apache License 2.0
5.51k stars 839 forks source link

Timeout Exception while fetching metadata at path / #126

Closed rohitashJain closed 4 years ago

rohitashJain commented 4 years ago

Below is the stack trace of the error. I tried to set logging level to debug by putting environment property. Can't infer the root cause of the error and how to circumvent it. Can someone please help? @ekoutanov

2020-05-13 06:41:40.729 DEBUG 12 [ XNIO-1 task-6] o.s.c.l.LogFormatUtils : GET "/", parameters={} 2020-05-13 06:41:40.735 DEBUG 12 [ XNIO-1 task-6] o.s.w.s.h.AbstractHandlerMapping : Mapped to public java.lang.String kafdrop.controller.ClusterController.clusterInfo(org.springframework.ui.Model,java.lang.String)

2020-05-13 06:47:13.950 DEBUG 12 [ XNIO-1 task-6] o.s.w.s.FrameworkServlet : Failed to complete request: org.apache.kafka.common.errors.TimeoutException: Timeout of 60000ms expired before the position for partition panthers.***.-2 could be determined 2020-05-13 06:47:13.952 ERROR 12 [ XNIO-1 task-6] i.u.s.a.LoggingExceptionHandler : UT005023: Exception handling request to /

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.apache.kafka.common.errors.TimeoutException: Timeout of 60000ms expired before the position for partition panthers..-2 could be determined at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1013) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:897) at javax.servlet.http.HttpServlet.service(HttpServlet.java:645) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882) at javax.servlet.http.HttpServlet.service(HttpServlet.java:750) at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74) at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129) at kafdrop.config.CorsConfiguration$1.doFilter(CorsConfiguration.java:88) at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) at org.springframework.boot.actuate.web.trace.servlet.HttpTraceFilter.doFilterInternal(HttpTraceFilter.java:88) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118) at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118) at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118) at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118) at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:114) at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:104) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118) at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:118) at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61) at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131) at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84) at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62) at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68) at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36) at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68) at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:132) at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46) at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64) at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60) at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77) at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:269) at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:78) at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:133) at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:130) at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48) at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:249) at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:78) at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:99) at io.undertow.server.Connectors.executeRootHandler(Connectors.java:376) at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:835) Caused by: org.apache.kafka.common.errors.TimeoutException: Timeout of 60000ms expired before the position for partition panthers..-2 could be determined

2020-05-13 06:47:13.954 DEBUG 12 [ XNIO-1 task-6] o.s.c.l.LogFormatUtils : "ERROR" dispatch for GET "/error", parameters={} 2020-05-13 06:47:13.959 DEBUG 12 [ XNIO-1 task-6] o.s.w.s.h.AbstractHandlerMapping : Mapped to public org.springframework.web.servlet.ModelAndView kafdrop.controller.BasicErrorController.handleError(javax.servlet.http.HttpServletRequest) errorAtts: {timestamp=Wed May 13 06:47:13 GMT 2020, status=500, error=Internal Server Error, message=Request processing failed; nested exception is org.apache.kafka.common.errors.TimeoutException: Timeout of 60000ms expired before the position for partition panthers..-2 could be determined, trace=org.apache.kafka.common.errors.TimeoutException: Timeout of 60000ms expired before the position for partition panthers..-2 could be determined , path=/}

ekoutanov commented 4 years ago

This sounds like a broker issue. Are you able to read the contents of the topic using kafka-topic-consumer?

Wouter86 commented 4 years ago

I may have fixed the issue in my pull request, just wait for it to be accepted, or already get my fork from my github account. Then add the parameter --kafdrop.reducedTopicInfo=true when running kafdrop and you may be good to go.

baganokodo commented 3 years ago

I saw the same error during a cluster rebalancing executed by CruiseControl.

Caused by: org.apache.kafka.common.errors.TimeoutException: Timeout of 60000ms expired before the position for partition __KafkaCruiseControlModelTrainingSamples-22 could be determined

Kafdrop became unusable until the rebalancing task was completed.

@Wouter86 is your RP merged with master? thanks