View Issue Details

IDProjectCategoryView StatusLast Update
0009033Talerwallet (Android App)public2025-04-09 17:24
Reporteravalos Assigned Toavalos  
PrioritylowSeverityminorReproducibilityhave not tried
Status assignedResolutionopen 
Product Versiongit (master) 
Target Version1.0 stretch goals 
Summary0009033: Investigate wallet app performance
DescriptionThe Android app sometimes feels noticeably slower compared to iOS and the web extension. All major instances of slowness must be identified, documented here in detail, and fixed.
TagsNo tags attached.

Activities

avalos

2024-08-30 10:10

developer   ~0023115

Here are some logs from a withdrawal from bank.test.taler.net that contains timestamps and useful info.
withdrawal.logcat (547,769 bytes)

Christian Grothoff

2025-04-04 13:31

manager   ~0024398

Christian will provide Ivan with a slow Android tablet for testing.

Christian Grothoff

2025-04-09 10:45

manager   ~0024464

I've put an unlocked (just swipe) Android tablet with a horribly slow Taler wallet installed on your desk at the office.

avalos

2025-04-09 16:08

developer   ~0024474

Last edited: 2025-04-09 16:15

`getWithdrawalDetailsForAmount` seems to be particularly slow in this tablet, taking a whopping of 3 seconds and 661 milliseconds.

(This is the request that runs every time the amount in the field is modified)
getWithdrawalDetailsForAmount.logcat (5,457 bytes)   
2025-04-09 15:54:17.266  2122-2149  BackendManager          net.taler.wallet.nightly             D  sending message:
                                                                                                    {
                                                                                                      "id": 12,
                                                                                                      "operation": "getWithdrawalDetailsForAmount",
                                                                                                      "args": {
                                                                                                        "exchangeBaseUrl": "https:\/\/exchange.taler-ops.ch\/",
                                                                                                        "amount": "CHF:0"
                                                                                                      }
                                                                                                    }
2025-04-09 15:54:17.276  2122-2148  BackendManager          net.taler.wallet.nightly             D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":12,"event":{"type":"request-start"}}}
2025-04-09 15:54:17.282  2122-2148  BackendManager          net.taler.wallet.nightly             D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":12,"event":{"type":"db-query-start","name":"<unknown>","location":"fetchAccount/fetchWithdrawalAccountInfo"}}}
2025-04-09 15:54:17.293  2122-2148  BackendManager          net.taler.wallet.nightly             D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":12,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"fetchAccount/fetchWithdrawalAccountInfo"}}}
2025-04-09 15:54:17.298  2122-2148  BackendManager          net.taler.wallet.nightly             D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":12,"event":{"type":"db-query-start","name":"<unknown>","location":"updateWithdrawalDenomsForExchange/getExchangeWithdrawalInfo"}}}
2025-04-09 15:54:19.280  2122-2148  BackendManager          net.taler.wallet.nightly             D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":12,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"updateWithdrawalDenomsForExchange/getExchangeWithdrawalInfo"}}}
2025-04-09 15:54:19.283  2122-2148  BackendManager          net.taler.wallet.nightly             D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":12,"event":{"type":"db-query-start","name":"<unknown>","location":"getWithdrawableDenoms/getExchangeWithdrawalInfo"}}}
2025-04-09 15:54:20.914  2122-2148  BackendManager          net.taler.wallet.nightly             D  message received: {"type":"response","operation":"getWithdrawalDetailsForAmount","id":12,"result":{"exchangeBaseUrl":"https://exchange.taler-ops.ch/","amountRaw":"CHF:0","amountEffective":"CHF:0","paytoUris":["payto://iban/CH6808573105529100001?receiver-name=Taler+Operations+AG&receiver-postal-code=2502&receiver-town=Biel-Bienne"],"tosAccepted":false,"withdrawalAccountsList":[{"status":"ok","paytoUri":"payto://iban/CH6808573105529100001?receiver-name=Taler%20Operations%20AG&receiver-postal-code=2502&receiver-town=Biel-Bienne&amount=CHF%3A0","transferAmount":"CHF:0","priority":0,"currencySpecification":{"name":"Swiss Francs","currency":"CHF","num_fractional_input_digits":2,"num_fractional_normal_digits":2,"num_fractional_trailing_zero_digits":2,"alt_unit_names":{"0":"Fr.","-2":"Rp."}},"creditRestrictions":[{"type":"regex","payto_regex":"payto://iban/CH.*","human_hint":"Swiss only","human_hint_i18n":{"de":"nur Schweizer Konten","fr":"Suisse uniquement"}}]}],"numCoins":0,"scopeInfo":{"currency":"CHF","type":"exchange","url":"https://exchange.taler-ops.ch/"},"kycHardLimit":"CHF:2500","kycSoftLimit":"CHF:1"}}
2025-04-09 15:54:20.918  2122-2148  BackendManager          net.taler.wallet.nightly             D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":12,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"getWithdrawableDenoms/getExchangeWithdrawalInfo"}}}
2025-04-09 15:54:20.923  2122-2148  BackendManager          net.taler.wallet.nightly             D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":12,"event":{"type":"message","contents":"Deleting clientCancelKey undefined to [object Object]"}}}
2025-04-09 15:54:20.927  2122-2148  BackendManager          net.taler.wallet.nightly             D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":12,"event":{"type":"request-finish-success","durationMs":3644}}}

