Ich habe Hanami Check-out und entdecken, dass meine Sequel-Verbindungen mit dem folgenden Fehler sterben wurden:Sequel löscht Verbindungen mit SSL-Fehler beim Verzweigen, warum?
Sequel::DatabaseDisconnectError: PG::ConnectionBad: PQconsumeInput() SSL error: decryption failed or bad record mac: SELECT NULL
Egal, der Server (dünner, Puma, webrick) oder Umwelt. Nach einigen Experimenten stellte sich heraus, dass der Schuldige gem 'shotgun'
in der Gemfile
war (Hanami lädt den Code nicht neu). Von der Schrotflinte docs:
Each time a request is received, it forks, loads the application in the child process, processes the request, and exits the child process.
Wenn in der Produktion mit nginx verwendet, gegabelten Sequel fällt Verbindungen aus dem gleichen Grund.
Dies kann mit dem folgenden Code gelindert werden, aber es wird bedeuten, dass man bei jeder Anfrage wieder angeschlossen hat: es scheint
SequelDB.extension :connection_validator
SequelDB.pool.connection_validation_timeout = -1
Damit Sequel des Verbindungspool nach Forking beschädigt ist.
Warum macht Sequel das?