JDK-8197809 : StackOverflowError at java.net.SocketInputStream.socketRead0
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.net
  • Affected Version: 9.0.4
  • Priority: P4
  • Status: Closed
  • Resolution: Incomplete
  • OS: linux
  • CPU: x86_64
  • Submitted: 2018-02-12
  • Updated: 2018-04-20
  • Resolved: 2018-04-20
Related Reports
Relates :  
Description
FULL PRODUCT VERSION :
java 9.0.4

ADDITIONAL OS VERSION INFORMATION :
Debian 9

EXTRA RELEVANT SYSTEM CONFIGURATION :
-Xmx80g

A DESCRIPTION OF THE PROBLEM :
After a ~million of crawled web sites i am suddenly getting the following error

```
java.lang.StackOverflowError
        at java.base/java.net.SocketInputStream.socketRead0(Native Method)
        at java.base/java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
        at java.base/java.net.SocketInputStream.read(SocketInputStream.java:171)
        at java.base/java.net.SocketInputStream.read(SocketInputStream.java:141)
        at java.base/java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
        at java.base/java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
        at java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:345)
        at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:746)
        at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:2074)
        at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:854)
        at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
        at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:859)
        at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
        at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:859)
        at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
        at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:859)
        at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
        at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:859)
        at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
        at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:859)
        at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
        at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:859)
...
// last 2 lines repeat for a while
// the stack trace does not contain any reference to my code
```

Later `Starting coordinated shutdown from JVM shutdown hook`

Note:
I am allowing redirections so that could lead to the problem



ERROR MESSAGES/STACK TRACES THAT OCCUR :
java.lang.StackOverflowError
        at java.base/java.net.SocketInputStream.socketRead0(Native Method)
        at java.base/java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
        at java.base/java.net.SocketInputStream.read(SocketInputStream.java:171)
        at java.base/java.net.SocketInputStream.read(SocketInputStream.java:141)
        at java.base/java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
        at java.base/java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
        at java.base/java.io.BufferedInputStream.read(BufferedInputStream.java:345)
        at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:746)
        at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
        at java.base/sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:2074)
        at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:854)
        at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
        at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:859)
        at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
        at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:859)
        at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
        at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:859)
        at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
        at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:859)
        at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
        at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:859)
        at java.base/sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:689)
        at java.base/sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:859)

REPRODUCIBILITY :
This bug can be reproduced rarely.


Comments
Closing as incomplete for now, will reopen once receive additional details to help reproduce the issue.
20-04-2018

To submitter: Can you please try on latest JDK 10.0.1 and let us know if you still encounter the issue. It will be helpful if you could provide a minimal test case that we can use to reproduce the issue at our end.
20-04-2018

From submitter : This happened after almost 24 hours and millions of crawled pages.
20-04-2018

Issue could be related to JDK-8189646, submitter should verify on 8u172 or 10.
20-02-2018

To submitter: Can you please provide a test case to help reproduce the issue at our end.
13-02-2018