View Issue Details

IDProjectCategoryView StatusLast Update
0004433Talermerchant backendpublic2024-01-12 14:05
ReporterFlorian Dold Assigned ToFlorian Dold  
PriorityurgentSeverityblockReproducibilityrandom
Status closedResolutionfixed 
Product Version0.0 
Target Version0.0Fixed in Version0.0 
Summary0004433: merchant /pay times out; leaving backend unresponsive
DescriptionThis seems to be a problem that has occurred on a regular basis.

It is probably caused by a bug in the event handling logic of the backend, where we integrate libcurl, microhttpd and the GNUnet scheduler.
TagsNo tags attached.

Relationships

related to 0004465 closedFlorian Dold merchant backend gives weird responses to the wallet before it has contracted its trusted exchanges 
related to 0004444 closedFlorian Dold revise retry semantics for exchanges in merchant 

Activities

Christian Grothoff

2016-04-17 16:24

manager   ~0010497

I've not yet seen this, but I've added logging to aid diagnostic of this issue in 87f8579..9213442

Florian Dold

2016-04-17 17:01

manager   ~0010498

So pay is being suspended and not resumed, but the exchange that we're contacting seems to be fine. Still not sure why this is happening ...

Apr 17 16:58:31-788587 taler-merchant-httpd-16682 DEBUG Handling request for URL `/pay'
Apr 17 16:58:31-788598 taler-merchant-httpd-16682 DEBUG In handler for /pay.
Apr 17 16:58:31-788751 taler-merchant-httpd-16682 DEBUG Parsed JSON for /pay.
Apr 17 16:58:31-799610 taler-merchant-httpd-16682 DEBUG Coin #0 has f PUDOS:0.1
Apr 17 16:58:31-800183 taler-merchant-httpd-16682 DEBUG Trying to find chosen exchange `https://exchange.test.taler.net/'
Apr 17 16:58:31-800216 taler-merchant-httpd-16682 DEBUG Suspending /pay handling while working with the exchange
Apr 17 16:58:31-800237 taler-merchant-httpd-16682 DEBUG Adding run_daemon select task

Florian Dold

2016-04-17 17:02

manager   ~0010499

BTW, if you want to have a look at the logs yourself, we log with

export GNUNET_FORCE_LOG="taler;;;;DEBUG/"

on test.taler.net:taler-*.log

Florian Dold

2016-04-19 00:45

manager   ~0010510

I think I found the underlying issue. If the exchange isn't ready when the merchant is started, the exchange is flagged as is_pending=GNUNET_SYSERR, that is, as failed.

But when we then try again, and the retry timeout isn't over, we'll just to nothing, and no response is returned. We also don't schedule any retry in that case.

Florian Dold

2016-04-19 01:25

manager   ~0010511

I can confirm this, the problem only occurs if the merchant is started before the exchange.

Christian Grothoff

2016-05-04 06:43

manager   ~0010622

So why is this "resolved"? Was there a change in the code to fix it?

Florian Dold

2016-05-04 09:15

manager   ~0010623

This was at least partially fixed in commits 23d94a0..00539cd to the merchant and your libgnunetcurl API change.

Issue History

Date Modified Username Field Change
2016-04-16 22:31 Florian Dold New Issue
2016-04-16 22:31 Florian Dold Status new => assigned
2016-04-16 22:31 Florian Dold Assigned To => Marcello Stanisci
2016-04-17 16:24 Christian Grothoff Note Added: 0010497
2016-04-17 17:01 Florian Dold Note Added: 0010498
2016-04-17 17:02 Florian Dold Note Added: 0010499
2016-04-17 17:22 Florian Dold Priority high => urgent
2016-04-17 17:22 Florian Dold Severity major => block
2016-04-19 00:45 Florian Dold Note Added: 0010510
2016-04-19 01:25 Florian Dold Note Added: 0010511
2016-04-19 02:42 Florian Dold Status assigned => resolved
2016-04-19 02:42 Florian Dold Resolution open => fixed
2016-04-19 02:42 Florian Dold Assigned To Marcello Stanisci => Florian Dold
2016-04-24 23:44 Christian Grothoff Fixed in Version => 0.0
2016-05-04 06:43 Christian Grothoff Note Added: 0010622
2016-05-04 09:14 Florian Dold Relationship added related to 0004465
2016-05-04 09:14 Florian Dold Relationship added related to 0004444
2016-05-04 09:15 Florian Dold Note Added: 0010623
2016-05-04 09:33 Christian Grothoff Status resolved => closed
2024-01-12 14:05 Christian Grothoff Category merchant backend API (C) => mechant backend
2025-03-22 14:09 Christian Grothoff Category mechant backend => merchant backend