View Issue Details

IDProjectCategoryView StatusLast Update
0006581Talermerchant backendpublic2021-09-02 16:23
ReporterFlorian Dold 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
PrioritynormalSeverityfeatureReproducibilityhave not tried
Status closedResolutionfixed 
Product Versiongit (master) 
Target Version0.8Fixed in Version0.8 
Summary0006581: long polling on /orders/{order_id} must return when already_paid_order_id becomes available [test needed]
DescriptionCurrently, the request blocks even if the wallet pays for the same fulfillment_url in the current session for an existing order.

This causes the re-purchase detection flow to now work unless the page is manually refreshed.
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Activities

Christian Grothoff

2020-09-07 12:07

manager   ~0016900

Assuming this was in conjunction with a /paid request, this should be fixed in f19e58b..229fbc1.

I looked at the /pay code, there it seems everything was already OK.

Did NOT test, as I am not sure what you did to produce the issue in the first place.

Christian Grothoff

2020-09-09 08:42

manager   ~0016943

Florian reports this is fixed.

Florian Dold

2020-09-09 08:45

manager   ~0016944

It's actually not! I still have to manually refresh the page, as the long-polling request made by the JavaScript on the page doesn't return.

Florian Dold

2020-09-09 08:49

manager   ~0016945

(To reproduce, but article on shop.test.taler.net, delete cookies, refresh page, pay again. Instead of the page auto-refreshing, you have to refresh manually after scanning the QR code. Looking at the dev tools, the long-polling request doesn't return a response, even though it should!)

Christian Grothoff

2020-09-09 21:19

manager   ~0016954

I've implemented a fix for this in 7302e0c..e12f64d. Untested, and needs testcase.

I will test next, and if it works this will do for 0.8.0.

Jonathan: please (eventually) implement a test for this in test_merchant_api.c (for 0.8.1) -- we don't want to see regressions on this stuff!

Christian Grothoff

2020-09-09 23:07

manager   ~0016955

Ok, finally got it to work. Jonathan: please do write tests with good coverage for the repurchase detection logic.
See diff from 7302e0cc35bd3de6e84fa1310be094243372a3bc..a29e81dd6356a9897c6eb299feee80a173f60562 for relevant code paths.

Christian Grothoff

2020-10-21 09:35

manager   ~0017032

3a74de2..1d63050 adds the missing test logic.

Christian Grothoff

2021-09-02 16:23

manager   ~0018367

Fix committed to master branch.

Issue History

Date ModifiedUsernameFieldChange
2020-09-07 09:48Florian DoldNew Issue
2020-09-07 09:48Florian DoldStatusnew => assigned
2020-09-07 09:48Florian DoldAssigned To => Christian Grothoff
2020-09-07 12:07Christian GrothoffNote Added: 0016900
2020-09-07 12:07Christian GrothoffAssigned ToChristian Grothoff => Florian Dold
2020-09-07 12:07Christian GrothoffStatusassigned => feedback
2020-09-09 08:42Christian GrothoffStatusfeedback => informing
2020-09-09 08:42Christian GrothoffResolutionopen => fixed
2020-09-09 08:42Christian GrothoffFixed in Version => 0.8
2020-09-09 08:42Christian GrothoffNote Added: 0016943
2020-09-09 08:45Florian DoldNote Added: 0016944
2020-09-09 08:45Florian DoldStatusinforming => assigned
2020-09-09 08:49Florian DoldNote Added: 0016945
2020-09-09 08:49Florian DoldAssigned ToFlorian Dold => Christian Grothoff
2020-09-09 21:19Christian GrothoffNote Added: 0016954
2020-09-09 21:19Christian GrothoffFixed in Version0.8 =>
2020-09-09 23:07Christian GrothoffNote Added: 0016955
2020-09-09 23:07Christian GrothoffAssigned ToChristian Grothoff => jonathanbuchanan
2020-09-09 23:07Christian GrothoffSeverityminor => tweak
2020-09-09 23:07Christian GrothoffTarget Version0.8 => 0.8.1
2020-09-09 23:07Christian GrothoffSummarylong polling on /orders/{order_id} must return when already_paid_order_id becomes available => long polling on /orders/{order_id} must return when already_paid_order_id becomes available [test needed]
2020-10-11 18:59Christian GrothoffAssigned Tojonathanbuchanan => Christian Grothoff
2020-10-11 19:00Christian GrothoffSeveritytweak => feature
2020-10-21 09:35Christian GrothoffStatusassigned => informing
2020-10-21 09:35Christian GrothoffFixed in Version => 0.8
2020-10-21 09:35Christian GrothoffNote Added: 0017032
2020-10-21 09:35Christian GrothoffTarget Version0.8.1 => 0.8
2021-08-24 14:23Christian GrothoffStatusinforming => closed
2021-09-02 16:22Christian Grothoff
2021-09-02 16:23Christian GrothoffNote Added: 0018367
2025-03-22 13:09Christian GrothoffCategorymechant backend => merchant backend