Làm cách nào tôi có thể gỡ lỗi các ngoại lệ không dễ tái tạo và chỉ xảy ra trong môi trường sản xuất?


9

Tôi đang làm việc về một vấn đề mà ngoại lệ chỉ xảy ra trong môi trường sản xuất của chúng tôi. Tôi không có quyền truy cập vào các môi trường này, tôi cũng không biết ngoại lệ này có nghĩa gì. Nhìn vào mô tả lỗi, tôi không thể hiểu nguyên nhân.

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

Ai đó vui lòng tư vấn cho tôi cách tiếp cận loại vấn đề này?


4
điều này có nên được chuyển sang StackOverflow không? Tôi nghĩ rằng bạn sẽ nhận được nhiều phản hồi hơn ở đó.
DXM

10
Một từ: đăng nhập.
quant_dev

1
@DXM - nó sẽ lạc đề với Stack Overflow, vì nó quá chung chung. OP là sau các chiến lược và kỹ thuật hơn là một giải pháp cụ thể. Nếu bao gồm mã bị lỗi thì có lẽ nó có thể hoạt động trên Stack Overflow.
ChrisF

Theo kinh nghiệm của tôi, hầu hết các vấn đề như thế này phát sinh từ các vấn đề cấu hình bảo mật và có thể khó tìm ra. Như những người khác đã đề cập, đăng nhập tốt sẽ giúp tiết lộ nó.
jfrankcarr

Câu trả lời:


18

Nói chung, đăng nhập gỡ lỗi tốt hơn. Chỉ ra những gì bạn muốn biết, thêm nó vào mã và có trong nhật ký để bạn có thể giải quyết nó. Nắm bắt thêm chi tiết về môi trường tại thời điểm đó cũng có ích - yêu cầu gì, khi nào, v.v.

Cụ thể, tôi sẽ tìm kiếm một mô hình phổ biến trong các máy khách nhấn vào điều này - và nếu bạn tìm thấy một tối ưu hóa - nhưng sau đó đi và nắm bắt lưu lượng lớp TCP.

Nhìn vào các thông điệp SSL được trao đổi sẽ cho bạn một số ý tưởng về những gì đang xảy ra trong giao thức hoặc ít nhất là các thuộc tính chung của yêu cầu là gì. Một khi bạn đã có nó, nó sẽ gần hơn để được gỡ lỗi.

Theo hướng dẫn, tôi đoán điều này xuất phát từ một trong ba điều sau:

  1. Một cái gì đó không phải là SSL đã nói chuyện với cổng SSL. (quét cổng là phổ biến, nhưng HTTP đến cổng HTTPS cũng xảy ra.)
  2. Máy khách không chia sẻ một bộ mật mã được chấp nhận với máy chủ.
  3. Máy khách cung cấp một chứng chỉ và máy chủ có sự phù hợp. (Không phổ biến, nhưng có thể.)

1
có thể máy chủ cung cấp chứng chỉ tự ký hoặc được ký bởi CA mà khách hàng không biết / tin tưởng
Carlos Campderrós

Tôi nghĩ rằng tôi đã thấy # 3 xảy ra khi một trong các bên đã hết hạn chứng nhận.
Thất vọngWithFormsDesigner

Tôi đã thực hiện khá nhiều sửa lỗi trên các hệ thống sản xuất. Tôi chưa bao giờ thực sự sử dụng trình gỡ lỗi, nó luôn luôn ghi hoặc ghi các giá trị chính vào một phần cụ thể của màn hình.
Loren Pechtel

cảm ơn tất cả lời khuyên của bạn. Tôi chắc chắn có những cách thực tế để giải quyết lỗi sản xuất.
C4CodeE4Exe

4

Tôi khuyên bạn nên sử dụng chiến lược ghi nhật ký với mức nhật ký tối đa có thể định cấu hình. Một tiện ích như log4j ( http://logging.apache.org/log4j/ , http://en.wikipedia.org/wiki/Log4j ) có thể thực hiện công việc.

Mức nhật ký có thể định cấu hình (hoặc mức độ chi tiết) rất quan trọng để có thể tìm ra lý do của lỗi, có thể mà không phải triển khai lại phần mềm của bạn.

Nếu chiến lược như vậy không đủ để tìm ra lỗi, hãy thử tìm cách tạo / đọc nhật ký được tạo bởi các ứng dụng mà bạn đang liên lạc.

Bạn cũng có thể thực hiện một số cơ chế để tự động nhận thêm thông tin về lỗi bằng e-mail.

Tổng quát hơn, bạn có thể đọc một số bài viết về thiết bị, đây là một chủ đề lớn hơn bao gồm ghi nhật ký và theo dõi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.