View Issue Details

IDProjectCategoryView StatusLast Update
0009377Talerexchangepublic2025-05-10 02:11
Reporteroec Assigned ToChristian Grothoff Resolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicator 
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
PrioritynormalSeverityfeatureReproducibilityalways
Status closedResolutionfixed 
Product Versiongit (master) 
Target Version1.0Fixed in Version1.0 
Summary0009377: [withdraw] refactor error handling
DescriptionThe current error handling in taler-exchange-httpd_withdraw.c is not well aligned with idempotency-checks.
Some error conditions require an additional check for idempotency of the request before actually returning an error to the client.
These checks for idempotency are scattered across multiple functions. Future changes will have to take these into account and add additional calls to them.

We should refactor error handling in the code and make error its own state, adding the error-condition-specific witness data to the Withdraw context.
When handling that state, we can have -if applicable to that error condition- one idempotency check - only once.
Additional InformationThis is preliminary work for 9371
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Relationships

child of 0009371 closedoec Design and implement a unified /withdraw endpoint for age-withdraw and batch-withdraw 

Activities

oec

2024-12-11 15:39

developer   ~0023859

Last edited: 2024-12-11 16:41

commit 4f91bada4cc113bd4970e2d2f4a229d1fa3dea0b in branch dev/oec/issue9377
has a complete new structured error handling implemented in
src/exchange/taler-exchange-httpd_withdraw.c

`make check` in src/testing passes all tests with it.

oec

2024-12-17 12:09

developer   ~0023888

commit ea640ba2e9aebc71dbf6d368d7764e5ae6f1f3e9 in master has the new error handling.
make check in the exchange and merchant (modulo an expected failure in the wallet-harness tests) passed.

Issue History

Date ModifiedUsernameFieldChange
2024-12-10 15:59oecNew Issue
2024-12-10 15:59oecStatusnew => assigned
2024-12-10 15:59oecAssigned To => oec
2024-12-10 15:59oecRelationship addedchild of 0009371
2024-12-11 15:39oecAssigned Tooec => Christian Grothoff
2024-12-11 15:39oecStatusassigned => feedback
2024-12-11 15:39oecNote Added: 0023859
2024-12-11 16:41oecNote Edited: 0023859
2024-12-17 12:09oecStatusfeedback => informing
2024-12-17 12:09oecResolutionopen => fixed
2024-12-17 12:09oecNote Added: 0023888
2024-12-17 14:42Christian GrothoffFixed in Version => 1.0
2024-12-17 14:42Christian GrothoffTarget Version1.1 => 1.0
2025-05-10 02:11Christian GrothoffStatusinforming => closed