From d3b14106a9c1ba4855b94bcb5cfef37028706d83 Mon Sep 17 00:00:00 2001 From: Quentin Machu Date: Fri, 5 Feb 2016 18:08:23 -0500 Subject: [PATCH] database: ignore insertLayer collisions to make it truly idempotent --- database/pgsql/layer.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/database/pgsql/layer.go b/database/pgsql/layer.go index cf0200ba..b5bd7342 100644 --- a/database/pgsql/layer.go +++ b/database/pgsql/layer.go @@ -265,6 +265,11 @@ func (pgSQL *pgSQL) InsertLayer(layer database.Layer) error { Scan(&layer.ID) if err != nil { tx.Rollback() + + if isErrUniqueViolation(err) { + // Ignore this error, another process collided. + return nil + } return handleError("i_layer", err) } } else {