2012-05-16 17 views
9

Stiamo eseguendo un problema molto strano: stiamo utilizzando una versione modificata del proxy HTTP Selenium (più simile allo BrowserMob Proxy) e trovando che in alcune circostanze, che non possiamo riprodurre in modo affidabile, la CPU macina a fermarsi quando si gestiscono connessioni SSL.Perché l'handshake SSL a volte uccide la mia CPU?

Un dump di stack rivela che il filo che viene bloccato sia qui:

"ProxyHandler$SslRelay3-1" prio=10 tid=0x09f9a400 nid=0x81f runnable [0xb2e69000] 
    java.lang.Thread.State: RUNNABLE 
    at java.math.BigInteger.multiply(BigInteger.java:1144) 
    at java.math.BigInteger.lucasLehmerSequence(BigInteger.java:820) 
    at java.math.BigInteger.passesLucasLehmer(BigInteger.java:750) 
    at java.math.BigInteger.primeToCertainty(BigInteger.java:730) 
    at java.math.BitSieve.retrieve(BitSieve.java:188) 
    at java.math.BigInteger.largePrime(BigInteger.java:606) 
    at java.math.BigInteger.<init>(BigInteger.java:511) 
    at org.bouncycastle.crypto.generators.DHParametersHelper.generateSafePrimes(Unknown Source) 
    at org.bouncycastle.crypto.generators.DHParametersGenerator.generateParameters(Unknown Source) 
    at org.bouncycastle.jcajce.provider.asymmetric.dh.KeyPairGeneratorSpi.generateKeyPair(Unknown Source) 
    at com.sun.net.ssl.internal.ssl.DHCrypt.<init>(DHCrypt.java:76) 
    at com.sun.net.ssl.internal.ssl.ServerHandshaker.setupEphemeralDHKeys(ServerHandshaker.java:797) 
    at com.sun.net.ssl.internal.ssl.ServerHandshaker.trySetCipherSuite(ServerHandshaker.java:702) 
    at com.sun.net.ssl.internal.ssl.ServerHandshaker.chooseCipherSuite(ServerHandshaker.java:633) 
    at com.sun.net.ssl.internal.ssl.ServerHandshaker.clientHello(ServerHandshaker.java:425) 
    at com.sun.net.ssl.internal.ssl.ServerHandshaker.processMessage(ServerHandshaker.java:139) 
    at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:516) 
    at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:454) 
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:884) 
    - locked <0x8a18f238> (a com.sun.net.ssl.internal.ssl.SSLSocketImpl) 
    - locked <0x8a18f2c0> (a java.lang.Object) 
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1112) 
    - locked <0x8a18f2c8> (a java.lang.Object) 
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:744) 
    at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75) 
    - locked <0x8a18f300> (a com.sun.net.ssl.internal.ssl.AppInputStream) 
    at org.openqa.jetty.util.LineInput.fill(LineInput.java:477) 
    at org.openqa.jetty.util.LineInput.fillLine(LineInput.java:555) 
    at org.openqa.jetty.util.LineInput.readLineBuffer(LineInput.java:301) 
    at org.openqa.jetty.util.LineInput.readLineBuffer(LineInput.java:285) 
    at org.openqa.jetty.http.HttpRequest.readHeader(HttpRequest.java:239) 
    at org.openqa.jetty.http.HttpConnection.readRequest(HttpConnection.java:866) 
    at org.openqa.jetty.http.HttpConnection.handleNext(HttpConnection.java:912) 
    at org.openqa.jetty.http.HttpConnection.handle(HttpConnection.java:837) 
    at org.openqa.jetty.http.SocketListener.handleConnection(SocketListener.java:243) 
    at org.openqa.jetty.util.ThreadedServer.handle(ThreadedServer.java:357) 
    at org.openqa.jetty.util.ThreadPool$PoolThread.run(ThreadPool.java:534) 

