View Issue Details

IDProjectCategoryView StatusLast Update
0010478Talermerchant backendpublic2025-11-22 22:06
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
PriorityhighSeveritycrashReproducibilityhave not tried
Status closedResolutionfixed 
Product Version1.0 
Target Version1.2Fixed in Version1.2 
Summary0010478: merchant backend crashes when making a donation after donau changed its keys
DescriptionWe don't have a good reproducer for this yet.

It happened on test.taler.net after purging the donau DB (since the donau DB had a breaking change).
Additional InformationOct 07 17:29:35 cceb10198446 taler-merchant-httpd[3289]: (QJ21HG08EW9Y3JA9TQ3GT9D100) ERROR Assertion failed at donau_api_handle.c:774.
Oct 07 17:29:35 cceb10198446 taler-merchant-httpd[3289]: (QJ21HG08EW9Y3JA9TQ3GT9D100) WARNING External protocol violation detected at taler-merchant-httpd_post-orders-ID-pay.c:3385.
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Activities

Christian Grothoff

2025-10-07 18:59

manager   ~0026108

9a96cbf..f75bf8c fixes an incorrect return value in libdonau.

Christian Grothoff

2025-10-07 19:00

manager   ~0026109

64d52a6e..141b6bb6 improves the error handling in the merchant backend. However, I didn't see any actual CRASH here, just an error that should have been a warning (client uses different donau keys than what we have, so we cannot sign).

Christian Grothoff

2025-10-07 19:08

manager   ~0026110

Note that when Donau keys change and wallet/merchant/donau disagree on what they should be, things are expected to go to hell (aka 400) until that is resolved.

Christian Grothoff

2025-10-07 19:08

manager   ~0026111

Let me know if you see more being required here.

Florian Dold

2025-10-07 20:08

manager   ~0026112

Needs a test IMO, I can add one to taler-harness.

Florian Dold

2025-11-14 19:25

manager   ~0026441

We have a test now:

$ taler-harness run-integrationtests donau-keychange

However, the test actually does crash the merchant.

Florian Dold

2025-11-14 19:26

manager   ~0026442

#0 0x00007fc4e90f704c in GNUNET_CRYPTO_blinded_sig_decref (blind_sig=0x0) at ../src/lib/util/crypto_blind_sign.c:139
139 GNUNET_assert (blind_sig->rc > 0);
(gdb) bt
#0 0x00007fc4e90f704c in GNUNET_CRYPTO_blinded_sig_decref (blind_sig=0x0) at ../src/lib/util/crypto_blind_sign.c:139
#1 0x000000000045f1c7 in pay_context_cleanup (cls=0x2cb2140) at taler-merchant-httpd_post-orders-ID-pay.c:4937
#2 0x000000000040323f in handle_mhd_completion_callback (cls=0x0, connection=0x2c990e0, con_cls=0x2c99198, toe=MHD_REQUEST_TERMINATED_COMPLETED_OK) at taler-merchant-httpd.c:795
#3 0x00007fc4e91c3d18 in connection_reset (connection=0x2c990e0, reuse=true) at /usr/src/debug/libmicrohttpd-1.0.2-1.fc42.x86_64/src/microhttpd/connection.c:7123
#4 MHD_connection_handle_idle (connection=connection@entry=0x2c990e0) at /usr/src/debug/libmicrohttpd-1.0.2-1.fc42.x86_64/src/microhttpd/connection.c:7508
#5 0x00007fc4e91c5ab2 in call_handlers (con=0x2c990e0, read_ready=<optimized out>, write_ready=<optimized out>, force_close=<optimized out>) at /usr/src/debug/libmicrohttpd-1.0.2-1.fc42.x86_64/src/microhttpd/daemon.c:1374
#6 0x00007fc4e91d0d11 in MHD_epoll (daemon=daemon@entry=0x2cb00c0, millisec=<optimized out>, millisec@entry=0) at /usr/src/debug/libmicrohttpd-1.0.2-1.fc42.x86_64/src/microhttpd/daemon.c:5766
#7 0x00007fc4e91d130a in MHD_run_wait (daemon=0x2cb00c0, millisec=millisec@entry=0) at /usr/src/debug/libmicrohttpd-1.0.2-1.fc42.x86_64/src/microhttpd/daemon.c:5897
#8 0x00007fc4e91d137b in MHD_run (daemon=<optimized out>) at /usr/src/debug/libmicrohttpd-1.0.2-1.fc42.x86_64/src/microhttpd/daemon.c:5830
#9 0x00007fc4e9626564 in run_daemon (cls=0x2cb0090) at mhd_run.c:99
#10 0x00007fc4e9139d84 in GNUNET_SCHEDULER_do_work (sh=0x2c8d7d0) at ../src/lib/util/scheduler.c:2144
#11 0x00007fc4e913ab70 in select_loop (sh=0x2c8d7d0, context=0x7fff0093c2b0) at ../src/lib/util/scheduler.c:2443
#12 0x00007fc4e9134f8e in GNUNET_SCHEDULER_run (task=0x7fc4e912e9e0 <program_main>, task_cls=0x7fff0093c4c0) at ../src/lib/util/scheduler.c:743
#13 0x00007fc4e912fa99 in GNUNET_PROGRAM_run2 (pd=0x7fc4e96d0ca0 <merchant_pd>, argc=5, argv=0x7fff0093c858, binaryName=0x470008 "taler-merchant-httpd", binaryHelp=0x46ffe0 "Taler merchant's HTTP backend interface",
    options=0x7fff0093c600, task=0x4063b9 <run>, task_cls=0x0, run_without_scheduler=0) at ../src/lib/util/program.c:388
