HoustonPutman commented on PR #2384:
URL: https://github.com/apache/solr/pull/2384#issuecomment-2030560252

   An example of how this would fix exception logging:
   
   Existing implementation:
   
   ```
   2024-04-01 21:01:38.810 ERROR 
(coreZkRegister-1-thread-1-processing-172.17.0.2:8983_solr 
test_shard1_replica_n1 test shard1 core_node2) [c: s: r: x: t:] 
o.a.s.c.u.ExecutorUtil Uncaught exception java.lang.StackOverflowError thrown 
by thread: coreZkRegister-1-thread-1-processing-172.17.0.2:8983_solr 
test_shard1_replica_n1 test shard1 core_node2 => java.lang.Exception: Submitter 
stack trace
        at 
org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.execute(ExecutorUtil.java:279)
   java.lang.Exception: Submitter stack trace
        at 
org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.execute(ExecutorUtil.java:279)
 ~[?:?]
        at org.apache.solr.core.ZkContainer.registerInZk(ZkContainer.java:240) 
~[?:?]
        at 
org.apache.solr.core.CoreContainer.lambda$loadInternal$12(CoreContainer.java:1067)
 ~[?:?]
        at 
com.codahale.metrics.InstrumentedExecutorService$InstrumentedRunnable.run(InstrumentedExecutorService.java:212)
 ~[metrics-core-4.2.25.jar:4.2.25]
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) 
~[?:?]
        at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[?:?]
        at 
org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:312)
 ~[?:?]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown 
Source) ~[?:?]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown 
Source) ~[?:?]
        at java.base/java.lang.Thread.run(Unknown Source) [?:?]
   Caused by: java.lang.Exception: Submitter stack trace
        at 
org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.execute(ExecutorUtil.java:279)
 ~[?:?]
        at 
java.base/java.util.concurrent.AbstractExecutorService.submit(Unknown Source) 
~[?:?]
        at 
com.codahale.metrics.InstrumentedExecutorService.submit(InstrumentedExecutorService.java:104)
 ~[metrics-core-4.2.25.jar:4.2.25]
        at 
org.apache.solr.core.CoreContainer.loadInternal(CoreContainer.java:1046) ~[?:?]
        at org.apache.solr.core.CoreContainer.load(CoreContainer.java:760) 
~[?:?]
        at 
org.apache.solr.servlet.CoreContainerProvider.createCoreContainer(CoreContainerProvider.java:427)
 ~[?:?]
        at 
org.apache.solr.servlet.CoreContainerProvider.init(CoreContainerProvider.java:246)
 ~[?:?]
        at 
org.apache.solr.servlet.CoreContainerProvider.contextInitialized(CoreContainerProvider.java:116)
 ~[?:?]
        at 
org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:1049)
 ~[jetty-server-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:624)
 ~[jetty-servlet-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.server.handler.ContextHandler.contextInitialized(ContextHandler.java:984)
 ~[jetty-server-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:740) 
~[jetty-servlet-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:392)
 ~[jetty-servlet-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1304) 
~[jetty-webapp-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:901)
 ~[jetty-server-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:306)
 ~[jetty-servlet-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:532) 
~[jetty-webapp-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
 ~[jetty-server-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
 ~[jetty-server-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
 ~[jetty-server-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
 ~[jetty-server-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
 ~[jetty-server-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.server.handler.gzip.GzipHandler.doStart(GzipHandler.java:221) 
~[jetty-server-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at org.eclipse.jetty.server.Server.start(Server.java:470) 
~[jetty-server-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
 ~[jetty-server-10.0.20.jar:10.0.20]
        at org.eclipse.jetty.server.Server.doStart(Server.java:415) 
~[jetty-server-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1919) 
~[jetty-xml-10.0.20.jar:10.0.20]
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:?]
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
~[?:?]
        at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown 
Source) ~[?:?]
        at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
        at org.eclipse.jetty.start.Main.invokeMain(Main.java:229) 
~[start.jar:10.0.20]
        at org.eclipse.jetty.start.Main.start(Main.java:528) 
~[start.jar:10.0.20]
        at org.eclipse.jetty.start.Main.main(Main.java:76) ~[start.jar:10.0.20]
   ```
   
   Fix:
   
   ```
   2024-04-01 21:07:29.848 ERROR 
(coreZkRegister-1-thread-1-processing-172.17.0.2:8983_solr 
test_shard1_replica_n1 test shard1 core_node2) [c: s: r: x: t:] 
o.a.s.c.u.ExecutorUtil Uncaught exception java.lang.StackOverflowError thrown 
by thread: coreZkRegister-1-thread-1-processing-172.17.0.2:8983_solr 
test_shard1_replica_n1 test shard1 core_node2 => java.lang.Exception: Submitter 
stack trace
        at 
org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.execute(ExecutorUtil.java:279)
   java.lang.Exception: Submitter stack trace
        at 
org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.execute(ExecutorUtil.java:279)
 ~[?:?]
        at 
java.base/java.util.concurrent.AbstractExecutorService.submit(Unknown Source) 
~[?:?]
        at 
com.codahale.metrics.InstrumentedExecutorService.submit(InstrumentedExecutorService.java:104)
 ~[metrics-core-4.2.25.jar:4.2.25]
        at 
org.apache.solr.core.CoreContainer.loadInternal(CoreContainer.java:1046) ~[?:?]
        at org.apache.solr.core.CoreContainer.load(CoreContainer.java:760) 
~[?:?]
        at 
org.apache.solr.servlet.CoreContainerProvider.createCoreContainer(CoreContainerProvider.java:427)
 ~[?:?]
        at 
org.apache.solr.servlet.CoreContainerProvider.init(CoreContainerProvider.java:246)
 ~[?:?]
        at 
org.apache.solr.servlet.CoreContainerProvider.contextInitialized(CoreContainerProvider.java:116)
 ~[?:?]
        at 
org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:1049)
 ~[jetty-server-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:624)
 ~[jetty-servlet-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.server.handler.ContextHandler.contextInitialized(ContextHandler.java:984)
 ~[jetty-server-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:740) 
~[jetty-servlet-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:392)
 ~[jetty-servlet-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1304) 
~[jetty-webapp-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:901)
 ~[jetty-server-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:306)
 ~[jetty-servlet-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:532) 
~[jetty-webapp-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
 ~[jetty-server-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
 ~[jetty-server-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
 ~[jetty-server-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
 ~[jetty-server-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
 ~[jetty-server-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.server.handler.gzip.GzipHandler.doStart(GzipHandler.java:221) 
~[jetty-server-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at org.eclipse.jetty.server.Server.start(Server.java:470) 
~[jetty-server-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:89)
 ~[jetty-server-10.0.20.jar:10.0.20]
        at org.eclipse.jetty.server.Server.doStart(Server.java:415) 
~[jetty-server-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
 ~[jetty-util-10.0.20.jar:10.0.20]
        at 
org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1919) 
~[jetty-xml-10.0.20.jar:10.0.20]
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[?:?]
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
~[?:?]
        at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown 
Source) ~[?:?]
        at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
        at org.eclipse.jetty.start.Main.invokeMain(Main.java:229) 
~[start.jar:10.0.20]
        at org.eclipse.jetty.start.Main.start(Main.java:528) 
~[start.jar:10.0.20]
        at org.eclipse.jetty.start.Main.main(Main.java:76) ~[start.jar:10.0.20]
   Caused by: java.lang.Exception: Submitter stack trace
        at 
org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.execute(ExecutorUtil.java:279)
 ~[?:?]
        at org.apache.solr.core.ZkContainer.registerInZk(ZkContainer.java:240) 
~[?:?]
        at 
org.apache.solr.core.CoreContainer.lambda$loadInternal$12(CoreContainer.java:1067)
 ~[?:?]
        at 
com.codahale.metrics.InstrumentedExecutorService$InstrumentedRunnable.run(InstrumentedExecutorService.java:212)
 ~[metrics-core-4.2.25.jar:4.2.25]
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) 
~[?:?]
        at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[?:?]
        at 
org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:312)
 ~[?:?]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown 
Source) ~[?:?]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown 
Source) ~[?:?]
        at java.base/java.lang.Thread.run(Unknown Source) [?:?]
   Caused by: java.lang.StackOverflowError
        at 
org.apache.solr.core.ZkContainer.lambda$registerInZk$1(ZkContainer.java:213) 
~[?:?]
        at 
org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:312)
 ~[?:?]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown 
Source) ~[?:?]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown 
Source) ~[?:?]
        at java.base/java.lang.Thread.run(Unknown Source) ~[?:?]
   ```
   
   Notice how the cause-submitter-stacktrace ordering is now correct, and that 
the downstream error is actually being reported as the ultimate cause. This 
will also work even if the error/exception has its own causes.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to