Meine Anwendung hält zwischen 950-970 SSL-Verbindungen, bevor es innerhalb SSL_read
segfolds. Ist es möglich, OpenSSL so zu konfigurieren, dass mehr Verbindungen akzeptiert werden?OpenSSL konfigurieren maximale Anzahl von Verbindungen
Ich habe es programmiert, um nichts über die Verbindungen nach dem Erwerb sie zu tun, so weiß ich, dass dies eine Funktion von # der offenen Verbindungen ist, nicht # der Verbindungen derzeit lesen/schreiben oder Zeit.
Updates:
- gleiche Fehler auf Ubuntu an der gleichen Stelle. Ich arbeite an Ubuntu weiter.
- Der gleiche Fehler, wenn ich meine Maschinengröße (RAM, Swap, CPU) bei der gleichen Anzahl von Verbindungen verdoppeln.
- Kontext ist nicht null.
ulimit -n
ist auf 4096 eingestellt. Ich habe dies auch durch Einstellungulimit -100
verifiziert, ein anderer Fehler wird in diesem Fall beobachtet.- Problem tritt auch auf, wenn Threads gepoolt werden. Das Problem tritt bei der gleichen Anzahl von Verbindungen auf, unabhängig davon, ob 1 Thread/Verbindung oder 1 Thread/10 Verbindungen vorhanden sind.
Ich versuche, OpenSSL aus der Quelle mit Debugging-Optionen zu erstellen. Ich fange an mich zu fragen, ob das Stunden dauern wird oder mir etwas Nützliches zu sagen. Ich habe eine Frage an diesen here.
ich die segfault festgestellt habe, ist auf dieser Linie in openssl v 1.0.1.c passiert:
ssl_lib.c:968
968 return(s->method->ssl_read(s,buf,num));
Außerdem habe ich festgestellt, dass dies nicht innen Speicherzugriffsfehler die ssl_read
Funktion (die auf ssl3_read
zeigen sollte). Das Mitglied ssl_read
von method
ist eigentlich ungültig und es scheint method
selbst ist auch ungültig (ich schließe dies auf der Grundlage von "seltsam aussehende Adresse.")
Können Sie genau lokalisieren, wo es segfauling ist? –
Irgendwo in SSL_read 3/4 mal und einmal in SSL_get_error. Ich weiß nicht, wie man mit gdb genauer hinsieht, obwohl ich mir vorstelle, dass es das Kompilieren von der Quelle, das Ausbleichen der Optimierung, etc. beinhaltet. – djechlin
Ist Ihrem System der Speicher oder irgendeine andere Ressource zufallsbedingt ausgegangen? –