avalos

2025-04-09 16:35

developer   ~0024475

The slow function is the DB transaction in `updateWithdrawalDenomsForExchange`, where there's this TODO:

// FIXME: Use denom groups to speed this up.

Christian Grothoff

2025-04-09 16:39

manager   ~0024476

Please also (re)try the initial denominations import, that was also super slow.

avalos

2025-04-09 16:41

developer   ~0024477

Importing the database you mean?

Christian Grothoff

2025-04-09 16:44

manager   ~0024478

No, *initial* scan of the withdraw-exchange QR code when we add the TOPS-exchange for the very first time. You'll need to delete the exchange first.

avalos

2025-04-09 16:54

developer   ~0024479

Last edited: 2025-04-09 16:57

Yes, that's exactly what I did.

It's in the withdrawal screen where this request is called both at startup and every time the input amount is edited by the user.
As per the logs, it's the slow request, all the other ones only taking a few milliseconds.

Christian Grothoff

2025-04-09 16:57

manager   ~0024480

Ok, but in that case it took like 30s, not the 3s for the withdraw calculation... So that should be a different code path that is also slow.

avalos

2025-04-09 16:58

developer   ~0024481

It's certainly not 30s, I tested with your slow tablet.

Christian Grothoff

2025-04-09 16:59

manager   ~0024482

It was >> 3s though...

avalos

2025-04-09 17:10

developer   ~0024485

Here's the full log file for an initial withdraw-exchange:
worse.logcat (30,771 bytes)   
2025-04-09 17:08:25.960  5218-5489  BackendManager          net.taler.wallet.fdroid              D  sending message:
                                                                                                    {
                                                                                                      "id": 45,
                                                                                                      "operation": "getBalances"
                                                                                                    }
2025-04-09 17:08:25.974  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getBalances","requestId":45,"event":{"type":"request-start"}}}
2025-04-09 17:08:25.984  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getBalances","requestId":45,"event":{"type":"db-query-start","name":"<unknown>","location":"getBalances/dispatchRequestInternal"}}}
2025-04-09 17:08:26.070  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"response","operation":"getBalances","id":45,"result":{"balances":[{"scopeInfo":{"currency":"KUDOS","type":"exchange","url":"https://exchange.demo.taler.net/"},"available":"KUDOS:30","pendingIncoming":"KUDOS:0","pendingOutgoing":"KUDOS:0","hasPendingTransactions":false,"requiresUserInput":false,"flags":[]}]}}
2025-04-09 17:08:26.074  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getBalances","requestId":45,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"getBalances/dispatchRequestInternal"}}}
2025-04-09 17:08:26.081  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getBalances","requestId":45,"event":{"type":"request-finish-success","durationMs":103}}}
2025-04-09 17:08:26.259  5218-5489  BackendManager          net.taler.wallet.fdroid              D  sending message:
                                                                                                    {
                                                                                                      "id": 46,
                                                                                                      "operation": "listExchanges"
                                                                                                    }
