Hola gente,
Tengo una app sinatra con sequel que viene funcionando bien hace ya tiempo en Heroku con la siguiente configuración :
dyno: 1 - worker process: 1 - db_pool_size: 5 - max_threads: 5
Pero cuando intento aumentar el worker process: 2 o dyno : 2 obtengo un error apenas me logueo.
El error se da cuando inicio sesión con la base de datos usando sesiones sinatra
use Rack :: Session :: Pool
Error se produce en cuanto aumento worker process a 2 o dyno a 2
La misma app anda bien con:
dyno: 1 - worker process: 1 - db_pool_size: 5 - max_threads: 5
Pero da error con:
dyno: 1 - worker process: 2 - db_pool_size: 5 - max_threads: 5
dyno: 2 - worker process: 1 - db_pool_size: 5 - max_threads: 5
Si accedo a la base de datos fuera de Rack :: Session :: Pool, no tengo problemas para acceder a las tablas, pero cuando inicio sesión con cualquier usuario, inmediatamente aparece el error:
ERROR : Sequel :: DatabaseDisconnectError - PG :: ConnectionBad:
PQconsumeInput () SSL error: decryption failed or bad record mac
e inmediatamente me vuelve al root impidiendo el log.
Mi sesión de rack sinatra :
class Main <Sinatra :: Aplicación
use Rack :: Session :: Pool
set: protection ,: except =>: frame_options
final
Mi conexión de sequel:
pool_size = 5
@ db = Sequel.connect (strConexion ,: max_connections => pool_size )
También intente agregar:
@ db.extension (: connection_validator)
@ db.pool.connection_validation_timeout = -1
Mi puma.rb:
workers Integer (ENV ['WEB_CONCURRENCY'] || 1)
threads_count = Integer (ENV ['MAX_THREADS'] || 5)
threads threads_count, threads_count
preload_app!
rackup DefaultRackup
port ENV ['PORT'] || 3000