Move KVErrors to participant-state-kv-errors [KVL-1371] (#13604)

CHANGELOG_BEGIN
CHANGELOG_END
This commit is contained in:
Hubert Slojewski 2022-04-19 15:22:31 +02:00 committed by GitHub
parent ac8343fa7b
commit 16a97e8715
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 51 additions and 25 deletions

View File

@ -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

View File

@ -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.

View File

@ -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",
],
)

View File

@ -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}

View File

@ -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() {

View File

@ -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",

View File

@ -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)
)

View File

@ -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
}

View File

@ -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