Created
September 14, 2017 17:44
-
-
Save bsidhom/1ab619c842228b78b9a276f87bbaad0b to your computer and use it in GitHub Desktop.
jdb session showing SslWrapper reuse after finalizer has run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Script started on Thu 14 Sep 2017 05:34:19 PM UTC | |
sidhom@sidhom-gcs-m:~$ time jdb -Diterations=10 -Dhttp.keepAlive=true -Dbuffer.size=$((8*1024*1024)) -Dchunk.size=$((100*1024*1024)) -classpath gcsjava-assembly-0.1.0.jar com.google.gcsjava.Main 1G.random.dat | |
Initializing jdb ... | |
> catch java.lang.NullPointerException | |
Deferring all java.lang.NullPointerException. | |
It will be set after the class is loaded. | |
> stop in org.conscrypt.SslWrapper.close | |
Deferring breakpoint org.conscrypt.SslWrapper.close. | |
It will be set after the class is loaded. | |
> run | |
run com.google.gcsjava.Main 1G.random.dat | |
Set uncaught java.lang.Throwable | |
Set deferred all java.lang.NullPointerException | |
Set deferred uncaught java.lang.Throwable | |
> | |
VM Started: Set deferred breakpoint org.conscrypt.SslWrapper.close | |
NATIVE NEW | |
SslWrapper.newInstance: 139908901314560 (org.conscrypt.SslWrapper@3af9c5b7) | |
SslWrapper.write: first write: 139908901314560 (org.conscrypt.SslWrapper@3af9c5b7) | |
Finished iteration 0 | |
NATIVE NEW | |
SslWrapper.newInstance: 139908901726096 (org.conscrypt.SslWrapper@712625fd) | |
SslWrapper.write: first write: 139908901726096 (org.conscrypt.SslWrapper@712625fd) | |
Breakpoint hit: "thread=Finalizer", org.conscrypt.SslWrapper.close(), line=514 bci=0 | |
Finalizer[1] where | |
[1] org.conscrypt.SslWrapper.close (SslWrapper.java:514) | |
[2] org.conscrypt.ConscryptFileDescriptorSocket.free (ConscryptFileDescriptorSocket.java:986) | |
[3] org.conscrypt.ConscryptFileDescriptorSocket.finalize (ConscryptFileDescriptorSocket.java:1,015) | |
[4] java.lang.System$2.invokeFinalize (System.java:1,270) | |
[5] java.lang.ref.Finalizer.runFinalizer (Finalizer.java:98) | |
[6] java.lang.ref.Finalizer.access$100 (Finalizer.java:34) | |
[7] java.lang.ref.Finalizer$FinalizerThread.run (Finalizer.java:210) | |
Finalizer[1] print this | |
this = "org.conscrypt.SslWrapper@3af9c5b7" | |
Finalizer[1] cont | |
> SslWrapper.close: 139908901314560 (org.conscrypt.SslWrapper@3af9c5b7) | |
SslWrapper.write: write after close: 0 (org.conscrypt.SslWrapper@3af9c5b7) | |
ssl == null == 0 | |
Exception occurred: java.lang.NullPointerException (to be caught at: org.conscrypt.ConscryptFileDescriptorSocket$SSLOutputStream.write(), line=625 bci=160)"thread=main", org.conscrypt.SslWrapper.write(), line=394 bci=132 | |
main[1] where | |
[1] org.conscrypt.SslWrapper.write (SslWrapper.java:394) | |
[2] org.conscrypt.ConscryptFileDescriptorSocket$SSLOutputStream.write (ConscryptFileDescriptorSocket.java:617) | |
[3] java.io.BufferedOutputStream.flushBuffer (BufferedOutputStream.java:82) | |
[4] java.io.BufferedOutputStream.flush (BufferedOutputStream.java:140) | |
[5] java.io.PrintStream.flush (PrintStream.java:338) | |
[6] sun.net.www.MessageHeader.print (MessageHeader.java:301) | |
[7] sun.net.www.http.HttpClient.writeRequests (HttpClient.java:644) | |
[8] sun.net.www.http.HttpClient.writeRequests (HttpClient.java:655) | |
[9] sun.net.www.protocol.http.HttpURLConnection.writeRequests (HttpURLConnection.java:693) | |
[10] sun.net.www.protocol.http.HttpURLConnection.getOutputStream0 (HttpURLConnection.java:1,326) | |
[11] sun.net.www.protocol.http.HttpURLConnection.getOutputStream (HttpURLConnection.java:1,291) | |
[12] sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream (HttpsURLConnectionImpl.java:250) | |
[13] com.google.api.client.http.javanet.NetHttpRequest.execute (NetHttpRequest.java:77) | |
[14] com.google.api.client.http.HttpRequest.execute (HttpRequest.java:981) | |
[15] com.google.cloud.storage.spi.v1.HttpStorageRpc.write (HttpStorageRpc.java:562) | |
[16] com.google.cloud.storage.BlobWriteChannel$1.run (BlobWriteChannel.java:51) | |
[17] java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:511) | |
[18] com.google.api.gax.retrying.DirectRetryingExecutor.submit (DirectRetryingExecutor.java:94) | |
[19] com.google.cloud.RetryHelper.runWithRetries (RetryHelper.java:54) | |
[20] com.google.cloud.storage.BlobWriteChannel.flushBuffer (BlobWriteChannel.java:47) | |
[21] com.google.cloud.BaseWriteChannel.flush (BaseWriteChannel.java:121) | |
[22] com.google.cloud.BaseWriteChannel.write (BaseWriteChannel.java:148) | |
[23] com.google.gcsjava.Main.main (Main.java:45) | |
main[1] print this | |
this = "org.conscrypt.SslWrapper@3af9c5b7" | |
main[1] dump this | |
this = { | |
parameters: instance of org.conscrypt.SSLParametersImpl(id=1847) | |
handshakeCallbacks: instance of org.conscrypt.ConscryptFileDescriptorSocket(id=1848) | |
aliasChooser: instance of org.conscrypt.ConscryptFileDescriptorSocket(id=1848) | |
pskCallbacks: instance of org.conscrypt.ConscryptFileDescriptorSocket(id=1848) | |
localCertificates: null | |
ssl: 0 | |
firstWrite: false | |
} | |
main[1] cont | |
> | |
Exception occurred: java.lang.NullPointerException (to be caught at: java.io.PrintStream.flush(), line=343 bci=29)"thread=main", org.conscrypt.ConscryptFileDescriptorSocket$SSLOutputStream.write(), line=625 bci=167 | |
main[1] where | |
[1] org.conscrypt.ConscryptFileDescriptorSocket$SSLOutputStream.write (ConscryptFileDescriptorSocket.java:625) | |
[2] java.io.BufferedOutputStream.flushBuffer (BufferedOutputStream.java:82) | |
[3] java.io.BufferedOutputStream.flush (BufferedOutputStream.java:140) | |
[4] java.io.PrintStream.flush (PrintStream.java:338) | |
[5] sun.net.www.MessageHeader.print (MessageHeader.java:301) | |
[6] sun.net.www.http.HttpClient.writeRequests (HttpClient.java:644) | |
[7] sun.net.www.http.HttpClient.writeRequests (HttpClient.java:655) | |
[8] sun.net.www.protocol.http.HttpURLConnection.writeRequests (HttpURLConnection.java:693) | |
[9] sun.net.www.protocol.http.HttpURLConnection.getOutputStream0 (HttpURLConnection.java:1,326) | |
[10] sun.net.www.protocol.http.HttpURLConnection.getOutputStream (HttpURLConnection.java:1,291) | |
[11] sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream (HttpsURLConnectionImpl.java:250) | |
[12] com.google.api.client.http.javanet.NetHttpRequest.execute (NetHttpRequest.java:77) | |
[13] com.google.api.client.http.HttpRequest.execute (HttpRequest.java:981) | |
[14] com.google.cloud.storage.spi.v1.HttpStorageRpc.write (HttpStorageRpc.java:562) | |
[15] com.google.cloud.storage.BlobWriteChannel$1.run (BlobWriteChannel.java:51) | |
[16] java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:511) | |
[17] com.google.api.gax.retrying.DirectRetryingExecutor.submit (DirectRetryingExecutor.java:94) | |
[18] com.google.cloud.RetryHelper.runWithRetries (RetryHelper.java:54) | |
[19] com.google.cloud.storage.BlobWriteChannel.flushBuffer (BlobWriteChannel.java:47) | |
[20] com.google.cloud.BaseWriteChannel.flush (BaseWriteChannel.java:121) | |
[21] com.google.cloud.BaseWriteChannel.write (BaseWriteChannel.java:148) | |
[22] com.google.gcsjava.Main.main (Main.java:45) | |
main[1] print this | |
this = "org.conscrypt.ConscryptFileDescriptorSocket$SSLOutputStream@742ff096" | |
main[1] dump this | |
this = { | |
writeLock: instance of java.lang.Object(id=1851) | |
this$0: instance of org.conscrypt.ConscryptFileDescriptorSocket(id=1848) | |
} | |
main[1] cont | |
> | |
Breakpoint hit: "thread=Keep-Alive-Timer", org.conscrypt.SslWrapper.close(), line=514 bci=0 | |
Keep-Alive-Timer[1] where | |
[1] org.conscrypt.SslWrapper.close (SslWrapper.java:514) | |
[2] org.conscrypt.ConscryptFileDescriptorSocket.free (ConscryptFileDescriptorSocket.java:986) | |
[3] org.conscrypt.ConscryptFileDescriptorSocket.shutdownAndFreeSslNative (ConscryptFileDescriptorSocket.java:975) | |
[4] org.conscrypt.ConscryptFileDescriptorSocket.close (ConscryptFileDescriptorSocket.java:960) | |
[5] sun.net.www.http.HttpClient.closeServer (HttpClient.java:1,053) | |
[6] sun.net.www.http.KeepAliveCache.run (KeepAliveCache.java:199) | |
[7] java.lang.Thread.run (Thread.java:748) | |
Keep-Alive-Timer[1] print this | |
Exception occurred: java.lang.NullPointerException (to be caught at: sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(), line=1,355 bci=321)"thread=main", java.io.PrintStream.flush(), line=343 bci=33 | |
main[1] cont | |
> this = "org.conscrypt.SslWrapper@712625fd" | |
Keep-Alive-Timer[1] cont | |
> | |
Exception occurred: java.lang.NullPointerException (to be caught at: com.google.api.gax.retrying.DirectRetryingExecutor.submit(), line=99 bci=81)"thread=main", sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(), line=1,357 bci=327 | |
main[1] cont | |
> SslWrapper.close: 139908901726096 (org.conscrypt.SslWrapper@712625fd) | |
NATIVE NEW | |
SslWrapper.newInstance: 139908901726096 (org.conscrypt.SslWrapper@5afa3c9) | |
SslWrapper.write: first write: 139908901726096 (org.conscrypt.SslWrapper@5afa3c9) | |
Exception occurred: com.google.cloud.storage.StorageException (uncaught)"thread=main", com.google.gcsjava.Main.main(), line=49 bci=404 | |
main[1] cont | |
Exception in thread "main" com.google.cloud.storage.StorageException: java.lang.NullPointerException: ssl == null | |
at com.google.cloud.storage.StorageException.translateAndThrow(StorageException.java:71) | |
at com.google.cloud.storage.BlobWriteChannel.flushBuffer(BlobWriteChannel.java:55) | |
at com.google.cloud.BaseWriteChannel.flush(BaseWriteChannel.java:121) | |
at com.google.cloud.BaseWriteChannel.write(BaseWriteChannel.java:148) | |
at com.google.gcsjava.Main.main(Main.java:45) | |
Caused by: java.lang.NullPointerException: ssl == null | |
at org.conscrypt.NativeCrypto.SSL_write(Native Method) | |
at org.conscrypt.SslWrapper.write(SslWrapper.java:394) | |
at org.conscrypt.ConscryptFileDescriptorSocket$SSLOutputStream.write(ConscryptFileDescriptorSocket.java:617) | |
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) | |
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) | |
at java.io.PrintStream.flush(PrintStream.java:338) | |
at sun.net.www.MessageHeader.print(MessageHeader.java:301) | |
at sun.net.www.http.HttpClient.writeRequests(HttpClient.java:644) | |
at sun.net.www.http.HttpClient.writeRequests(HttpClient.java:655) | |
at sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:693) | |
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1326) | |
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1291) | |
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250) | |
at com.google.api.client.http.javanet.NetHttpRequest.execute(NetHttpRequest.java:77) | |
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:981) | |
at com.google.cloud.storage.spi.v1.HttpStorageRpc.write(HttpStorageRpc.java:562) | |
at com.google.cloud.storage.BlobWriteChannel$1.run(BlobWriteChannel.jav> a:51) | |
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) | |
at com.google.api.gax.retrying.DirectRetryingExecutor.submit(DirectRetryingExecutor.java:94) | |
at com.google.cloud.RetryHelper.runWithRetries(RetryHelper.java:54) | |
at com.google.cloud.storage.BlobWriteChannel.flushBuffer(BlobWriteChannel.java:47) | |
... 3 more | |
The application exited | |
real 1m36.307s | |
user 0m4.692s | |
sys 0m2.636s | |
sidhom@sidhom-gcs-m:~$ exit | |
exit | |
Script done on Thu 14 Sep 2017 05:36:04 PM UTC |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment