Skip to content

OkHttpServer TlsTest TSAN race #10284

@ejona86

Description

@ejona86

This is a reproduction of a TSAN issue I had mentioned to some others earlier and had looked into some. The test running appeared to be TlsTest.basicTls_succeeds: http://sponge/facec041-c927-4104-9ff6-3b761ce9bb0a

SanitizerError
ThreadSanitizer: data race AbstractPlainSocketImpl.java:714 in java.net.AbstractPlainSocketImpl.getTimeout()I (//third_party/java_src/grpc/okhttp:src/test/java/io/grpc/okhttp/TlsTest); see http://go/sanitizer-blaze-warning
Details
==================
WARNING: ThreadSanitizer: data race (pid=4210)
  Read of size 4 at 0x0000ce680854 by thread T69:
    #0 java.net.AbstractPlainSocketImpl.getTimeout()I AbstractPlainSocketImpl.java:714 
    #1 java.net.SocketInputStream.read([BII)I SocketInputStream.java:140 
    #2 java.net.SocketInputStream.read([B)I SocketInputStream.java:126 
    #3 io.grpc.internal.GrpcUtil.exhaust(Ljava/io/InputStream;)V GrpcUtil.java:822 
    #4 io.grpc.okhttp.OkHttpServerTransport$FrameHandler.run()V OkHttpServerTransport.java:596 
    #5 java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V ThreadPoolExecutor.java:1130 
    #6 java.util.concurrent.ThreadPoolExecutor$Worker.run()V ThreadPoolExecutor.java:630 
    #7 java.lang.Thread.run()V Thread.java:830 
    #8 (Generated Stub) <null> 

  Previous write of size 4 at 0x0000ce680854 by thread T70 (mutexes: write M0, write M1):
    #0 java.net.AbstractPlainSocketImpl.setOption(ILjava/lang/Object;)V AbstractPlainSocketImpl.java:283 
    #1 java.net.Socket.setSoTimeout(I)V Socket.java:1159 
    #2 sun.security.ssl.BaseSSLSocketImpl.setSoTimeout(I)V BaseSSLSocketImpl.java:639 
    #3 sun.security.ssl.SSLSocketImpl.setSoTimeout(I)V SSLSocketImpl.java:75 
    #4 sun.security.ssl.SSLSocketImpl.closeSocket(Z)V SSLSocketImpl.java:1772 
    #5 sun.security.ssl.SSLSocketImpl.shutdown()V SSLSocketImpl.java:1742 
    #6 sun.security.ssl.SSLSocketImpl.bruteForceCloseInput(Z)V SSLSocketImpl.java:796 
    #7 sun.security.ssl.SSLSocketImpl.duplexCloseInput()V SSLSocketImpl.java:776 
    #8 sun.security.ssl.SSLSocketImpl.close()V SSLSocketImpl.java:590 
    #9 sun.security.ssl.SSLSocketImpl$AppOutputStream.close()V SSLSocketImpl.java:1329 
    #10 okio.OutputStreamSink.close()V JvmOkio.kt:72 
    #11 okio.AsyncTimeout$sink$1.close()V AsyncTimeout.kt:109 
    #12 io.grpc.okhttp.AsyncSink$3.run()V AsyncSink.java:209 
    #13 io.grpc.internal.SerializingExecutor.run()V SerializingExecutor.java:133 
    #14 java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V ThreadPoolExecutor.java:1130 
    #15 java.util.concurrent.ThreadPoolExecutor$Worker.run()V ThreadPoolExecutor.java:630 
    #16 java.lang.Thread.run()V Thread.java:830 
    #17 (Generated Stub) <null> 

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions