View Issue Details

IDProjectCategoryView StatusLast Update
0010442Talermerchant backendpublic2025-09-27 20:19
ReporterFlorian Dold Assigned ToFlorian Dold  
PrioritynormalSeveritycrashReproducibilityhave not tried
Status feedbackResolutionopen 
Target Version1.2 
Summary0010442: adding a donau to the merchant backend results in crash
DescriptionProgram terminated with signal SIGSEGV, Segmentation fault.
Downloading 313.04 K source file /usr/src/debug/libmicrohttpd-1.0.2-1.fc42.x86_64/src/microhttpd/daemon.c
#0 MHD_resume_connection (connection=0x124278f0) at /usr/src/debug/libmicrohttpd-1.0.2-1.fc42.x86_64/src/microhttpd/daemon.c:3372
3372 if (0 == (daemon->options & MHD_TEST_ALLOW_SUSPEND_RESUME))
(gdb) bt
#0 MHD_resume_connection (connection=0x124278f0) at /usr/src/debug/libmicrohttpd-1.0.2-1.fc42.x86_64/src/microhttpd/daemon.c:3372
#1 0x000000000044f053 in donau_charity_get_cb (cls=0x124278f0, gcr=0x7ffdc3a04610) at taler-merchant-httpd_private-post-donau-instance.c:171
#2 0x00007f189a5f0837 in handle_charity_get_finished (cls=0x124306c0, response_code=<optimized out>, resp_obj=0x0) at donau_api_charity_get.c:189
#3 0x00007f189a436906 in GNUNET_CURL_perform2 (ctx=0x123ffde0, rp=0x7f189a4360a6 <GNUNET_CURL_download_get_result_>, rc=0x7f189a437049 <clean_result>) at ../src/lib/curl/curl.c:802
#4 0x00007f189a437156 in context_task (cls=0x124070b0) at ../src/lib/curl/curl_reschedule.c:127
#5 0x00007f189a179cab in GNUNET_SCHEDULER_do_work (sh=0x12403770) at ../src/lib/util/scheduler.c:2144
#6 0x00007f189a17aa97 in select_loop (sh=0x12403770, context=0x7ffdc3a04c40) at ../src/lib/util/scheduler.c:2443
#7 0x00007f189a174eb5 in GNUNET_SCHEDULER_run (task=0x7f189a16e907 <program_main>, task_cls=0x7ffdc3a04e50) at ../src/lib/util/scheduler.c:743
#8 0x00007f189a16f9c0 in GNUNET_PROGRAM_run2 (pd=0x7f189a6b7ca0 <merchant_pd>, argc=5, argv=0x7ffdc3a051d8, binaryName=0x45714e "taler-merchant-httpd", binaryHelp=0x459990 "Taler merchant's HTTP backend interface",
    options=0x7ffdc3a04f80, task=0x404d20 <run>, task_cls=0x0, run_without_scheduler=0) at ../src/lib/util/program.c:388
#9 0x00007f189a16fb04 in GNUNET_PROGRAM_run (pd=0x7f189a6b7ca0 <merchant_pd>, argc=5, argv=0x7ffdc3a051d8, binaryName=0x45714e "taler-merchant-httpd", binaryHelp=0x459990 "Taler merchant's HTTP backend interface",
    options=0x7ffdc3a04f80, task=0x404d20 <run>, task_cls=0x0) at ../src/lib/util/program.c:416
#10 0x0000000000401bd5 in main (argc=5, argv=0x7ffdc3a051d8) at taler-merchant-httpd.c:3080
TagsNo tags attached.

Relationships

child of 0010235 confirmed DONAU MVP [meta] [15oct] 

Activities

Florian Dold

2025-09-22 20:41

manager   ~0025967

Reproducible with taler-harness on dev/dold/donau, via running

$ taler-harness run-integrationtests donau

commit 6b5beebe0c90e5a7d3d4fa6ab38629d1f7afb78e (HEAD -> dev/dold/donau, origin/dev/dold/donau)
Author: Florian Dold <florian@dold.me>
Date: Mon Sep 22 20:40:41 2025 +0200

    harness: set up donau in test

Florian Dold

2025-09-22 20:52

manager   ~0025968

2025-09-22T20:51:26.022439+0200 taler-merchant-httpd-160758(HH0HA9HD4C96PT3HCN8Q47KVV0) WARNING External protocol violation detected at donau_api_charity_get.c:177.
2025-09-22T20:51:26.022447+0200 taler-merchant-httpd-160758(HH0HA9HD4C96PT3HCN8Q47KVV0) ERROR Unexpected response code 204/10 for GET http://localhost:8084/charities/42
2025-09-22T20:51:26.022452+0200 taler-merchant-httpd-160758(HH0HA9HD4C96PT3HCN8Q47KVV0) INFO Processing DONAU charity get response

Florian Dold

2025-09-22 21:01

manager   ~0025969

Ah, so this only happens when passing a charity_id that is not know to the donau.

Christian Grothoff

2025-09-23 11:31

manager   ~0025978

Not sure how that logic ever worked, should be better with eb87ea59..32e12126

Florian Dold

2025-09-24 15:41

manager   ~0026013

Adding a donau instance with a charity_id that does not exist still crashes the merchant.

I've added a reproducer in the following test (only on latest master branch, at least commit d9fc25c6422):

$ taler-harness run-integrationtests donau-compat

Christian Grothoff

2025-09-24 21:42

manager   ~0026014

I've fixed the crash and a 204/404 confusion in donau. The test still fails, but that's because it doesn't like the 502 we return from the merchant when POSTing the charity to the merchant backend. However, I think that's OK, as it's OK if adding the Donau fails when we contact the Donau and the Donau refuses to recognize us. So probably the test should be fixed to accept the 502 in this case.

Issue History

Date Modified Username Field Change
2025-09-22 20:39 Florian Dold New Issue
2025-09-22 20:39 Florian Dold Status new => assigned
2025-09-22 20:39 Florian Dold Assigned To => Christian Grothoff
2025-09-22 20:41 Florian Dold Note Added: 0025967
2025-09-22 20:52 Florian Dold Note Added: 0025968
2025-09-22 21:01 Florian Dold Note Added: 0025969
2025-09-22 21:01 Florian Dold Priority high => normal
2025-09-23 11:31 Christian Grothoff Note Added: 0025978
2025-09-23 15:59 Christian Grothoff Assigned To Christian Grothoff => Florian Dold
2025-09-23 15:59 Christian Grothoff Status assigned => feedback
2025-09-24 15:41 Florian Dold Assigned To Florian Dold => Christian Grothoff
2025-09-24 15:41 Florian Dold Status feedback => assigned
2025-09-24 15:41 Florian Dold Note Added: 0026013
2025-09-24 21:42 Christian Grothoff Note Added: 0026014
2025-09-24 21:42 Christian Grothoff Assigned To Christian Grothoff => Florian Dold
2025-09-24 21:42 Christian Grothoff Status assigned => feedback
2025-09-27 20:14 Christian Grothoff Target Version 1.1 => 1.2
2025-09-27 20:19 Christian Grothoff Relationship added child of 0010235