2012-06-13 37 views
8

Ứng dụng của tôi giữ trong khoảng 950-970 kết nối SSL trước khi nó phân cách bên trong SSL_read. Có thể cấu hình OpenSSL để chấp nhận nhiều kết nối hơn điều này không?OpenSSL định cấu hình số lượng kết nối tối đa

Tôi đã lập trình để không làm bất cứ điều gì qua kết nối sau khi mua chúng, vì vậy tôi biết đây là chức năng của # kết nối mở, không phải # kết nối hiện đang đọc/ghi hoặc thời gian.

Cập nhật:

  • Cùng lỗi trên ubuntu tại cùng một vị trí. Tôi đang làm việc trên ubuntu trong tương lai.
  • Lỗi tương tự nếu tôi tăng gấp đôi kích thước máy của mình (RAM, hoán đổi, CPU) tại cùng một số kết nối.
  • Bối cảnh không phải là rỗng.
  • ulimit -n được đặt thành 4096. Tôi đã xác minh điều này bằng cách đặt ulimit -100, một lỗi khác được quan sát thấy trong trường hợp đó.
  • Sự cố xảy ra ngay cả khi chuỗi được gộp chung. Sự cố xảy ra ở cùng một số kết nối, cho dù có 1 chuỗi/kết nối hoặc 1 chuỗi/10 kết nối.

Tôi đang cố gắng xây dựng OpenSSL từ nguồn đã bật tùy chọn gỡ lỗi. Tôi bắt đầu tự hỏi nếu điều này sẽ mất nhiều giờ hoặc cho tôi biết bất cứ điều gì hữu ích mặc dù. Tôi có một câu hỏi về điều đó here.

Tôi đã xác định segfault đang xảy ra trên dòng này trong openssl v 1.0.1.c:

ssl_lib.c:968 

968  return(s->method->ssl_read(s,buf,num)); 

Hơn nữa, tôi đã xác định rằng đây không phải là segfaulting bên trong chức năng ssl_read (mà phải trỏ đến ssl3_read). Các thành viên ssl_read của method thực sự là không hợp lệ chính nó và nó xuất hiện method chính nó cũng không hợp lệ (tôi suy ra điều này trên cơ sở "lạ tìm địa chỉ.")

+0

Bạn có thể xác định chính xác vị trí của nó đang phân đoạn không? –

+0

Một nơi nào đó trong SSL_read 3/4 lần và một lần trong SSL_get_error. Tôi không biết làm thế nào để nhìn vào bên trong gần hơn với gdb, mặc dù tôi tưởng tượng nó liên quan đến việc biên dịch từ nguồn, tối ưu hóa tối ưu, v.v. – djechlin

+0

Hệ thống của bạn có hết bộ nhớ hoặc một số tài nguyên khác không? –

Trả lời

4

IMHO, có vẻ như bạn đã đạt đến một số giới hạn. Như bạn đã nói, các bộ mô tả tập tin số là OK. Vì vậy, bạn có thể thử tăng kích thước ngăn xếp với ulimit. Ví dụ:

ulimit -s 32768 

Hơn nữa, bạn có thể sử dụng một công cụ như valgrind, để giúp bạn tìm ra những gì thực sự đang xảy ra tại thời điểm segfaults ứng dụng của bạn.

Hy vọng điều đó sẽ hữu ích.

+0

+1 để đề cập đến 'valgrind', việc sử dụng nào chắc chắn sẽ giúp ích ở đây. – alk

Các vấn đề liên quan