View Issue Details

IDProjectCategoryView StatusLast Update
0008911Talerwallet (Android App)public2024-07-26 00:12
ReporterFlorian Dold Assigned Toavalos  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Target Version0.12Fixed in Version0.12 
Summary0008911: transaction details page sometimes does not automatically update
Description... particularly with withdrawal transactions.

The transaction transitions to done (or at least pending(exchange-wait-reserve), but the details page doesn't update automatically.
TagsNo tags attached.

Activities

avalos

2024-06-19 19:56

developer   ~0022675

It appears that now the cause is the socket timing out in some occasions:

Exception handling HTTP response
io.ktor.client.network.sockets.SocketTimeoutException: Socket timeout has expired [url=https://bank.taler.ar/taler-integration/withdrawal-operation/2b7be193-4536-4a65-9555-1f29beb0cdc3?long_poll_ms=30000&old_state=selected, socket_timeout=unknown] ms
    at io.ktor.client.plugins.HttpTimeoutKt.SocketTimeoutException(HttpTimeout.kt:239)
    at io.ktor.client.engine.okhttp.OkUtilsKt.mapOkHttpException(OkUtils.kt:80)
    at io.ktor.client.engine.okhttp.OkUtilsKt.access$mapOkHttpException(OkUtils.kt:1)
    at io.ktor.client.engine.okhttp.OkHttpCallback.onFailure(OkUtils.kt:39)
    at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:525)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    at java.lang.Thread.run(Thread.java:920)

In Ktor (the HTTP client we're using), there are three different types of timeouts:

- request timeout — a time period required to process an HTTP call: from sending a request to receiving a response.
- connection timeout — a time period in which a client should establish a connection with a server.
- socket timeout — a maximum time of inactivity between two data packets when exchanging data with a server.

https://ktor.io/docs/client-timeout.html

However, wallet-core only sends a single generic timeout.

Should I set all the timeouts above to the value that wallet-core passes along with the request?

Florian Dold

2024-06-19 20:58

manager   ~0022677

That would be requestTimeoutMillis, i.e. the timeout for the entire HTTP request.

avalos

2024-06-19 21:32

developer   ~0022680

What should I set the other two? 2 minutes? Infinity?

Florian Dold

2024-06-20 11:31

manager   ~0022683

Infinity, we don't care about the other timeouts, only the end-to-end timeout.

avalos

2024-06-20 18:27

developer   ~0022691

https://git.taler.net/taler-android.git/commit/?id=3087f4bf6bf2260e443ea28fd44308b99736d369

That should fix the issue, but still more testing is required.
I will close this ticket, however, in case this issue persists, please feel free to re-open it.

Issue History

Date Modified Username Field Change
2024-06-07 19:49 Florian Dold New Issue
2024-06-07 19:49 Florian Dold Status new => assigned
2024-06-07 19:49 Florian Dold Assigned To => avalos
2024-06-19 19:56 avalos Assigned To avalos => Florian Dold
2024-06-19 19:56 avalos Status assigned => feedback
2024-06-19 19:56 avalos Note Added: 0022675
2024-06-19 20:58 Florian Dold Note Added: 0022677
2024-06-19 20:58 Florian Dold Assigned To Florian Dold => avalos
2024-06-19 20:58 Florian Dold Status feedback => assigned
2024-06-19 21:32 avalos Note Added: 0022680
2024-06-19 21:33 avalos Assigned To avalos => Florian Dold
2024-06-19 21:33 avalos Status assigned => feedback
2024-06-20 11:31 Florian Dold Note Added: 0022683
2024-06-20 11:31 Florian Dold Assigned To Florian Dold => avalos
2024-06-20 11:31 Florian Dold Status feedback => assigned
2024-06-20 18:27 avalos Note Added: 0022691
2024-06-20 18:27 avalos Status assigned => resolved
2024-06-20 18:27 avalos Resolution open => fixed
2024-07-26 00:11 Christian Grothoff Fixed in Version => 0.12
2024-07-26 00:12 Christian Grothoff Status resolved => closed