[ 
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)

Reply via email to