2012-05-16 8 views
9

Estamos corriendo hacia un problema muy extraño: estamos usando una versión modificada del proxy HTTP Selenium (más parecido al BrowserMob Proxy) y descubriendo que en algunas circunstancias, que no podemos reproducir de manera confiable, la CPU muele a un detener cuando se manejan conexiones SSL.¿Por qué el protocolo de enlace SSL a veces mata mi CPU?

un volcado de pila revela que el hilo que queda bien pegado aquí:

"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) 

vertederos apilar múltiples revelan que generateSafePrimes() se ejecuta continuamente y cada volcado de pila posterior muestra ligeramente diferentes lugares en java.math.BigInteger eso está funcionando. Sin embargo, es difícil saber dónde exactamente se estancan las cosas o si existe un bucle infinito legítimo (aunque lo dudo).

Al investigar más, yo era capaz de capturar la salida correspondiente con -Djavax.net.debug = conjunto ssl, tanto para un ejemplo trabajo y una roto ejemplo.

Cuando las cosas funcionan, el apretón de manos ocurre casi instantáneamente y vemos esta salida de depuración, lo que resulta en una adecuada Diffie-Hellman de intercambio de claves:

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 

Sin embargo, cuando las cosas se rompen las cosas son muy diferentes y que nunca incluso llegar a intentar el intercambio 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 

Ese registro se extiende por un intervalo de tiempo de 2 minutos, en los que casi no pasa nada. Hay un poco de registro de SSL adicional relacionado con sb-ssl.google.com (que también bloquea), pero se puede ignorar: solo se trata del navegador Firefox que se registra en Google's safe browsing API.

Debo señalar: similar complaints se ha impuesto contra el proxy de Selenium hace aproximadamente un mes, pero fueron resolved al actualizar a la última versión de BouncyCastle. Sin embargo, estamos encontrando que el problema ocasionalmente todavía ocurre y no podemos entender por qué.

estoy esperando la familia stackoverflow puede arrojar alguna luz sobre por qué a veces el hilo se queda atascado en org.bouncycastle.crypto.generators.DHParametersHelper.generateSafePrimes y otras veces el registro de muestra que se procede directamente a esta línea clave de inmediato:

%% Created: [Session-10, TLS_DHE_RSA_WITH_AES_128_CBC_SHA] 

¡Gracias por cualquier idea!

Editar: Debo añadir que estamos utilizando Java 1.6.0_18-b07 en Linux (32bit y 64bit se ven afectados), Selenium 2.21 y BouncyCastle 1.47.

Edición # 2: Me acaba de confirmar que este problema no existe cuando se utiliza Java 7.

+0

¿Se puede ejecutar esto con Selenium -debug? – Krrose27

+0

@ Krroae27 lamentablemente, no. No usamos exactamente el Selenio independiente, por lo que no hay línea de comando arg. ¿Qué esperarías encontrar usando la bandera de -debug?Si tengo una mejor idea de lo que estás buscando, podría obtener un registro similar usando una técnica diferente. –

+0

Definitivamente he encontrado algo que no me gusta pero estoy investigando un poco más. https://gist.github.com/2707498 – Krrose27

Respuesta

2

A fin de comprobar el hilo de comentarios completo, pero, básicamente, después de un montón de depuración descubrí que la actualización a Java 7 resuelve el problema. No estoy seguro de cuál fue el problema original con Java 6, pero vamos a seguir adelante con Java 7. ¡Espero que esto ayude a alguien en el futuro!

Cuestiones relacionadas