2025-04-09 17:08:26.267  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"listExchanges","requestId":46,"event":{"type":"request-start"}}}
2025-04-09 17:08:26.273  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"listExchanges","requestId":46,"event":{"type":"db-query-start","name":"<unknown>","location":"listExchanges/dispatchRequestInternal"}}}
2025-04-09 17:08:26.297  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"response","operation":"listExchanges","id":46,"result":{"exchanges":[{"exchangeBaseUrl":"https://exchange.demo.taler.net/","masterPub":"F80MFRG8HVH6R9CQ47KRFQSJP3T6DBJ4K1D9B703RJY3Z39TBMJ0","noFees":false,"peerPaymentsDisabled":false,"currency":"KUDOS","exchangeUpdateStatus":"ready","exchangeEntryStatus":"used","tosStatus":"proposed","ageRestrictionOptions":[],"paytoUris":["payto://iban/DE159593?receiver-name=Sandcastle+Echange+Inc"],"lastUpdateTimestamp":{"t_s":1744210189,"off_us":547000},"scopeInfo":{"currency":"KUDOS","type":"exchange","url":"https://exchange.demo.taler.net/"}}]}}
2025-04-09 17:08:26.304  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"listExchanges","requestId":46,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"listExchanges/dispatchRequestInternal"}}}
2025-04-09 17:08:26.308  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"listExchanges","requestId":46,"event":{"type":"request-finish-success","durationMs":31}}}
2025-04-09 17:08:26.386  5218-5489  BackendManager          net.taler.wallet.fdroid              D  sending message:
                                                                                                    {
                                                                                                      "id": 47,
                                                                                                      "operation": "prepareWithdrawExchange",
                                                                                                      "args": {
                                                                                                        "talerUri": "taler:\/\/withdraw-exchange\/exchange.taler-ops.ch\/"
                                                                                                      }
                                                                                                    }
2025-04-09 17:08:26.395  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"prepareWithdrawExchange","requestId":47,"event":{"type":"request-start"}}}
2025-04-09 17:08:26.401  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"prepareWithdrawExchange","requestId":47,"event":{"type":"db-query-start","name":"<unknown>","location":"startUpdateExchangeEntry/fetchFreshExchange"}}}
2025-04-09 17:08:26.423  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"prepareWithdrawExchange","requestId":47,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"startUpdateExchangeEntry/fetchFreshExchange"}}}
2025-04-09 17:08:26.429  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"exchange-state-transition","exchangeBaseUrl":"https://exchange.taler-ops.ch/","newExchangeState":{"exchangeEntryStatus":"ephemeral","exchangeUpdateStatus":"initial-update","tosStatus":"missing-tos"}}}
2025-04-09 17:08:26.434  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"prepareWithdrawExchange","requestId":47,"event":{"type":"db-query-start","name":"<unknown>","location":"startUpdateExchangeEntry"}}}
2025-04-09 17:08:26.462  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"prepareWithdrawExchange","requestId":47,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"startUpdateExchangeEntry"}}}
2025-04-09 17:08:26.468  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"exchange-state-transition","exchangeBaseUrl":"https://exchange.taler-ops.ch/","newExchangeState":{"exchangeEntryStatus":"ephemeral","exchangeUpdateStatus":"initial-update","tosStatus":"missing-tos"},"oldExchangeState":{"exchangeEntryStatus":"ephemeral","exchangeUpdateStatus":"initial-update","tosStatus":"missing-tos"}}}
2025-04-09 17:08:26.473  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"prepareWithdrawExchange","requestId":47,"event":{"type":"declare-task-dependency","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F"}}}
2025-04-09 17:08:26.480  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"prepareWithdrawExchange","requestId":47,"event":{"type":"task-reset","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F"}}}
2025-04-09 17:08:26.509  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"exchange-state-transition","exchangeBaseUrl":"https://exchange.taler-ops.ch/","oldExchangeState":{"exchangeEntryStatus":"ephemeral","exchangeUpdateStatus":"initial-update","tosStatus":"missing-tos"},"newExchangeState":{"exchangeEntryStatus":"ephemeral","exchangeUpdateStatus":"initial-update","tosStatus":"missing-tos"}}}
2025-04-09 17:08:26.514  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"idle"}}
2025-04-09 17:08:26.521  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"db-query-start","name":"<unknown>","location":"updateExchangeFromUrlHandler/callOperationHandlerForTaskId"}}}
2025-04-09 17:08:26.529  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"prepareWithdrawExchange","requestId":47,"event":{"type":"db-query-start","name":"<unknown>","location":"checkState/genericWaitForState"}}}
2025-04-09 17:08:26.535  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"idle"}}
2025-04-09 17:08:26.556  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"db-query-finish-success","name":"<unknown>","location":"updateExchangeFromUrlHandler/callOperationHandlerForTaskId"}}}
2025-04-09 17:08:26.561  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"id":"req-1002","when":{"t_ms":1744211306540},"type":"http-fetch-start","url":"https://exchange.taler-ops.ch/keys"}}}
2025-04-09 17:08:26.573  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"prepareWithdrawExchange","requestId":47,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"checkState/genericWaitForState"}}}
2025-04-09 17:08:28.130  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"id":"req-1002","when":{"t_ms":1744211307725},"type":"http-fetch-finish-success","url":"https://exchange.taler-ops.ch/keys","status":200}}}
2025-04-09 17:08:28.145  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"crypto-start","operation":"isValidGlobalFees"}}}
2025-04-09 17:08:28.153  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"crypto-finish-success","operation":"isValidGlobalFees"}}}
2025-04-09 17:08:28.157  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"crypto-start","operation":"isValidGlobalFees"}}}
2025-04-09 17:08:28.173  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"crypto-finish-success","operation":"isValidGlobalFees"}}}
2025-04-09 17:08:28.178  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"id":"req-1003","when":{"t_ms":1744211308164},"type":"http-fetch-start","url":"https://exchange.taler-ops.ch/terms"}}}
2025-04-09 17:08:28.719  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"id":"req-1003","when":{"t_ms":1744211308579},"type":"http-fetch-finish-success","url":"https://exchange.taler-ops.ch/terms","status":200}}}
2025-04-09 17:08:28.724  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"db-query-start","name":"<unknown>","location":"updateExchangeFromUrlHandler"}}}
2025-04-09 17:08:34.277  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"db-query-finish-success","name":"<unknown>","location":"updateExchangeFromUrlHandler"}}}
2025-04-09 17:08:34.281  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"db-query-start","name":"<unknown>","location":"updateWithdrawalDenomsForExchange/doAutoRefresh"}}}
2025-04-09 17:08:35.900  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"db-query-finish-success","name":"<unknown>","location":"updateWithdrawalDenomsForExchange/doAutoRefresh"}}}
2025-04-09 17:08:35.905  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"db-query-start","name":"<unknown>","location":"doAutoRefresh"}}}
2025-04-09 17:08:35.930  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"db-query-finish-success","name":"<unknown>","location":"doAutoRefresh"}}}
2025-04-09 17:08:35.935  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"exchange-state-transition","exchangeBaseUrl":"https://exchange.taler-ops.ch/","newExchangeState":{"exchangeEntryStatus":"ephemeral","exchangeUpdateStatus":"ready","tosStatus":"proposed"},"oldExchangeState":{"exchangeEntryStatus":"ephemeral","exchangeUpdateStatus":"initial-update","tosStatus":"missing-tos"}}}
2025-04-09 17:08:35.941  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"shepherd-task-result","resultType":"progress"}}}
2025-04-09 17:08:35.946  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"prepareWithdrawExchange","requestId":47,"event":{"type":"db-query-start","name":"<unknown>","location":"checkState/genericWaitForState"}}}
2025-04-09 17:08:35.956  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"db-query-start","name":"<unknown>","location":"updateExchangeFromUrlHandler/callOperationHandlerForTaskId"}}}
2025-04-09 17:08:35.970  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"response","operation":"prepareWithdrawExchange","id":47,"result":{"exchangeBaseUrl":"https://exchange.taler-ops.ch/"}}
2025-04-09 17:08:35.973  5218-5262  BackendManager          net.taler.wallet.fdroid              D  sending message:
                                                                                                    {
                                                                                                      "id": 48,
                                                                                                      "operation": "getExchangeEntryByUrl",
                                                                                                      "args": {
                                                                                                        "exchangeBaseUrl": "https:\/\/exchange.taler-ops.ch\/"
                                                                                                      }
                                                                                                    }
