View Issue Details

IDProjectCategoryView StatusLast Update
0009016Talerexchangepublic2024-08-28 21:30
ReporterFlorian Dold Assigned ToFlorian Dold 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
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Target Version0.13Fixed in Version0.13 
Summary0009016: batch withdrawal is not idempotent
DescriptionDiscovered during testing hintNetworkAvailability on Android, which can interrupt and restart the withdrawal task of the wallet.

It should be expected that "/reserves/.../batch-withdraw" is idempotent. But making exactly the the same POST request twice results in a 409 status code from the exchange.

Reproducible via:
$ taler-harness run-integrationtests withdrawal-idempotent
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Activities

Florian Dold

2024-07-24 04:02

manager   ~0022843

commit 85e285f73337bbd93d6405ddcc1683d096b4ed95 (HEAD -> master, origin/master, origin/HEAD)
Author: Florian Dold <florian@dold.me>
Date: Wed Jul 24 05:59:39 2024 +0200

    fix withdrawal idempotency check
    
    * The idempotency check used a field that was redundant and improperly
      initialized
    * The idempotency check was not done after a failed reserve balance check

Issue History

Date ModifiedUsernameFieldChange
2024-07-16 23:59Florian DoldNew Issue
2024-07-16 23:59Florian DoldStatusnew => assigned
2024-07-16 23:59Florian DoldAssigned To => Christian Grothoff
2024-07-23 20:29Christian GrothoffAssigned ToChristian Grothoff => Florian Dold
2024-07-24 04:02Florian DoldStatusassigned => informing
2024-07-24 04:02Florian DoldResolutionopen => fixed
2024-07-24 04:02Florian DoldNote Added: 0022843
2024-08-26 20:29Christian GrothoffFixed in Version => 0.13
2024-08-28 21:30Christian GrothoffStatusinforming => closed