[
https://issues.apache.org/jira/browse/CALCITE-5433?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17647549#comment-17647549
]
Stamatis Zampetakis commented on CALCITE-5433:
----------------------------------------------
I was able to create a minimal and consistent repro using the following code:
{code:java}
import org.apache.calcite.jdbc.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public class DriverManagerDeadlock {
public static void main(String[] args) throws InterruptedException {
ExecutorService service = Executors.newFixedThreadPool(2);
service.submit((Runnable) Driver::new);
service.submit(() -> {
try {
DriverManager.getConnection("");
} catch (SQLException e) {
throw new RuntimeException(e);
}
});
service.shutdown();
service.awaitTermination(1, TimeUnit.DAYS);
}
}
{code}
Running the main above with jdk1.8.0_261 always leads to deadlock with the
following staktraces:
{noformat}
"pool-1-thread-2" #12 prio=5 os_prio=0 tid=0x00007f69a0550800 nid=0x16f3d in
Object.wait() [0x00007f697e78f000]
java.lang.Thread.State: RUNNABLE
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at
java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
at java.sql.DriverManager$2.run(DriverManager.java:603)
at java.sql.DriverManager$2.run(DriverManager.java:583)
at java.security.AccessController.doPrivileged(Native Method)
at java.sql.DriverManager.loadInitialDrivers(DriverManager.java:583)
at java.sql.DriverManager.<clinit>(DriverManager.java:101)
at DriverManagerDeadlock.lambda$main$0(DriverManagerDeadlock.java:32)
at DriverManagerDeadlock$$Lambda$2/824318946.run(Unknown Source)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Locked ownable synchronizers:
- <0x0000000673512c20> (a
java.util.concurrent.ThreadPoolExecutor$Worker)
"pool-1-thread-1" #11 prio=5 os_prio=0 tid=0x00007f69a054f000 nid=0x16f3c in
Object.wait() [0x00007f697e891000]
java.lang.Thread.State: RUNNABLE
at
org.apache.calcite.avatica.UnregisteredDriver.register(UnregisteredDriver.java:203)
at org.apache.calcite.jdbc.Driver.<clinit>(Driver.java:58)
at DriverManagerDeadlock$$Lambda$1/772777427.run(Unknown Source)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
{noformat}
> Druid tests hang/fail intermittently in CI
> ------------------------------------------
>
> Key: CALCITE-5433
> URL: https://issues.apache.org/jira/browse/CALCITE-5433
> Project: Calcite
> Issue Type: Bug
> Affects Versions: 1.32.0
> Reporter: Stamatis Zampetakis
> Assignee: Stamatis Zampetakis
> Priority: Major
> Attachments: async-profiler-framegraphs.zip
>
>
> Some recent runs that were stuck:
> https://github.com/apache/calcite/actions/runs/3680040091/jobs/6225181295
> https://github.com/apache/calcite/actions/runs/3674545796/jobs/6212895531
> https://github.com/apache/calcite/actions/runs/3663488988/jobs/6193301119
> This is not a new problem and has been discussed in the following thread:
> https://lists.apache.org/thread/z67j2pnlxx7zpmlvqlrozc9omkvbqffh
--
This message was sent by Atlassian Jira
(v8.20.10#820010)