View Issue Details

IDProjectCategoryView StatusLast Update
0010478Talermerchant backendpublic2025-11-15 00:54
ReporterFlorian Dold Assigned ToChristian Grothoff  
PriorityhighSeveritycrashReproducibilityhave not tried
Status resolvedResolutionfixed 
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.

Activities

Christian Grothoff

2025-10-07 20:59

manager   ~0026108

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

Christian Grothoff

2025-10-07 21: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 21: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 21:08

manager   ~0026111

Let me know if you see more being required here.

Florian Dold

2025-10-07 22:08

manager   ~0026112

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

Florian Dold

2025-11-14 20: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 20: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-15 00:54

manager   ~0026456

Test now passes.

Issue History

Date Modified Username Field Change
2025-10-07 19:39 Florian Dold New Issue
2025-10-07 20:04 Christian Grothoff Assigned To => Christian Grothoff
2025-10-07 20:04 Christian Grothoff Status new => assigned
2025-10-07 20:59 Christian Grothoff Note Added: 0026108
2025-10-07 21:00 Christian Grothoff Note Added: 0026109
2025-10-07 21:08 Christian Grothoff Note Added: 0026110
2025-10-07 21:08 Christian Grothoff Assigned To Christian Grothoff => Florian Dold
2025-10-07 21:08 Christian Grothoff Status assigned => feedback
2025-10-07 21:08 Christian Grothoff Note Added: 0026111
2025-10-07 22:08 Florian Dold Note Added: 0026112
2025-10-20 17:13 Florian Dold Status feedback => resolved
2025-10-20 17:13 Florian Dold Resolution open => fixed
2025-10-20 17:13 Florian Dold Status resolved => assigned
2025-10-20 20:09 Florian Dold Target Version => 1.2
2025-11-14 20:25 Florian Dold Note Added: 0026441
2025-11-14 20:26 Florian Dold Note Added: 0026442
2025-11-14 20:26 Florian Dold Assigned To Florian Dold => Christian Grothoff
2025-11-15 00:52 Christian Grothoff Priority normal => high
2025-11-15 00:52 Christian Grothoff Severity minor => crash
2025-11-15 00:52 Christian Grothoff Product Version => 1.0
2025-11-15 00:54 Christian Grothoff Status assigned => resolved
2025-11-15 00:54 Christian Grothoff Fixed in Version => 1.2
2025-11-15 00:54 Christian Grothoff Note Added: 0026456