OpenJDK8 Thread.sleep will deadlock while turn down system date time.

张泽鹏 redraiment at gmail.com
Sat Apr 8 03:12:47 UTC 2017


Hi all,

I found a Java process deadlock issue, and can be reproduced in FreeBSD
10.3 and 11.0 .

My environment:

* VirutalBox 5.1.16 r113841 on Mac OS X 10.12.4
* FreeBSD-11.0-RELEASE-amd64.vhd.xz

Reproduction steps:

1. install openjdk8

```sh
pkg install openjdk8
```

2. Java source code

```java
public class Main {
    public static void main(String[] args) {
        while (true) {
            System.out.println("tick");
            Thread.sleep(3000);
        }
    }
}
```

3. Run java

```sh
$ javac Main.java
$ java Main
tick
tick
...
```

4. Turn down system date time.

```sh
$ date '+%Y-%m-%d %H:%M:%S'
20170408 11:09:11
$ date 201001010000
Fri Jan  1 00:00:00 CST 2010
```

Then, the java process will hung.

The issue will reproduce while turn "DOWN" the date time. It's OK while
turn up the date time.

Thanks!


More information about the freebsd-java mailing list