2025-04-09 17:08:35.975  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"prepareWithdrawExchange","requestId":47,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"checkState/genericWaitForState"}}}
2025-04-09 17:08:35.985  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"prepareWithdrawExchange","requestId":47,"event":{"type":"request-finish-success","durationMs":9579}}}
2025-04-09 17:08:35.996  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getExchangeEntryByUrl","requestId":48,"event":{"type":"request-start"}}}
2025-04-09 17:08:36.001  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getExchangeEntryByUrl","requestId":48,"event":{"type":"db-query-start","name":"<unknown>","location":"lookupExchangeByUri/dispatchRequestInternal"}}}
2025-04-09 17:08:36.008  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"db-query-finish-success","name":"<unknown>","location":"updateExchangeFromUrlHandler/callOperationHandlerForTaskId"}}}
2025-04-09 17:08:36.012  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"task-observability-event","taskId":"exchange-update:https%3A%2F%2Fexchange.taler-ops.ch%2F","event":{"type":"shepherd-task-result","resultType":"schedule-later"}}}
2025-04-09 17:08:36.028  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"response","operation":"getExchangeEntryByUrl","id":48,"result":{"exchangeBaseUrl":"https://exchange.taler-ops.ch/","masterPub":"9V0G82S7JQW2ZRYF7BMGKKQ1TNR1VNVXZJSNQ2VSDGWC80D9W0YG","noFees":true,"peerPaymentsDisabled":false,"currency":"CHF","exchangeUpdateStatus":"ready","exchangeEntryStatus":"ephemeral","tosStatus":"proposed","ageRestrictionOptions":[],"paytoUris":["payto://iban/CH6808573105529100001?receiver-name=Taler+Operations+AG&receiver-postal-code=2502&receiver-town=Biel-Bienne"],"lastUpdateTimestamp":{"t_s":1744211308,"off_us":730000},"scopeInfo":{"currency":"CHF","type":"exchange","url":"https://exchange.taler-ops.ch/"}}}
2025-04-09 17:08:36.033  5218-5262  BackendManager          net.taler.wallet.fdroid              D  sending message:
                                                                                                    {
                                                                                                      "id": 49,
                                                                                                      "operation": "getWithdrawalDetailsForAmount",
                                                                                                      "args": {
                                                                                                        "exchangeBaseUrl": "https:\/\/exchange.taler-ops.ch\/",
                                                                                                        "amount": "CHF:0"
                                                                                                      }
                                                                                                    }
