View Issue Details

IDProjectCategoryView StatusLast Update
0011735Talerwallet (all platforms)public2026-08-20 17:34
Reportervecirex Assigned Tovecirex  
PriorityhighSeverityblockReproducibilityhave not tried
Status feedbackResolutionopen 
Summary0011735: Try to isolate performance issues observerd w/ Android Wallet v1.6.2 (google 86) against talersticker mytops shop
DescriptionTesting w/ our TOPS/CHF test shop "talersticker": https://taler-ops.ch/de/testshop.html

Time from QR code / order creation and visible paid status of orders in the amounts of CHF 0.04, CHF 0.44 and 4.44 took from a few seconds in the first case in total to almost a minute in the last case; the attempt to create an order w/ CHF 5.55 didn't reach the server even, Android continued spinning, "creating the order"; app had to be stopped by force.

It might be that I've a (grown) old, broken local DB on this production wallet: in any case, we must find out what happens here, and if this is by any means reproducible.
Steps To ReproduceServer-side issue seem unlikely, as steps where the server is involed always take clearly below 1s.

Also, what was tested (just to exclude more clearly):

- server restart didn't change anything
- restarting the taler components by restarting taler-merchant.target in between payments also didn't change the pattern
- restarting the app in between payments also didn't help

That is, also w/ other laddered orders (amounts increasing substantially), which could be paid, substantial speed degradation / increase in waiting time could be observed; if orders were created at all.
Tagsandroid, quality, wallet

Activities

vecirex

2026-08-19 21:38

administrator   ~0029517

Last edited: 2026-08-19 21:42

Issue can be confirmed to exist in current app versions, luckily real-world cases couldn't be observed to any systematic degree; just the recent talersticker tests clearly show the pattern, which is due to the wrong SQL implementation being used, which seems to be an issue reinroduced.

Via fdold, to test it works properly, payments can be tried with and without this env var set:

 export TALER_WALLET_MIGRATE_NATIVE_DB=1


Payment links which can be used in the stage env, to measure the diff (on it):

taler://pay-template/stage.my.taler-ops.ch/instances/tops/test_fixed_1
taler://pay-template/stage.my.taler-ops.ch/instances/tops/test_flexible_amount_1



After confirming this to solve the issue and given new app versions are immanent (app devs right now on it), ticket can soon be closed.

vecirex

2026-08-20 15:28

administrator   ~0029529

Last edited: 2026-08-20 15:31

Testing in wallet-cli, 1) without TALER_WALLET_MIGRATE_NATIVE_DB; ladder CHF:0.04 … CHF:44.44:

Amount    QR→paid   Claim    Wallet   Pay-call   Order ID
CHF:0.04     9.000s  0.016s   6.183s    0.271s   2026.232-DH9NQW0000000
CHF:0.44    14.000s  0.011s  10.770s    0.132s   2026.232-M67C3T0000000
CHF:4.44     9.000s  0.007s   5.749s    0.116s   2026.232-G63C41G000000
CHF:44.44   13.000s  0.008s  10.207s    0.123s   2026.232-YEF1YSR000000


Then in wallet-cli, 2) with export TALER_WALLET_MIGRATE_NATIVE_DB=1; ladder CHF:0.05 … CHF:55.55

Amount    QR→paid   Claim    Wallet   Pay-call   Order ID
CHF:0.05     4.000s  0.014s   1.929s    0.165s   2026.232-1EN52CR000000
CHF:0.55     5.000s  0.012s   2.339s    0.133s   2026.232-TV34CE0000000
CHF:5.55     3.000s  0.011s   1.206s    0.112s   2026.232-VNJ2VPG000000
CHF:55.55    3.000s  0.010s   1.073s    0.116s   2026.232-5HXKPER000000


Claim/Pay-call stay small; the win with migrate in wallet-cli is substantial (ca. 1–2 s vs ca. 6–11 s without; as for the amount range chosen).

vecirex

2026-08-20 17:16

administrator   ~0029530

iOS built from src in simulator also looks fine now:

Amount    QR→paid   Claim    Wallet   Pay-call   Order ID
CHF:0.06     4.000s  0.009s   0.755s    0.296s   2026.232-9QVCE10000000
CHF:0.66     4.000s  0.009s   1.553s    0.138s   2026.232-2H812H8000000
CHF:6.66     5.000s  0.016s   2.694s    0.139s   2026.232-8N0TW18000000
CHF:66.66    5.000s  0.011s   2.392s    0.122s   2026.232-67Z8QB8000000

vecirex

2026-08-20 17:33

administrator   ~0029531

Last edited: 2026-08-20 17:34

wallet-cli from master, just built, shows constant-time pattern as from QR code w/ specified amount, to shown as paid:

Amount    QR→paid   Claim    Wallet   Pay-call   Order ID
CHF:0.09     1.000s  0.008s   0.142s    0.283s   2026.232-WMKE15R000000
CHF:0.99     1.000s  0.006s   0.189s    0.135s   2026.232-RAPJ040000000
CHF:9.99     1.000s  0.006s   0.194s    0.128s   2026.232-FFPYK70000000
CHF:99.99    1.000s  0.005s   0.189s    0.131s   2026.232-CD9GW40000000

Issue History

Date Modified Username Field Change
2026-08-19 15:45 vecirex New Issue
2026-08-19 15:45 vecirex Tag Attached: android
2026-08-19 15:45 vecirex Tag Attached: quality
2026-08-19 15:45 vecirex Tag Attached: wallet
2026-08-19 15:46 vecirex Assigned To => vecirex
2026-08-19 15:46 vecirex Status new => assigned
2026-08-19 15:58 vecirex Description Updated
2026-08-19 15:58 vecirex Steps to Reproduce Updated
2026-08-19 21:38 vecirex Priority urgent => high
2026-08-19 21:38 vecirex Status assigned => feedback
2026-08-19 21:38 vecirex Note Added: 0029517
2026-08-19 21:39 vecirex Note Edited: 0029517
2026-08-19 21:39 vecirex Note Edited: 0029517
2026-08-19 21:42 vecirex Note Edited: 0029517
2026-08-20 15:28 vecirex Note Added: 0029529
2026-08-20 15:31 vecirex Note Edited: 0029529
2026-08-20 15:31 vecirex Note Edited: 0029529
2026-08-20 17:16 vecirex Note Added: 0029530
2026-08-20 17:33 vecirex Note Added: 0029531
2026-08-20 17:34 vecirex Note Edited: 0029531
2026-08-20 17:34 vecirex Note Edited: 0029531