#14 0x00007fc4e912fbdd in GNUNET_PROGRAM_run (pd=0x7fc4e96d0ca0 <merchant_pd>, argc=5, argv=0x7fff0093c858, binaryName=0x470008 "taler-merchant-httpd", binaryHelp=0x46ffe0 "Taler merchant's HTTP backend interface",
    options=0x7fff0093c600, task=0x4063b9 <run>, task_cls=0x0) at ../src/lib/util/program.c:416
#15 0x0000000000407390 in main (argc=5, argv=0x7fff0093c858) at taler-merchant-httpd.c:3323

Christian Grothoff

2025-11-14 23:54

manager   ~0026456

Test now passes.

Issue History

Date ModifiedUsernameFieldChange
2025-10-07 17:39Florian DoldNew Issue
2025-10-07 18:04Christian GrothoffAssigned To => Christian Grothoff
2025-10-07 18:04Christian GrothoffStatusnew => assigned
2025-10-07 18:59Christian GrothoffNote Added: 0026108
2025-10-07 19:00Christian GrothoffNote Added: 0026109
2025-10-07 19:08Christian GrothoffNote Added: 0026110
2025-10-07 19:08Christian GrothoffAssigned ToChristian Grothoff => Florian Dold
2025-10-07 19:08Christian GrothoffStatusassigned => feedback
2025-10-07 19:08Christian GrothoffNote Added: 0026111
2025-10-07 20:08Florian DoldNote Added: 0026112
2025-10-20 15:13Florian DoldStatusfeedback => informing
2025-10-20 15:13Florian DoldResolutionopen => fixed
2025-10-20 15:13Florian DoldStatusinforming => assigned
2025-10-20 18:09Florian DoldTarget Version => 1.2
2025-11-14 19:25Florian DoldNote Added: 0026441
2025-11-14 19:26Florian DoldNote Added: 0026442
2025-11-14 19:26Florian DoldAssigned ToFlorian Dold => Christian Grothoff
2025-11-14 23:52Christian GrothoffPrioritynormal => high
2025-11-14 23:52Christian GrothoffSeverityminor => crash
2025-11-14 23:52Christian GrothoffProduct Version => 1.0
2025-11-14 23:54Christian GrothoffStatusassigned => informing
2025-11-14 23:54Christian GrothoffFixed in Version => 1.2
2025-11-14 23:54Christian GrothoffNote Added: 0026456
2025-11-22 22:06Christian GrothoffStatusinforming => closed