diff --git a/CODEOWNERS b/CODEOWNERS index aa9eba72d9..075a14ad18 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -47,8 +47,10 @@ NOTICES @garyverhaegen-da @dasormeter /ledger/participant-state/src @meiersi-da @digital-asset/kv-participant @digital-asset/kv-committer # Needs cleanup due to mix of kvutils implementation and interfaces. Until then: shared ownership for KV teams -/ledger/participant-state/ @digital-asset/kv-participant @digital-asset/kv-committer -/ledger/participant-state-metrics/ @digital-asset/kv-participant @digital-asset/kv-committer +/ledger/participant-state/ @digital-asset/kv-participant @digital-asset/kv-committer +/ledger/participant-state-index/ @digital-asset/kv-participant @digital-asset/kv-committer +/ledger/participant-state-kv-errors/ @digital-asset/kv-participant @digital-asset/kv-committer +/ledger/participant-state-metrics/ @digital-asset/kv-participant @digital-asset/kv-committer /ledger/participant-state/kvutils/tools/submission-entries-extractor/ @remyhaemmerle-da # Owned by KV Participant with KV Committer added for notifications diff --git a/docs/resources/generated-error-pages/error-codes-inventory.rst.inc b/docs/resources/generated-error-pages/error-codes-inventory.rst.inc index 835cc1abab..74591a49af 100755 --- a/docs/resources/generated-error-pages/error-codes-inventory.rst.inc +++ b/docs/resources/generated-error-pages/error-codes-inventory.rst.inc @@ -1,10 +1,10 @@ -1. KVErrors +1. KvErrors =================================================================================================================== Errors that are specific to ledgers based on the KV architecture: Daml Sandbox and VMBC. -1.1. KVErrors / Consistency +1.1. KvErrors / Consistency =================================================================================================================== Errors that highlight transaction consistency issues in the committer context. @@ -26,7 +26,7 @@ VALIDATION_FAILURE -1.2. KVErrors / Internal +1.2. KvErrors / Internal =================================================================================================================== Errors that arise from an internal system misbehavior. @@ -96,7 +96,7 @@ SUBMISSION_FAILED -1.3. KVErrors / Resources +1.3. KvErrors / Resources =================================================================================================================== Errors that relate to system resources. @@ -118,7 +118,7 @@ RESOURCE_EXHAUSTED -1.4. KVErrors / Time +1.4. KvErrors / Time =================================================================================================================== Errors that relate to the Daml concepts of time. diff --git a/ledger/participant-state-kv-errors/BUILD.bazel b/ledger/participant-state-kv-errors/BUILD.bazel new file mode 100644 index 0000000000..fcf048e663 --- /dev/null +++ b/ledger/participant-state-kv-errors/BUILD.bazel @@ -0,0 +1,21 @@ +# Copyright (c) 2022 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +load( + "//bazel_tools:scala.bzl", + "da_scala_library", +) + +da_scala_library( + name = "participant-state-kv-errors", + srcs = glob(["src/main/scala/**/*.scala"]), + tags = ["maven_coordinates=com.daml:participant-state-kv-errors:__VERSION__"], + visibility = [ + "//visibility:public", + ], + runtime_deps = [], + deps = [ + "//ledger-api/grpc-definitions:ledger_api_proto_scala", + "//ledger/error", + ], +) diff --git a/ledger/participant-state/kvutils/src/main/scala/com/daml/ledger/participant/state/kvutils/errors/KVLoggingTransactionErrorImpl.scala b/ledger/participant-state-kv-errors/src/main/scala/com/daml/ledger/error/definitions/kv/KVLoggingTransactionErrorImpl.scala similarity index 92% rename from ledger/participant-state/kvutils/src/main/scala/com/daml/ledger/participant/state/kvutils/errors/KVLoggingTransactionErrorImpl.scala rename to ledger/participant-state-kv-errors/src/main/scala/com/daml/ledger/error/definitions/kv/KVLoggingTransactionErrorImpl.scala index 0954aa2b5f..a93b98a59d 100644 --- a/ledger/participant-state/kvutils/src/main/scala/com/daml/ledger/participant/state/kvutils/errors/KVLoggingTransactionErrorImpl.scala +++ b/ledger/participant-state-kv-errors/src/main/scala/com/daml/ledger/error/definitions/kv/KVLoggingTransactionErrorImpl.scala @@ -1,7 +1,7 @@ // Copyright (c) 2022 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. // SPDX-License-Identifier: Apache-2.0 -package com.daml.ledger.participant.state.kvutils.errors +package com.daml.ledger.error.definitions.kv import com.daml.error.definitions.DamlErrorWithDefiniteAnswer import com.daml.error.{ContextualizedErrorLogger, ErrorCode} diff --git a/ledger/participant-state/kvutils/src/main/scala/com/daml/ledger/participant/state/kvutils/errors/KVErrors.scala b/ledger/participant-state-kv-errors/src/main/scala/com/daml/ledger/error/definitions/kv/KvErrors.scala similarity index 98% rename from ledger/participant-state/kvutils/src/main/scala/com/daml/ledger/participant/state/kvutils/errors/KVErrors.scala rename to ledger/participant-state-kv-errors/src/main/scala/com/daml/ledger/error/definitions/kv/KvErrors.scala index 4dd336a472..270665f578 100644 --- a/ledger/participant-state/kvutils/src/main/scala/com/daml/ledger/participant/state/kvutils/errors/KVErrors.scala +++ b/ledger/participant-state-kv-errors/src/main/scala/com/daml/ledger/error/definitions/kv/KvErrors.scala @@ -1,11 +1,9 @@ // Copyright (c) 2022 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved. // SPDX-License-Identifier: Apache-2.0 -package com.daml.ledger.participant.state.kvutils.errors +package com.daml.ledger.error.definitions.kv import com.daml.error.definitions.ErrorGroups - -import java.time.Instant import com.daml.error.{ ContextualizedErrorLogger, ErrorCategory, @@ -15,10 +13,12 @@ import com.daml.error.{ Resolution, } +import java.time.Instant + @Explanation( "Errors that are specific to ledgers based on the KV architecture: Daml Sandbox and VMBC." ) -object KVErrors extends ErrorGroup()(ErrorGroups.rootErrorClass) { +object KvErrors extends ErrorGroup()(ErrorGroups.rootErrorClass) { @Explanation("Errors that highlight transaction consistency issues in the committer context.") object Consistency extends ErrorGroup() { diff --git a/ledger/participant-state/kvutils/BUILD.bazel b/ledger/participant-state/kvutils/BUILD.bazel index 8309127bc6..e9b07543bf 100644 --- a/ledger/participant-state/kvutils/BUILD.bazel +++ b/ledger/participant-state/kvutils/BUILD.bazel @@ -56,6 +56,7 @@ da_scala_library( "//ledger/metrics", "//ledger/participant-state", "//ledger/participant-state-index", + "//ledger/participant-state-kv-errors", "//libs-scala/concurrent", "//libs-scala/contextualized-logging", "//libs-scala/crypto", diff --git a/ledger/participant-state/kvutils/src/main/scala/com/daml/ledger/participant/state/kvutils/api/KeyValueParticipantStateWriter.scala b/ledger/participant-state/kvutils/src/main/scala/com/daml/ledger/participant/state/kvutils/api/KeyValueParticipantStateWriter.scala index 3c9ef062e1..2809fb4ccb 100644 --- a/ledger/participant-state/kvutils/src/main/scala/com/daml/ledger/participant/state/kvutils/api/KeyValueParticipantStateWriter.scala +++ b/ledger/participant-state/kvutils/src/main/scala/com/daml/ledger/participant/state/kvutils/api/KeyValueParticipantStateWriter.scala @@ -10,8 +10,8 @@ import com.daml.daml_lf_dev.DamlLf import com.daml.error.DamlContextualizedErrorLogger import com.daml.ledger.api.health.HealthStatus import com.daml.ledger.configuration.Configuration +import com.daml.ledger.error.definitions.kv.KvErrors import com.daml.ledger.offset.Offset -import com.daml.ledger.participant.state.kvutils.errors.KVErrors import com.daml.ledger.participant.state.kvutils.wire.DamlSubmission import com.daml.ledger.participant.state.kvutils.{Envelope, KeyValueSubmission} import com.daml.ledger.participant.state.v2._ @@ -79,7 +79,7 @@ class KeyValueParticipantStateWriter( case Left(_) => CompletableFuture.completedFuture( SubmissionResult.SynchronousError( - KVErrors.Internal.SubmissionFailed + KvErrors.Internal.SubmissionFailed .Reject("Could not parse a package ID")( new DamlContextualizedErrorLogger(logger, loggingContext, None) ) diff --git a/ledger/participant-state/kvutils/src/main/scala/com/daml/ledger/participant/state/kvutils/updates/TransactionRejections.scala b/ledger/participant-state/kvutils/src/main/scala/com/daml/ledger/participant/state/kvutils/updates/TransactionRejections.scala index 4ef1ae8904..7d3f81e01e 100644 --- a/ledger/participant-state/kvutils/src/main/scala/com/daml/ledger/participant/state/kvutils/updates/TransactionRejections.scala +++ b/ledger/participant-state/kvutils/src/main/scala/com/daml/ledger/participant/state/kvutils/updates/TransactionRejections.scala @@ -3,16 +3,16 @@ package com.daml.ledger.participant.state.kvutils.updates -import com.daml.error.definitions.LedgerApiErrors - import java.time.Instant + import com.daml.error.ContextualizedErrorLogger +import com.daml.error.definitions.LedgerApiErrors +import com.daml.ledger.error.definitions.kv.KvErrors import com.daml.ledger.participant.state.kvutils.Conversions.parseCompletionInfo import com.daml.ledger.participant.state.kvutils.committer.transaction.Rejection.{ ExternallyInconsistentTransaction, InternallyInconsistentTransaction, } -import com.daml.ledger.participant.state.kvutils.errors.KVErrors import com.daml.ledger.participant.state.kvutils.store.events._ import com.daml.ledger.participant.state.v2.Update import com.daml.ledger.participant.state.v2.Update.CommandRejected.FinalReason @@ -38,7 +38,7 @@ private[kvutils] object TransactionRejections { rejectionEntry.getSubmitterInfo, ), reasonTemplate = FinalReason( - KVErrors.Time.InvalidRecordTime + KvErrors.Time.InvalidRecordTime .Reject( rejectionEntry.getDefiniteAnswer, invalidRecordTimeReason(recordTime, tooEarlyUntil, tooLateFrom), @@ -70,7 +70,7 @@ private[kvutils] object TransactionRejections { } def rejectionReasonNotSetStatus()(implicit loggingContext: ContextualizedErrorLogger): Status = - KVErrors.Internal.RejectionReasonNotSet + KvErrors.Internal.RejectionReasonNotSet .Reject() .asStatus @@ -79,7 +79,7 @@ private[kvutils] object TransactionRejections { )(implicit loggingContext: ContextualizedErrorLogger): Status = { val details = rejection.getDetails val metadata = rejection.getMetadataMap.asScala.toMap - KVErrors.Internal.InvalidParticipantState + KvErrors.Internal.InvalidParticipantState .Reject(details, metadata) .asStatus } @@ -105,7 +105,7 @@ private[kvutils] object TransactionRejections { def causalMonotonicityViolatedStatus()(implicit loggingContext: ContextualizedErrorLogger ): Status = - KVErrors.Time.CausalMonotonicityViolated + KvErrors.Time.CausalMonotonicityViolated .Reject() .asStatus @@ -122,7 +122,7 @@ private[kvutils] object TransactionRejections { rejection.getMaximumRecordTime.getSeconds, rejection.getMaximumRecordTime.getNanos.toLong, ) - KVErrors.Time.RecordTimeOutOfRange + KvErrors.Time.RecordTimeOutOfRange .Reject(minRecordTime, maxRecordTime) .asStatus } @@ -150,7 +150,7 @@ private[kvutils] object TransactionRejections { rejection: MissingInputState )(implicit loggingContext: ContextualizedErrorLogger): Status = { val key = rejection.getKey.toString - KVErrors.Internal.MissingInputState + KvErrors.Internal.MissingInputState .Reject(key) .asStatus } @@ -171,7 +171,7 @@ private[kvutils] object TransactionRejections { rejection: ValidationFailure )(implicit loggingContext: ContextualizedErrorLogger): Status = { val details = rejection.getDetails - KVErrors.Consistency.ValidationFailure + KvErrors.Consistency.ValidationFailure .Reject(details) .asStatus } @@ -234,7 +234,7 @@ private[kvutils] object TransactionRejections { rejection: ResourcesExhausted )(implicit loggingContext: ContextualizedErrorLogger): Status = { val details = rejection.getDetails - KVErrors.Resources.ResourceExhausted + KvErrors.Resources.ResourceExhausted .Reject(details) .asStatus } diff --git a/release/artifacts.yaml b/release/artifacts.yaml index e6de2bce30..75b3893c08 100644 --- a/release/artifacts.yaml +++ b/release/artifacts.yaml @@ -159,6 +159,8 @@ type: jar-scala - target: //ledger/participant-state-index:participant-state-index type: jar-scala +- target: //ledger/participant-state-kv-errors:participant-state-kv-errors + type: jar-scala - target: //ledger/participant-state-metrics:participant-state-metrics type: jar-scala - target: //ledger/sandbox-common:sandbox-common