2025-04-09 17:08:36.034  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getExchangeEntryByUrl","requestId":48,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"lookupExchangeByUri/dispatchRequestInternal"}}}
2025-04-09 17:08:36.042  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getExchangeEntryByUrl","requestId":48,"event":{"type":"request-finish-success","durationMs":46}}}
2025-04-09 17:08:36.050  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":49,"event":{"type":"request-start"}}}
2025-04-09 17:08:36.054  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":49,"event":{"type":"db-query-start","name":"<unknown>","location":"fetchAccount/fetchWithdrawalAccountInfo"}}}
2025-04-09 17:08:36.070  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":49,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"fetchAccount/fetchWithdrawalAccountInfo"}}}
2025-04-09 17:08:36.075  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":49,"event":{"type":"db-query-start","name":"<unknown>","location":"updateWithdrawalDenomsForExchange/getExchangeWithdrawalInfo"}}}
2025-04-09 17:08:37.614  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":49,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"updateWithdrawalDenomsForExchange/getExchangeWithdrawalInfo"}}}
2025-04-09 17:08:37.619  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":49,"event":{"type":"db-query-start","name":"<unknown>","location":"getWithdrawableDenoms/getExchangeWithdrawalInfo"}}}
2025-04-09 17:08:39.142  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"response","operation":"getWithdrawalDetailsForAmount","id":49,"result":{"exchangeBaseUrl":"https://exchange.taler-ops.ch/","amountRaw":"CHF:0","amountEffective":"CHF:0","paytoUris":["payto://iban/CH6808573105529100001?receiver-name=Taler+Operations+AG&receiver-postal-code=2502&receiver-town=Biel-Bienne"],"tosAccepted":false,"withdrawalAccountsList":[{"status":"ok","paytoUri":"payto://iban/CH6808573105529100001?receiver-name=Taler%20Operations%20AG&receiver-postal-code=2502&receiver-town=Biel-Bienne&amount=CHF%3A0","transferAmount":"CHF:0","priority":0,"currencySpecification":{"name":"Swiss Francs","currency":"CHF","num_fractional_input_digits":2,"num_fractional_normal_digits":2,"num_fractional_trailing_zero_digits":2,"alt_unit_names":{"0":"Fr.","-2":"Rp."}},"creditRestrictions":[{"type":"regex","payto_regex":"payto://iban/CH.*","human_hint":"Swiss only","human_hint_i18n":{"de":"nur Schweizer Konten","fr":"Suisse uniquement"}}]}],"numCoins":0,"scopeInfo":{"currency":"CHF","type":"exchange","url":"https://exchange.taler-ops.ch/"},"kycHardLimit":"CHF:2500","kycSoftLimit":"CHF:1"}}
2025-04-09 17:08:39.147  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":49,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"getWithdrawableDenoms/getExchangeWithdrawalInfo"}}}
2025-04-09 17:08:39.152  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":49,"event":{"type":"message","contents":"Deleting clientCancelKey undefined to [object Object]"}}}
2025-04-09 17:08:39.156  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getWithdrawalDetailsForAmount","requestId":49,"event":{"type":"request-finish-success","durationMs":3103}}}
2025-04-09 17:08:39.273  5218-5262  BackendManager          net.taler.wallet.fdroid              D  sending message:
                                                                                                    {
                                                                                                      "id": 50,
                                                                                                      "operation": "getExchangeEntryByUrl",
                                                                                                      "args": {
                                                                                                        "exchangeBaseUrl": "https:\/\/exchange.taler-ops.ch\/"
                                                                                                      }
                                                                                                    }
