daml/ledger-api
tudor-da ae037ab5fd
Fail Akka sources with distinct throwables [DPP-1241] (#15084)
* On Dispatcher cancel, fail sources with distinct throwables

changelog_begin
Fixes an issue where failing multiple sources with the same StatusRuntimException
leads to an unhandled error in the gRPC serialization layer. This issue was
caused by serialization actually mutating the non-thread-safe io.grpc.Metadata
contained in the StatusRuntimeException.
changelog_end

* Fix ApiVersionService internalError

* Log error on ServerCall.close() errors

* Address Sergey's review comments

* Addressed more review comments

* Accessor method for call.close to bypass IllegalAccessErrors

* Use unique kill switches per stream in generated Akka Grpc streaming services

This change has two benefits:
- The error is logged only on an actual stream termination
- The throwable is not shared between streams, avoiding concurrent Metadata access errors

* Addressed Marton's review comments
2022-10-04 11:39:38 +00:00
..
grpc-definitions Contract Argument Blob API change for the Explicit Disclosure [DPP-1162] (#15012) 2022-09-27 14:30:47 +02:00
perf-testing Update scalafmt to 3.5.1. (#13584) 2022-04-28 09:57:04 +00:00
rs-grpc-akka Fail Akka sources with distinct throwables [DPP-1241] (#15084) 2022-10-04 11:39:38 +00:00
rs-grpc-bridge rs-grpc-bridge - Close gRPC client call when downstream cancels and no elements were received [KVL-1544] (#14771) 2022-08-23 12:41:19 +00:00
rs-grpc-testing-utils update copyright headers (#12240) 2022-01-03 16:36:51 +00:00
sample-service Update scalafmt to 3.5.1. (#13584) 2022-04-28 09:57:04 +00:00
scripts open-sourcing daml 2019-04-04 09:33:38 +01:00
testing-utils Repurpose templateId in ExerciseCommand and add interfaceId in ExerciseEvent (#13660) 2022-05-16 15:30:07 +00:00
.gitignore open-sourcing daml 2019-04-04 09:33:38 +01:00
.sbtopts open-sourcing daml 2019-04-04 09:33:38 +01:00
BUILD.bazel update copyright headers (#12240) 2022-01-03 16:36:51 +00:00
README.md Get rid of deprecated components (#12167) 2021-12-16 16:55:19 +00:00
VERSION Update Ledger API version and its documentation (#14986) 2022-09-09 10:23:58 +00:00

Ledger-API

This is the API code for the ledger, which contains:

  • gRPC API definitions
  • Generated Scala bindings and client
  • gRPC-RS bridge
  • gRPC-Akka bridge
  • Server API classes with validation
  • Prototype Server
  • Integration tests for all of the above

Documentation

The Ledger API Introduction contains introductory material as well as links to the protodocs reference documentation.

See the docs README for more about how to preview and publish documentation.