2017-05-10 1 views
0

Je suis en cours d'exécution dans un problème où mix test omet de façon sporadique sur CircleCI avec l'erreur suivante:Augmentation délai d'attente de la base de données Postgrex pendant les tests de CircleCI

16:46:05.935 [error] Postgrex.Protocol (#PID<0.9303.0>) disconnected: ** (DBConnection.ConnectionError) owner #PID<0.73.0> timed out because it owned the connection for longer than 15000ms

J'ai essayé d'augmenter le délai dans ma config de test à ceci:

config :my_app, MyApp.Repo, 
    adapter: Ecto.Adapters.Postgres, 
    database: System.get_env("DB_NAME"), 
    username: System.get_env("DB_USER"), 
    password: System.get_env("DB_PASS"), 
    hostname: System.get_env("DB_HOST"), 
    pool: Ecto.Adapters.SQL.Sandbox, 
    timeout: 30000 

Mais il est toujours temps de sortir après 15000ms avec ce en place. Y a-t-il un autre paramètre que je devrais rechercher?

+0

Pourriez-vous essayer la mise 'ownership_timeout: 30_000' aussi bien? – Dogbert

Répondre

3

Vous devez augmenter le ownership_timeout ici, pas timeout. Ceci est documenté dans le module doc de Ecto.Adapters.SQL.Sandbox dans la section owner timed out because it owned the connection for longer than Nms:

If you have a long running test (or you’re debugging with IEx.pry), the timeout for the connection ownership may be too short. You can increase the timeout by setting the :ownership_timeout options for your repo config in config/config.exs (or preferably in config/test.exs):