Come posso eseguire il debug di eccezioni che non sono facilmente riproducibili e si verificano solo in un ambiente di produzione?

9

Sto lavorando su un problema in cui l'eccezione si verifica solo nel nostro ambiente di produzione. Non ho accesso a questi ambienti, né so cosa significhi questa eccezione. Osservando la descrizione dell'errore, non riesco a capire la causa.

javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

Qualcuno potrebbe consigliarmi su come affrontare questo tipo di problema?

    
posta C4CodeE4Exe 25.01.2012 - 07:55
fonte

2 risposte

18

In generale, una registrazione di debug migliore. Scopri cosa vuoi sapere, aggiungilo al codice e disponilo nei registri in modo da poterlo risolvere. Anche acquisire più dettagli dell'ambiente in quel momento aiuta - quale richiesta, quando, ecc.

In particolare, cercherò un modello comune nei client che lo colpiscono, e se ne hai trovato uno ottimizzato, ma poi vai a catturare il traffico del livello TCP.

Guardare i messaggi SSL scambiati dovrebbe darti un'idea di cosa non funziona nel protocollo, o almeno quali sono le proprietà comuni della richiesta. Una volta che hai dovrebbe essere più vicino al debug.

Come guida, direi che proviene da una di queste tre cose:

  1. Qualcosa che non è SSL ha parlato con la porta SSL. (le scansioni delle porte sono comuni, ma succede anche l'HTTP alla porta HTTPS.)
  2. Il client non condivide un insieme accettabile di cifrature con il server.
  3. Il client offre un certificato e il server ha un hissy-fit. (Non comune, ma possibile.)
risposta data 25.01.2012 - 08:00
fonte
4

Suggerirei di utilizzare una strategia di registrazione con un livello massimo di registro configurabile. Un'utilità come log4j ( link , link ) potrebbe fare il lavoro.

Il livello di log (o verbosità) configurabile è importante per poter trovare la causa di un errore, possibilmente senza dover ridistribuire il software.

Se tale strategia non è sufficiente per trovare l'errore, prova a trovare come produrre / leggere i log prodotti dalle applicazioni con le quali il tuo sta comunicando.

Potresti anche implementare alcuni meccanismi per ottenere automaticamente maggiori informazioni sugli errori via e-mail.

Più in generale, puoi leggere alcuni articoli sulla strumentazione, che è un argomento più ampio che include la registrazione e la traccia.

    
risposta data 25.01.2012 - 12:31
fonte

Leggi altre domande sui tag