Comments (7)
It should be possible to update the Kingdom using the ComputationLogEntries
service. Adding a log entry with an error type of PERMANENT
should put the parent Computation into the FAILED
state.
See computation_log_entry.proto.
from cross-media-measurement.
I would prefer to add another method in the ComputationsService.
It is a little weird to call one service to set computation result, and call another one to fail a computation. Using ComputationLogEntriesService to fail a computation is like a side effect of logging an error.
from cross-media-measurement.
I don't think another method is needed, given the following two properties:
- If there's a
ComputationLogEntry
indicating a permanent failure, theComputation
should be in theFAILED
state. Otherwise, the state is inconsistent. - If the
Computation
has failed due to an unexpected error from a Duchy, there should be a correspondingComputationLogEntry
.
An alternative is to drop the error type from ComputationLogEntry
and instead have failure information represented in the ComputationParticipant
. This would be closer to how Requisition refusal works, where the Requisition has refusal details and refusing a Requisition fails the parent Computation/Measurement.
from cross-media-measurement.
I like the idea of moving the permanent failure to ComputationParticipant.
from cross-media-measurement.
CC @efoxepstein who initially added report log entries.
from cross-media-measurement.
I feel like we want to track error types in ComputationLogEntry
too to make it easier to correlate log entries with what went wrong. That said, we could keep the source of truth for the current state at the ComputationParticipant
level.
from cross-media-measurement.
FYI, currently all logging rpcs from the duchy to the kingdom are try-and-ignore-failure style. In other words, if a CreateComputationLogEntry rpc fails, the mill won't revert local changes and retry again later.
When we use the ComputationParticipant to fail a computation, we need to make sure the rpc succeeds.
from cross-media-measurement.
Related Issues (20)
- Panel exchange daemon images have old, vulnerable library dependencies HOT 1
- Requisition.encrypted_requisition_spec_ciphertext field is not populated
- MeasurementSpec.serialized_measurement_public_key field is not populated
- Move non-secret files from K8s Secret to ConfigMap
- Internal Measurement state transitions to SUCCEEDED are not logged for MPC computations
- AWS Terraform config for test environment does not include resources for metrics
- Metric State can be incorrectly set to SUCCEEDED.
- Fix code scanning alert - harfbuzz: allows attackers to trigger O(n^2) growth via consecutive marks HOT 1
- Mills cannot claim tasks due to failed Computation that is accidentally enqueued HOT 1
- Duchy Mill Memory Leakage HOT 1
- New computations is starving in init stage HOT 1
- Rpc calls raise error DEADLINE_EXCEEDED in Duchy HOT 3
- Duchy mill writing output blob error should be transient. HOT 2
- Kingdom could tolerate duplicated SetParticipantRequisitionParams request HOT 4
- EKS Duchy internal server periodically loses Postgres access
- Measurement update_time/etag not updated for child resource updates
- Exchanges deletion cronjob exhausts DB connections HOT 1
- Reduce instances of Reporting ListEventGroups returning 0 results and next_page_token HOT 3
- Avoid failing Measurements at Duchy due to stale ComputationParticipant state
- Stop calling Kingdom from Duchy internal services
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cross-media-measurement.