2025-04-09 17:08:39.282  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getExchangeEntryByUrl","requestId":50,"event":{"type":"request-start"}}}
2025-04-09 17:08:39.286  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getExchangeEntryByUrl","requestId":50,"event":{"type":"db-query-start","name":"<unknown>","location":"lookupExchangeByUri/dispatchRequestInternal"}}}
2025-04-09 17:08:39.302  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"response","operation":"getExchangeEntryByUrl","id":50,"result":{"exchangeBaseUrl":"https://exchange.taler-ops.ch/","masterPub":"9V0G82S7JQW2ZRYF7BMGKKQ1TNR1VNVXZJSNQ2VSDGWC80D9W0YG","noFees":true,"peerPaymentsDisabled":false,"currency":"CHF","exchangeUpdateStatus":"ready","exchangeEntryStatus":"ephemeral","tosStatus":"proposed","ageRestrictionOptions":[],"paytoUris":["payto://iban/CH6808573105529100001?receiver-name=Taler+Operations+AG&receiver-postal-code=2502&receiver-town=Biel-Bienne"],"lastUpdateTimestamp":{"t_s":1744211308,"off_us":730000},"scopeInfo":{"currency":"CHF","type":"exchange","url":"https://exchange.taler-ops.ch/"}}}
2025-04-09 17:08:39.305  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getExchangeEntryByUrl","requestId":50,"event":{"type":"db-query-finish-success","name":"<unknown>","location":"lookupExchangeByUri/dispatchRequestInternal"}}}
2025-04-09 17:08:39.309  5218-5260  BackendManager          net.taler.wallet.fdroid              D  message received: {"type":"notification","payload":{"type":"request-observability-event","operation":"getExchangeEntryByUrl","requestId":50,"event":{"type":"request-finish-success","durationMs":23}}}
worse.logcat (30,771 bytes)   

avalos

2025-04-09 17:24

developer   ~0024487

Analysing the full logs, it can be observed that:

1) Fetching the keys takes 1 second 569 milliseconds.
2) Fetching the contract terms takes no more than 541 milliseconds.
3) updateExchangeFromUrlHandler takes a monstruous 5 seconds 553 milliseconds.
4) updateWithdrawalDenomsForExchange/doAutoRefresh takes 1 second 619 milliseconds.
5) getWithdrawalDetailsForAmount takes a whopping 3 seconds 123 milliseconds.
6) Everything else is negligible.

Notably, (1) is much slower than (2).

Issue History

Date Modified Username Field Change
2024-07-31 18:59 avalos New Issue
2024-07-31 18:59 avalos Status new => assigned
2024-07-31 18:59 avalos Assigned To => avalos
2024-08-30 10:10 avalos Note Added: 0023115
2024-08-30 10:10 avalos File Added: withdrawal.logcat
2024-09-04 10:03 Christian Grothoff Product Version => git (master)
2024-09-04 10:03 Christian Grothoff Target Version 0.14 => 1.0 stretch goals
2024-12-27 14:56 Christian Grothoff Priority normal => low
2025-04-04 13:31 Christian Grothoff Note Added: 0024398
2025-04-04 13:31 Christian Grothoff Assigned To avalos => Christian Grothoff
2025-04-09 10:45 Christian Grothoff Assigned To Christian Grothoff => avalos
2025-04-09 10:45 Christian Grothoff Note Added: 0024464
2025-04-09 16:08 avalos Note Added: 0024474
2025-04-09 16:08 avalos File Added: getWithdrawalDetailsForAmount.logcat
2025-04-09 16:15 avalos Note Edited: 0024474
2025-04-09 16:35 avalos Note Added: 0024475
2025-04-09 16:39 Christian Grothoff Note Added: 0024476
2025-04-09 16:41 avalos Note Added: 0024477
2025-04-09 16:44 Christian Grothoff Note Added: 0024478
2025-04-09 16:54 avalos Note Added: 0024479
2025-04-09 16:56 avalos Note Edited: 0024479
2025-04-09 16:57 Christian Grothoff Note Added: 0024480
2025-04-09 16:57 avalos Note Edited: 0024479
2025-04-09 16:58 avalos Note Added: 0024481
2025-04-09 16:59 Christian Grothoff Note Added: 0024482
2025-04-09 17:10 avalos Note Added: 0024485
2025-04-09 17:10 avalos File Added: worse.logcat
2025-04-09 17:24 avalos Note Added: 0024487