Open
Description
We have tens of occurences of this error for different clients:
com.snowplowanalytics.snowplow.rdbloader.LoaderError$StorageTargetError: Database error: [Amazon](500310) Invalid operation: 1023
Details: Serializable isolation violation on table - 100167, transactions forming the cycle are: 55705701, 55705754 (pid:16606);
at com.snowplowanalytics.snowplow.rdbloader.dsl.JDBC$$anon$1.$anonfun$executeUpdate$1(JDBC.scala:165)
at raiseError @ retry.package$.retry$package$$retryingOnSomeErrorsImpl(package.scala:81)
at map @ com.snowplowanalytics.iglu.client.Client$.parseDefault(Client.scala:56)
at tailRecM @ retry.package$RetryingOnSomeErrorsPartiallyApplied.apply(package.scala:96)
at blockOn$extension @ doobie.free.KleisliInterpreter.$anonfun$primitive$1(kleisliinterpreter.scala:112)
at $anonfun$tailRecM$1 @ doobie.util.transactor$Transactor$$anon$4.$anonfun$apply$4(transactor.scala:167)
at tailRecM @ retry.package$RetryingOnSomeErrorsPartiallyApplied.apply(package.scala:96)
at tailRecM @ retry.package$RetryingOnSomeErrorsPartiallyApplied.apply(package.scala:96)
To me it looks like Loader's COPY
transaction races with another client's transaction. Or maybe our retry mechanism somehow runs parallel transaction? If former case - we can handle it with a plain failure handler, retrying the whole loading a bit later.