multiple discariche pila rivelano che generateSafePrimes() è continuamente in funzione e ogni successivo dump dello stack mostra luoghi leggermente diversi a java.math.BigInteger è in esecuzione. Tuttavia, è difficile dire dove esattamente le cose si bloccano o se c'è un ciclo legittimo infinito (ne dubito comunque).

studiare più, sono stato in grado di catturare l'uscita corrispondente con -Djavax.net.debug = set ssl, sia per un esempio di lavoro e rotto esempio.

Quando le cose funzionano, la sincronizzazione avviene quasi istantaneamente e vediamo questo output di debug, con un conseguente adeguato Diffie-Hellman scambio di chiavi:

ProxyHandler$SslRelay3-9, setSoTimeout(10000) called 
ProxyHandler$SslRelay3-9, READ: TLSv1 Handshake, length = 171 
*** ClientHello, TLSv1 
RandomCookie: GMT: 1320359479 bytes = { 176, 253, 143, 106, 114, 151, 90, 1, 9, 53, 221, 254, 160, 42, 176, 239, 1, 222, 180, 41, 56, 115, 203, 185, 74, 68, 2, 27 } 
Session ID: {} 
Cipher Suites: [Unknown 0x0:0xff, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, Unknown 0x0:0x88, Unknown 0x0:0x87, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_DSS_WITH_AES_256_CBC_SHA, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, Unknown 0x0:0x84, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, Unknown 0x0:0x45, Unknown 0x0:0x44, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_RC4_128_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_RC4_128_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, Unknown 0x0:0x96, Unknown 0x0:0x41, SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA] 
Compression Methods: { 0 } 
Unsupported extension server_name, [host_name: REDACTED] 
Extension elliptic_curves, curve names: {secp256r1, secp384r1, secp521r1} 
Extension ec_point_formats, formats: [uncompressed] 
Unsupported extension type_35, data: 
*** 
%% Created: [Session-10, TLS_DHE_RSA_WITH_AES_128_CBC_SHA] 
*** ServerHello, TLSv1 
RandomCookie: GMT: 1320359480 bytes = { 85, 189, 191, 119, 135, 205, 134, 161, 254, 164, 83, 102, 9, 149, 182, 59, 83, 201, 110, 233, 114, 168, 166, 192, 80, 250, 204, 121 } 
Session ID: {79, 179, 22, 56, 209, 63, 115, 246, 134, 192, 16, 222, 203, 184, 204, 251, 145, 49, 200, 163, 218, 68, 78, 13, 96, 106, 79, 11, 93, 61, 187, 48} 
Cipher Suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA 
Compression Method: 0 
*** 
Cipher suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA 
*** Certificate chain 
chain [0] = [ 
[ 
    Version: V3 
    Subject: CN=REDACTED, OU=Test, O=CyberVillainsCA, L=Seattle, ST=Washington, C=US 
    Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5 

    Key: RSA Public Key 
      modulus: 9fff00e7f363191e3d3dc0aa85a2791776ecab2d8365ab4026a5e051ff60b6ce11e484a6279f5e123559dfa44479797c7b04a97d1bcfa0e10479d616deeb48cd5c40890041786106a4e88b365585113b107a80be9b3bdf19672a3ffb40a7fac583cae69d262bad1a74ce888f84643733affdbd4f939178eb060f3a32a34345d7 
    public exponent: 10001 

    Validity: [From: Sun May 22 02:45:42 UTC 2011, 
       To: Thu Apr 20 02:45:42 UTC 2017] 
    Issuer: C=US, OU=CyberVillians Certification Authority, O=CyberVillians.com 
    SerialNumber: [ 01375389 64a8] 

Certificate Extensions: 5 
[1]: ObjectId: 2.5.29.14 Criticality=false 
SubjectKeyIdentifier [ 
KeyIdentifier [ 
0000: D1 6A D0 8E B2 7E B4 90 C3 7C 30 D1 5B F2 70 71 .j........0.[.pq 
0010: 94 B4 3F A8          ..?. 
] 
] 

[2]: ObjectId: 2.5.29.35 Criticality=false 
AuthorityKeyIdentifier [ 
KeyIdentifier [ 
0000: 0A BC 17 95 34 6B BC 87 1B 5B 4C FD F5 63 85 2D ....4k...[L..c.- 
0010: B4 8F F5 6C          ...l 
] 

] 

[3]: ObjectId: 2.5.29.31 Criticality=false 
CRLDistributionPoints [ 
    [DistributionPoint: 
    [URIName: http://127.0.0.1:4444/selenium-server/sslSupport/blank_crl.pem] 
]] 

[4]: ObjectId: 2.5.29.37 Criticality=false 
ExtendedKeyUsages [ 
    serverAuth 
    clientAuth 
    2.16.840.1.113730.4.1 
    1.3.6.1.4.1.311.10.3.3 
] 

[5]: ObjectId: 2.5.29.19 Criticality=true 
BasicConstraints:[ 
    CA:false 
    PathLen: undefined 
] 

] 
    Algorithm: [SHA1withRSA] 
    Signature: 
0000: 13 CA C0 80 2D BE AC 9D 3F 58 EF A9 C9 C4 E3 43 ....-...?X.....C 
0010: FE ED 5A 14 0A 04 6B 67 ED 19 EF 8D C2 14 53 6D ..Z...kg......Sm 
0020: 1A 3F B8 99 8E 2B B1 0F 50 83 F1 5A 56 43 5F 8B .?...+..P..ZVC_. 
0030: 8B 0A EE 98 04 D7 32 FC B9 FE 43 57 97 0B FC 46 ......2...CW...F 
0040: 02 4E A4 8F F3 F0 65 BD 20 28 76 DB 29 16 B6 16 .N....e. (v.)... 
0050: 3B 57 D3 B3 24 21 C5 AC 64 8E 95 C9 92 06 DC 95 ;W..$!..d....... 
0060: F8 B4 62 74 8C 44 8D 96 83 94 0F 5C EE B0 A4 8B ..bt.D.....\.... 
0070: 5A EA 1E 58 B2 A3 8B 0E E1 79 5F 06 BF EE E3 A9 Z..X.....y_..... 

] 
*** 
*** Diffie-Hellman ServerKeyExchange 
DH Modulus: { 189, 165, 218, 21, 118, 110, 155, 89, 53, 21, 128, 88, 254, 47, 40, 106, 51, 167, 219, 167, 68, 153, 230, 233, 63, 125, 198, 5, 12, 230, 7, 156, 21, 89, 142, 17, 146, 200, 33, 197, 86, 116, 41, 212, 22, 176, 162, 138, 121, 124, 107, 57, 27, 209, 42, 131, 182, 254, 178, 211, 86, 112, 32, 222, 185, 43, 212, 180, 71, 200, 174, 22, 11, 172, 213, 135, 217, 124, 40, 120, 218, 170, 182, 151, 131, 89, 191, 59, 214, 52, 56, 119, 212, 5, 163, 107 } 
DH Base: { 173, 84, 126, 57, 69, 157, 241, 124, 0, 60, 149, 36, 136, 75, 82, 91, 142, 16, 240, 117, 1, 146, 23, 25, 218, 139, 127, 216, 27, 183, 252, 214, 189, 253, 2, 42, 125, 1, 73, 84, 49, 69, 80, 239, 179, 134, 236, 96, 175, 244, 36, 206, 203, 163, 251, 64, 83, 253, 74, 94, 114, 248, 210, 145, 130, 225, 252, 33, 56, 100, 6, 53, 163, 138, 154, 7, 142, 209, 10, 230, 107, 233, 77, 189, 151, 46, 115, 77, 93, 57, 47, 178, 121, 240, 183, 255 } 
Server DH Public Key: { 36, 153, 18, 99, 95, 39, 135, 103, 245, 21, 20, 161, 159, 246, 67, 6, 183, 101, 8, 62, 161, 21, 211, 95, 193, 13, 248, 152, 101, 138, 143, 247, 29, 176, 255, 165, 78, 140, 108, 243, 219, 222, 59, 181, 4, 71, 51, 164, 1, 80, 97, 70, 66, 189, 175, 19, 248, 11, 77, 84, 112, 134, 139, 222, 81, 12, 45, 173, 173, 102, 141, 195, 80, 244, 20, 251, 109, 246, 24, 194, 140, 201, 29, 251, 26, 191, 9, 201, 45, 107, 59, 28, 148, 25, 220, 215 } 
Signed with a DSA or RSA public key 
*** ServerHelloDone 
ProxyHandler$SslRelay3-9, WRITE: TLSv1 Handshake, length = 1332 

Tuttavia, quando le cose sono rotti le cose sono molto diverse e non abbiamo mai anche arrivare a tentare lo scambio DH:

ProxyHandler$SslRelay3-1, setSoTimeout(10000) called 
ProxyHandler$SslRelay3-1, READ: TLSv1 Handshake, length = 171 
*** ClientHello, TLSv1 
RandomCookie: GMT: 1320358903 bytes = { 148, 198, 81, 98, 2, 66, 235, 221, 74, 170, 130, 205, 43, 139, 18, 60, 121, 148, 234, 153, 3, 89, 48, 153, 168, 196, 80, 54 } 
Session ID: {} 
Cipher Suites: [Unknown 0x0:0xff, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, Unknown 0x0:0x88, Unknown 0x0:0x87, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_DSS_WITH_AES_256_CBC_SHA, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, Unknown 0x0:0x84, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, Unknown 0x0:0x45, Unknown 0x0:0x44, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_RC4_128_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_RC4_128_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, Unknown 0x0:0x96, Unknown 0x0:0x41, SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA] 
Compression Methods: { 0 } 
Unsupported extension server_name, [host_name: REDACTED] 
Extension elliptic_curves, curve names: {secp256r1, secp384r1, secp521r1} 
Extension ec_point_formats, formats: [uncompressed] 
Unsupported extension type_35, data: 
*** 
Finalizer, called close() 
Finalizer, called closeInternal(true) 
Finalizer, called close() 
Finalizer, called closeInternal(true) 
INFO 05/16 02:46:23 b.n.w.a.LoadTestTra~ - Reported 0 slices representing 0 transactions 
INFO 05/16 02:46:23 b.n.w.a.LoadTestTra~ - Collected 0 transactions 
Finalizer, called close() 
Finalizer, called closeInternal(true) 
Finalizer, called close() 
Finalizer, called closeInternal(true) 
INFO 05/16 02:46:33 b.n.w.a.LoadTestTra~ - Reported 0 slices representing 0 transactions 
INFO 05/16 02:46:33 b.n.w.a.LoadTestTra~ - Collected 0 transactions 
Finalizer, called close() 
Finalizer, called closeInternal(true) 
Finalizer, called close() 
Finalizer, called closeInternal(true) 
INFO 05/16 02:46:43 b.n.w.a.LoadTestTra~ - Reported 0 slices representing 0 transactions 
INFO 05/16 02:46:43 b.n.w.a.LoadTestTra~ - Collected 0 transactions 
Finalizer, called close() 
Finalizer, called closeInternal(true) 
Finalizer, called close() 
Finalizer, called closeInternal(true) 
INFO 05/16 02:46:53 b.n.w.a.LoadTestTra~ - Reported 0 slices representing 0 transactions 
INFO 05/16 02:46:53 b.n.w.a.LoadTestTra~ - Collected 0 transactions 
Finalizer, called close() 
Finalizer, called closeInternal(true) 
Finalizer, called close() 
Finalizer, called closeInternal(true) 
INFO 05/16 02:47:03 b.n.w.a.LoadTestTra~ - Reported 0 slices representing 0 transactions 
INFO 05/16 02:47:03 b.n.w.a.LoadTestTra~ - Collected 0 transactions 
Finalizer, called close() 
Finalizer, called closeInternal(true) 
Finalizer, called close() 
Finalizer, called closeInternal(true) 
Acceptor [SSL: ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=35182]], setSoTimeout(10000) called 
ProxyHandler$SslRelay2-0, setSoTimeout(10000) called 
ProxyHandler$SslRelay2-0, READ: TLSv1 Handshake, length = 165 
*** ClientHello, TLSv1 
RandomCookie: GMT: 1320359212 bytes = { 59, 24, 42, 178, 241, 201, 150, 61, 101, 15, 153, 40, 167, 176, 22, 250, 205, 245, 89, 8, 156, 34, 122, 161, 4, 99, 40, 108 } 
Session ID: {} 
Cipher Suites: [Unknown 0x0:0xff, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, Unknown 0x0:0x88, Unknown 0x0:0x87, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_DSS_WITH_AES_256_CBC_SHA, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, Unknown 0x0:0x84, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, Unknown 0x0:0x45, Unknown 0x0:0x44, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_RC4_128_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_RC4_128_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, Unknown 0x0:0x96, Unknown 0x0:0x41, SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA] 
Compression Methods: { 0 } 
Unsupported extension server_name, [host_name: sb-ssl.google.com] 
Extension elliptic_curves, curve names: {secp256r1, secp384r1, secp521r1} 
Extension ec_point_formats, formats: [uncompressed] 
Unsupported extension type_35, data: 
*** 
Acceptor [SSL: ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=53331]], setSoTimeout(10000) called 
ProxyHandler$SslRelay3-0, setSoTimeout(10000) called 
ProxyHandler$SslRelay3-0, READ: TLSv1 Handshake, length = 171 
*** ClientHello, TLSv1 
RandomCookie: GMT: 1320359212 bytes = { 124, 252, 208, 200, 213, 33, 188, 186, 19, 175, 247, 227, 126, 10, 57, 66, 29, 66, 230, 145, 66, 28, 210, 98, 167, 31, 240, 85 } 
Session ID: {} 
Cipher Suites: [Unknown 0x0:0xff, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, Unknown 0x0:0x88, Unknown 0x0:0x87, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_DSS_WITH_AES_256_CBC_SHA, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, Unknown 0x0:0x84, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, Unknown 0x0:0x45, Unknown 0x0:0x44, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_RC4_128_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_ECDSA_WITH_RC4_128_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, Unknown 0x0:0x96, Unknown 0x0:0x41, SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA] 
Compression Methods: { 0 } 
Unsupported extension server_name, [host_name: REDACTED] 
Extension elliptic_curves, curve names: {secp256r1, secp384r1, secp521r1} 
Extension ec_point_formats, formats: [uncompressed] 
Unsupported extension type_35, data: 
*** 
INFO 05/16 02:47:13 b.n.w.a.LoadTestTra~ - Reported 0 slices representing 0 transactions 
INFO 05/16 02:47:13 b.n.w.a.LoadTestTra~ - Collected 0 transactions 
Finalizer, called close() 
Finalizer, called closeInternal(true) 
Finalizer, called close() 
Finalizer, called closeInternal(true) 
INFO 05/16 02:47:23 b.n.w.a.LoadTestTra~ - Reported 0 slices representing 0 transactions 
INFO 05/16 02:47:23 b.n.w.a.LoadTestTra~ - Collected 0 transactions 
Finalizer, called close() 
Finalizer, called closeInternal(true) 
Finalizer, called close() 
Finalizer, called closeInternal(true) 
INFO 05/16 02:47:33 b.n.w.a.LoadTestTra~ - Reported 0 slices representing 0 transactions 
INFO 05/16 02:47:33 b.n.w.a.LoadTestTra~ - Collected 0 transactions 
INFO 05/16 02:47:43 b.n.w.a.LoadTestTra~ - Reported 0 slices representing 0 transactions 
INFO 05/16 02:47:43 b.n.w.a.LoadTestTra~ - Collected 0 transactions 
Finalizer, called close() 
Finalizer, called closeInternal(true) 
Finalizer, called close() 
Finalizer, called closeInternal(true) 
INFO 05/16 02:47:53 b.n.w.a.LoadTestTra~ - Reported 0 slices representing 0 transactions 
INFO 05/16 02:47:53 b.n.w.a.LoadTestTra~ - Collected 0 transactions 
INFO 05/16 02:48:03 b.n.w.a.LoadTestTra~ - Reported 0 slices representing 0 transactions 
INFO 05/16 02:48:03 b.n.w.a.LoadTestTra~ - Collected 0 transactions 
Finalizer, called close() 
Finalizer, called closeInternal(true) 
Finalizer, called close() 
Finalizer, called closeInternal(true) 
Finalizer, called close() 
Finalizer, called closeInternal(true) 
Finalizer, called close() 
Finalizer, called closeInternal(true) 
INFO 05/16 02:48:13 b.n.w.a.LoadTestTra~ - Reported 0 slices representing 0 transactions 
INFO 05/16 02:48:13 b.n.w.a.LoadTestTra~ - Collected 0 transactions 
INFO 05/16 02:48:14 o.o.s.s.SeleniumDri~ - Got result: Timed out after 120000ms on session 5a7b389b01c041fcb3632c2f5056043b 

che accedono si estende su un intervallo di tempo di 2 minuti, in cui quasi non succede nulla. Vi è un ulteriore logging SSL relativo a sb-ssl.google.com (che blocca anche), ma che può essere ignorato - è solo il browser Firefox che effettua il check-in a Google's safe browsing API.

Devo notare che lo stesso complaints era stato prelevato contro il proxy Selenium circa un mese fa, ma erano resolved aggiornando all'ultima versione di BouncyCastle. Tuttavia, stiamo riscontrando che il problema occasionalmente si verifica ancora e non riusciamo a capire perché.

spero la famiglia StackOverflow può far luce sul motivo per cui a volte il filo si blocca in org.bouncycastle.crypto.generators.DHParametersHelper.generateSafePrimes e altre volte la registrazione dimostra che ci siamo diretti verso questa linea chiave subito:

%% Created: [Session-10, TLS_DHE_RSA_WITH_AES_128_CBC_SHA] 

Grazie per qualsiasi intuizione!

Edit: Devo aggiungere che stiamo usando Java 1.6.0_18-b07 su Linux (32 bit e 64 bit sono interessati), Selenium 2.21 e BouncyCastle 1.47.

Edit # 2: Ho appena confermato che questo problema non esiste quando si utilizza Java 7.

+0

Si può eseguire questo con il flag Selenium -debug? – Krrose27

+0

@ Krroae27 sfortunatamente, no. Non usiamo esattamente il Selenium standalone, quindi non esiste alcun comando da riga di comando. Cosa ti aspetti di trovare usando il flag -debug?Se ho un'idea migliore di ciò che stai cercando, potrei essere in grado di ottenere una registrazione simile usando una tecnica diversa. –

+0

Ho trovato sicuramente qualcosa che non mi piace, ma sto facendo un po 'più di ricerca. https://gist.github.com/2707498 – Krrose27

risposta

2

Quindi, controllare il commento filo pieno, ma in fondo dopo un sacco di debugging ho scoperto che l'aggiornamento a Java 7 ha risolto il problema. Non sono sicuro di quale fosse il problema originale con Java 6, ma stiamo andando avanti con Java 7. Spero che questo aiuti qualcuno in futuro!

Problemi correlati