View Issue Details

IDProjectCategoryView StatusLast Update
0011518Talermerchant backendpublic2026-06-24 16:38
Reportervecirex Assigned Tovecirex  
PriorityurgentSeverityblockReproducibilityhave not tried
Status assignedResolutionreopened 
Summary0011518: Test taler-merchant v1.6.5 to be production-ready [-> taler-merchant v1.6.6 might be needed; reproduce furtherly]
DescriptionDue to a new DB scheme (v38), the taler-merchant v1.6.x introduces new complexities. We need to rule out production systems run into issues by upgrade or in ops; by carefully testing core functionality and also observe mutations to the DB and check if there are errors or warnings by taler-merchant-httpd.
Tagsmytops

Relationships

related to 0011528 resolvedFlorian Dold Various CSS / JS files shown not found in upgrade taler-merchant v1.5.16 (prod) to v1.6.5 (test) 
related to 0011545 assignedFlorian Dold taler-merchant.target gets removed upon reinstall/upgrade 
parent of 0011511 closedvecirex Test global KYC Auth Reset for an installation's instances and in taler-merchant v1.6.4 

Activities

vecirex

2026-06-17 15:01

manager   ~0028927

We need a new package taler-merchant v1.6.6, as this version seems to break existing installations from "trixie" / stable at least (maybe also from older v1.6.x versions, not tested); it shouldn't thus be promoted.

Example w/ taler.hacktivism.ch, w/ steps carried out manually; all steps (of scripts) outlined.

Starting from here, running installation:

hernani@koopa:~> podman stop taler-hacktivism
taler-hacktivism
hernani@koopa:~> podman start taler-hacktivism
taler-hacktivism
hernani@koopa:~> podman exec -it taler-hacktivism bash
root@1b0bd36dc346:/# cd /root 
root@1b0bd36dc346:~# cat start_base_services_for_taler.sh 
#!/bin/bash
echo "Start certbot renewal..."
./scripts/certbot_renew.sh &

echo "Create log folder if not yet done... giving permission to taler-merchant-httpd":
mkdir -p /var/log/taler-merchant/
chown taler-merchant-httpd: -R /var/log/taler-merchant/

PWD="/usr/local/bin"
MERCHANT_STARTER="start_merchant.sh"
echo "Start base services needed for Taler Self-Provisioning."
echo ""

echo -n "Read secrets needed for SMS delivery:"
set -a
source .taler-secrets-env && echo " OK"
set +a

echo "1. postgresql:"
/etc/init.d/postgresql start
#echo "2. nginx:"
#/etc/init.d/nginx start
echo "2. Switching now to user taler-merchant-httpd, in $PWD; find executable $MERCHANT_STARTER there!"
echo ""
cd $PWD
# Make sure we take env vars needed with us
runuser -u taler-merchant-httpd -- env \
            CLICKSEND_API_KEY="$CLICKSEND_API_KEY" \
            CLICKSEND_USERNAME="$CLICKSEND_USERNAME" \
            TELESIGN_AUTH_TOKEN="$TELESIGN_AUTH_TOKEN" \
            bash
root@1b0bd36dc346:~# ./start_base_services_for_taler.sh 
Start certbot renewal...
Create log folder if not yet done... giving permission to taler-merchant-httpd:
Start base services needed for Taler Self-Provisioning.

Read secrets needed for SMS delivery: OK
1. postgresql:
Starting PostgreSQL 17 database server: main.
2. Switching now to user taler-merchant-httpd, in /usr/local/bin; find executable start_merchant.sh there!

taler-merchant-httpd@1b0bd36dc346:/usr/local/bin$ ls
check_merchant-health.sh                  taler-hacktivism-sms-helper-telesign.sh
start_merchant.sh                         taler-hacktivism-sms-helper-wrapper.sh
taler-hacktivism-email-helper.sh          taler-hacktivism-sms-helper.sh
taler-hacktivism-sms-helper-clicksend.sh
taler-merchant-httpd@1b0bd36dc346:/usr/local/bin$ cat check_merchant-health.sh 
#!/bin/bash

SOCK="/var/run/taler-merchant/httpd/merchant-http.sock"
URL="http://unix:$SOCK:/"
CURL_BIN=$(command -v curl)
SS_BIN=$(command -v ss)

green()  { echo -e "\e[32m$1\e[0m"; }
red()    { echo -e "\e[31m$1\e[0m"; }
yellow() { echo -e "\e[33m$1\e[0m"; }

echo "=== Taler Merchant Health Check ==="

# 1. Check if the socket exists
if [ -S "$SOCK" ]; then
    green "[OK] Socket exists: $SOCK"
else
    red "[FAIL] Socket does NOT exist: $SOCK"
    exit 1
fi

# 2. Check if the merchant-httpd process is listening on the socket
if $SS_BIN -xl | grep -q "$SOCK"; then
    green "[OK] Merchant-HTTPD is listening on the socket"
else
    red "[FAIL] No listener on the socket"
    exit 1
fi

# 3. Check if the merchant-httpd process is running
if pgrep -f taler-merchant-httpd >/dev/null; then
    green "[OK] Process taler-merchant-httpd is running"
else
    red "[FAIL] Process taler-merchant-httpd is NOT running"
    exit 1
fi

# 4. Optional: Check if Nginx is running (same style as merchant-httpd)

if pgrep -f "nginx: master" >/dev/null; then
    green "[OK] Nginx master process is running"
else
    red "[FAIL] Nginx master process is NOT running"
    exit 1
fi


green "=== ALL CHECKS PASSED ==="
exit 0

taler-merchant-httpd@1b0bd36dc346:/usr/local/bin$ cat start_merchant.sh 
#!/bin/bash
# Ensure script is executed by the taler-merchant-httpd user
if [ "$(id -un)" != "taler-merchant-httpd" ]; then
    echo "This script must be run as user taler-merchant-httpd"
    exit 1
fi

TIMESTAMP=$(date +"%Y%m%d_%H%M")
BACKUP_DIR="/var/taler-backups"
LOG_DIR="/var/log/taler-merchant"

BACKUP_NAME="taler-merchant-$TIMESTAMP.sql"
echo -n "Backup taler-merchant DB: "
pg_dump taler-merchant > $BACKUP_DIR/$BACKUP_NAME && echo "OK"
echo "Show backups:"
ls -lh $BACKUP_DIR/*
echo "Start taler-merchant components:"

# Main httpd with daily log file
LOG_FILE="$LOG_DIR/taler-merchant-httpd-$(date +%Y-%m-%d).log"
touch "$LOG_FILE"
taler-merchant-httpd --log=info >> "$LOG_FILE" 2>&1 &

sleep 2

taler-merchant-webhook &
taler-merchant-kyccheck &
taler-merchant-wirewatch &
taler-merchant-depositcheck &
taler-merchant-exchangekeyupdate &
taler-merchant-reconciliation &

echo "Show taler-merchant components running (check for httpd, webhook, kyccheck, depositcheck, exchangekeyupdate and reconciliation):"
ps -axw | grep taler-merchant
./check_merchant-health.sh
taler-merchant-httpd@1b0bd36dc346:/usr/local/bin$ ./start_merchant.sh 
Backup taler-merchant DB: OK
Show backups:
-rw-r--r-- 1 taler-merchant-httpd www-data 2.1M Nov 18  2025 /var/taler-backups/20251118--taler-merchant-db.sql
-rw-r--r-- 1 taler-merchant-httpd www-data 2.2M Dec  3  2025 /var/taler-backups/20251203--taler-merchant-db.sql
-rw-r--r-- 1 taler-merchant-httpd www-data 2.2M Dec 13  2025 /var/taler-backups/20251213--taler-merchant-db.sql
-rw-r--r-- 1 taler-merchant-httpd www-data 2.2M Dec 15  2025 /var/taler-backups/20251215--taler-merchant-db.sql
-rw-r--r-- 1 taler-merchant-httpd www-data 2.3M Dec 16  2025 /var/taler-backups/20251216--taler-merchant-db.sql
-rw-r--r-- 1 taler-merchant-httpd www-data 2.3M Dec 23 02:23 /var/taler-backups/20251223--taler-merchant-db.sql
-rw-r--r-- 1 taler-merchant-httpd www-data 2.3M Jan 14 12:07 /var/taler-backups/20260114-taler-merchant-db.sql
-rw-r--r-- 1 taler-merchant-httpd www-data 2.8M Feb  5 15:19 /var/taler-backups/20260205--taler-merchant-db.sql
-rw-r--r-- 1 root                 root        0 May 16 15:01 /var/taler-backups/taler-merchant-20260516_1501.sql
-rw-r--r-- 1 taler-merchant-httpd www-data 2.9M May 16 15:03 /var/taler-backups/taler-merchant-20260516_1503.sql
-rw-r--r-- 1 taler-merchant-httpd www-data 2.9M May 16 15:06 /var/taler-backups/taler-merchant-20260516_1506.sql
-rw-r--r-- 1 taler-merchant-httpd www-data 2.9M May 24 23:40 /var/taler-backups/taler-merchant-20260524_2340.sql
-rw-r--r-- 1 taler-merchant-httpd www-data 2.9M May 24 23:43 /var/taler-backups/taler-merchant-20260524_2343.sql
-rw-r--r-- 1 taler-merchant-httpd www-data 2.9M May 24 23:46 /var/taler-backups/taler-merchant-20260524_2346.sql
-rw-r--r-- 1 taler-merchant-httpd www-data 2.9M Jun 12 19:51 /var/taler-backups/taler-merchant-20260612_1951.sql
-rw-r--r-- 1 taler-merchant-httpd www-data 2.9M Jun 12 21:07 /var/taler-backups/taler-merchant-20260612_2107.sql
-rw-r--r-- 1 taler-merchant-httpd www-data 2.9M Jun 17 00:57 /var/taler-backups/taler-merchant-20260617_0057.sql
-rw-r--r-- 1 taler-merchant-httpd www-data 2.9M Jun 17 01:38 /var/taler-backups/taler-merchant-20260617_0138.sql
-rw-r--r-- 1 taler-merchant-httpd www-data 2.9M Jun 17 01:40 /var/taler-backups/taler-merchant-20260617_0140.sql
-rw-r--r-- 1 taler-merchant-httpd www-data 2.9M Jun 17 11:51 /var/taler-backups/taler-merchant-20260617_1151.sql
-rw-r--r-- 1 taler-merchant-httpd www-data 2.9M Jun 17 12:00 /var/taler-backups/taler-merchant-20260617_1200.sql
-rw-r--r-- 1 taler-merchant-httpd www-data 2.9M Jun 17 12:04 /var/taler-backups/taler-merchant-20260617_1204.sql
-rw-r--r-- 1 taler-merchant-httpd www-data 2.9M Jun 17 12:11 /var/taler-backups/taler-merchant-20260617_1211.sql
-rw-r--r-- 1 taler-merchant-httpd www-data 2.9M Jun 17 12:27 /var/taler-backups/taler-merchant-20260617_1227.sql
-rw-r--r-- 1 taler-merchant-httpd www-data 2.9M Jun 17 12:28 /var/taler-backups/taler-merchant-20260617_1228.sql
-rw-r--r-- 1 taler-merchant-httpd www-data 2.9M Jun 17 12:45 /var/taler-backups/taler-merchant-20260617_1245.sql

/var/taler-backups/pgall:
total 2.8M
-rw-rw-r-- 1 postgres postgres 2.8M Feb  5 15:17 20260205--pgall.sql
Start taler-merchant components:
Show taler-merchant components running (check for httpd, webhook, kyccheck, depositcheck, exchangekeyupdate and reconciliation):
     54 pts/0    S      0:00 runuser -u taler-merchant-httpd -- env CLICKSEND_API_KEY=67C1BA5C-816A-721C-150F-2BFA7274D1DA CLICKSEND_USERNAME=talersystems TELESIGN_AUTH_TOKEN=RjgwNEU5OEUtNDUxOC00MDdELTk3RjctQTMxNDk4M0NGOUM1OmNLdzJZZGNRWWdYK2drN0ZjMDF6Rm04akRZNk8vcmZuSTdCOHhnbjZsT3RHbmtPbC8yRmZmRjBEV05PZ1ZwVjlCTCtYM2ErMEd3a0Q2K3R3d0FWUGtRPT0= bash
     67 pts/0    S+     0:00 taler-merchant-httpd --log=info
     69 ?        Ss     0:00 postgres: 17/main: taler-merchant-httpd taler-merchant [local] idle
     70 pts/0    R+     0:00 taler-merchant-webhook
     71 pts/0    R+     0:00 taler-merchant-kyccheck
     72 pts/0    R+     0:00 taler-merchant-wirewatch
     73 pts/0    R+     0:00 taler-merchant-depositcheck
     74 pts/0    R+     0:00 taler-merchant-exchangekeyupdate
     75 pts/0    R+     0:00 taler-merchant-reconciliation
     77 pts/0    S+     0:00 grep taler-merchant
=== Taler Merchant Health Check ===
[OK] Socket exists: /var/run/taler-merchant/httpd/merchant-http.sock
[OK] Merchant-HTTPD is listening on the socket
[OK] Process taler-merchant-httpd is running
[OK] Nginx master process is running
=== ALL CHECKS PASSED ===
taler-merchant-httpd@1b0bd36dc346:/usr/local/bin$ 2026-06-17T12:45:02.735385+0000 taler-merchant-depositcheck-89 INFO Running with configuration /etc/taler-merchant/taler-merchant.conf
2026-06-17T12:45:02.740382+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_get_oid_by_name' on 0x55a407c1c980
2026-06-17T12:45:02.740803+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_get_oid_by_name' on 0x55a407c1c980
2026-06-17T12:45:02.741026+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_get_oid_by_name' on 0x55a407c1c980
2026-06-17T12:45:02.741256+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_get_oid_by_name' on 0x55a407c1c980
2026-06-17T12:45:02.741462+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_get_oid_by_name' on 0x55a407c1c980
2026-06-17T12:45:02.741665+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_get_oid_by_name' on 0x55a407c1c980
2026-06-17T12:45:02.742065+0000 taler-merchant-depositcheck-89 INFO Loading SQL resources from `merchant-'
2026-06-17T12:45:02.742193+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.742542+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.742748+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.742957+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.743095+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.743289+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.743509+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.743689+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.743870+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.744038+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.744216+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.744344+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.744539+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.744710+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.744874+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.745046+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.745201+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.745400+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.745548+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.745623+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.745684+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.745723+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.745795+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.745855+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.745914+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.745978+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.746218+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.746359+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.746504+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.746691+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.746891+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.747057+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.747255+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.747443+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.747617+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.747765+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `gnunet_pq_check_patch' on 0x55a407c1c980
2026-06-17T12:45:02.747929+0000 taler-merchant-depositcheck-89 INFO Running statement `SET search_path TO merchant;' on 0x55a407c1c980
2026-06-17T12:45:02.748211+0000 pq-89 INFO Preparing SQL statement `SELECT first_retry,keys_json::TEXT FROM merchant_exchange_keys WHERE exchange_url=$1;' as `select_exchange_keys' on 0x55a407c1c980
2026-06-17T12:45:02.748519+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `select_exchange_keys' on 0x55a407c1c980
2026-06-17T12:45:02.784311+0000 taler-merchant-depositcheck-89 INFO Parsed 1 wire accounts from JSON
NOW
2026-06-17T12:45:02.907158+0000 pq-89 INFO Preparing SQL statement `SELECT md.deposit_serial,mct.h_contract_terms,mk.merchant_priv,mi.merchant_id,mdc.wire_transfer_deadline,md.settlement_retry_time AS retry_time,ma.h_wire,md.amount_with_fee,md.deposit_fee,md.coin_pub FROM merchant_deposits md JOIN merchant_deposit_confirmations mdc  USING (deposit_confirmation_serial) JOIN merchant_contract_terms mct  ON (mct.order_serial=mdc.order_serial) JOIN merchant_accounts ma  ON (mdc.account_serial=ma.account_serial) LEFT JOIN merchant_kyc kyc  ON (mdc.account_serial=kyc.account_serial) JOIN merchant_instances mi  ON (mct.merchant_serial=mi.merchant_serial) JOIN merchant_keys mk  ON (mi.merchant_serial=mk.merchant_serial) WHERE (mdc.exchange_url=$1)  AND md.settlement_retry_needed  AND ($4 OR (md.settlement_retry_time < $2))  AND ( (kyc.kyc_ok IS NULL) OR kyc.kyc_ok) ORDER BY md.settlement_retry_time ASC LIMIT $3' as `lookup_pending_deposits' on 0x55a407c1c980
2026-06-17T12:45:02.907928+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `lookup_pending_deposits' on 0x55a407c1c980
2026-06-17T12:45:02.917502+0000 taler-merchant-depositcheck-89 INFO Looking up pending deposits query status was 0
2026-06-17T12:45:02.917540+0000 taler-merchant-depositcheck-89 INFO Running prepared statement `lookup_pending_deposits' on 0x55a407c1c980
2026-06-17T12:45:02.922596+0000 taler-merchant-depositcheck-89 INFO Looking up pending deposits query status was 0

taler-merchant-httpd@1b0bd36dc346:/usr/local/bin$ ps -axw | grep taler
     18 pts/0    S      0:00 /bin/bash ./start_base_services_for_taler.sh
     54 pts/0    S      0:00 runuser -u taler-merchant-httpd -- env CLICKSEND_API_KEY=67C1BA5C-816A-721C-150F-2BFA7274D1DA CLICKSEND_USERNAME=talersystems TELESIGN_AUTH_TOKEN=RjgwNEU5OEUtNDUxOC00MDdELTk3RjctQTMxNDk4M0NGOUM1OmNLdzJZZGNRWWdYK2drN0ZjMDF6Rm04akRZNk8vcmZuSTdCOHhnbjZsT3RHbmtPbC8yRmZmRjBEV05PZ1ZwVjlCTCtYM2ErMEd3a0Q2K3R3d0FWUGtRPT0= bash
     67 pts/0    S      0:00 taler-merchant-httpd --log=info
     69 ?        Ss     0:00 postgres: 17/main: taler-merchant-httpd taler-merchant [local] idle
     70 pts/0    S      0:00 taler-merchant-webhook
     71 pts/0    S      0:00 taler-merchant-kyccheck
     72 pts/0    S      0:00 taler-merchant-wirewatch
     73 pts/0    S      0:00 taler-merchant-depositcheck
     74 pts/0    S      0:00 taler-merchant-exchangekeyupdate
     75 pts/0    S      0:00 taler-merchant-reconciliation
     85 ?        Ss     0:00 postgres: 17/main: taler-merchant-httpd taler-merchant [local] idle
     86 ?        Ss     0:00 postgres: 17/main: taler-merchant-httpd taler-merchant [local] idle
     87 ?        Ss     0:00 postgres: 17/main: taler-merchant-httpd taler-merchant [local] idle
     88 ?        Ss     0:00 postgres: 17/main: taler-merchant-httpd taler-merchant [local] idle
     89 pts/0    S      0:00 taler-merchant-depositcheck -c /etc/taler-merchant/taler-merchant.conf -e https://exchange.taler-ops.ch/ -L INFO -T 0
     90 ?        Ss     0:00 postgres: 17/main: taler-merchant-httpd taler-merchant [local] idle
     91 ?        Ss     0:00 postgres: 17/main: taler-merchant-httpd taler-merchant [local] idle
     97 pts/0    S+     0:00 grep taler
taler-merchant-httpd@1b0bd36dc346:/usr/local/bin$ dpkg --list | grep taler
ii  libtalerexchange                   1.5.9-0+trixie                       amd64        Libraries to talk to a GNU Taler exchange.
ii  libtalermerchant                   1.5.16-0+trixie                      amd64        libraries to talk to a GNU Taler merchant.
ii  taler-merchant                     1.5.16-0+trixie                      amd64        GNU's payment system merchant backend.
ii  taler-merchant-typst               1.5.16-0+trixie                      amd64        Typst packages for GNU Taler merchant.
ii  taler-terms-generator              1.5.9-0+trixie                       amd64        Tool to generate the terms of service
taler-merchant-httpd@1b0bd36dc346:/usr/local/bin$ 
taler-merchant-httpd@1b0bd36dc346:/usr/local/bin$ 


Upgrade to SQL scheme v36 fails:

hernani@koopa:~> podman stop taler-hacktivism
taler-hacktivism
hernani@koopa:~> podman start taler-hacktivism
taler-hacktivism
hernani@koopa:~> podman exec -it taler-hacktivism bash
root@1b0bd36dc346:/# apt-get update^C
root@1b0bd36dc346:/# apt-get update && apt-get upgrade && apt-get dist-upgrade
Hit:1 http://deb.debian.org/debian stable InRelease
Hit:2 https://deb.taler.net/apt/debian trixie InRelease
Hit:3 https://deb.taler.net/apt/debian trixie-testing InRelease
Get:4 http://deb.debian.org/debian stable-updates InRelease [47.3 kB]
Get:5 http://deb.debian.org/debian-security stable-security InRelease [43.4 kB]
Fetched 90.7 kB in 0s (810 kB/s)   
Reading package lists... Done
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  libtalermerchant taler-merchant taler-merchant-typst
The following packages will be upgraded:
  libtalerexchange taler-terms-generator
2 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
Need to get 724 kB of archives.
After this operation, 461 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 https://deb.taler.net/apt/debian trixie-testing/main amd64 libtalerexchange amd64 1.6.4-0+trixie [702 kB]
Get:2 https://deb.taler.net/apt/debian trixie-testing/main amd64 taler-terms-generator amd64 1.6.4-0+trixie [22.1 kB]
Fetched 724 kB in 0s (11.7 MB/s)                 
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 79, <STDIN> line 2.)
debconf: falling back to frontend: Readline
(Reading database ... 42391 files and directories currently installed.)
Preparing to unpack .../libtalerexchange_1.6.4-0+trixie_amd64.deb ...
Unpacking libtalerexchange (1.6.4-0+trixie) over (1.5.9-0+trixie) ...
Preparing to unpack .../taler-terms-generator_1.6.4-0+trixie_amd64.deb ...
Unpacking taler-terms-generator (1.6.4-0+trixie) over (1.5.9-0+trixie) ...
Setting up libtalerexchange (1.6.4-0+trixie) ...
Setting up taler-terms-generator (1.6.4-0+trixie) ...
Processing triggers for libc-bin (2.41-12+deb13u3) ...
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
  docutils-common fonts-font-awesome fonts-lato javascript-common libdonau
  libjs-jquery libjs-sphinxdoc libjs-underscore python-babel-localedata
  python3-alabaster python3-babel python3-defusedxml python3-docutils
  python3-imagesize python3-jinja2 python3-markupsafe python3-packaging
  python3-pygments python3-roman python3-snowballstemmer python3-sphinx
  python3-sphinx-rtd-theme python3-sphinxcontrib.jquery sgml-base sphinx-common
  sphinx-rtd-theme-common taler-merchant-webui xml-core
The following packages will be upgraded:
  libtalermerchant taler-merchant taler-merchant-typst
3 upgraded, 28 newly installed, 0 to remove and 0 not upgraded.
Need to get 20.1 MB of archives.
After this operation, 64.7 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://deb.debian.org/debian stable/main amd64 fonts-lato all 2.015-1 [2780 kB]
Get:2 https://deb.taler.net/apt/debian trixie-testing/main amd64 libdonau amd64 1.6.1-0+trixie [60.6 kB]
Get:3 https://deb.taler.net/apt/debian trixie-testing/main amd64 taler-merchant-webui all 1.6.5-0+trixie [4213 kB]
Get:4 https://deb.taler.net/apt/debian trixie-testing/main amd64 taler-merchant amd64 1.6.5-0+trixie [1848 kB]
Get:5 https://deb.taler.net/apt/debian trixie-testing/main amd64 libtalermerchant amd64 1.6.5-0+trixie [166 kB]
Get:6 https://deb.taler.net/apt/debian trixie-testing/main amd64 taler-merchant-typst amd64 1.6.5-0+trixie [20.1 kB]
Get:7 http://deb.debian.org/debian stable/main amd64 sgml-base all 1.31+nmu1 [10.9 kB]
Get:8 http://deb.debian.org/debian stable/main amd64 xml-core all 0.19 [20.1 kB]
Get:9 http://deb.debian.org/debian stable/main amd64 docutils-common all 0.21.2+dfsg-2 [128 kB]
Get:10 http://deb.debian.org/debian stable/main amd64 fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [517 kB]
Get:11 http://deb.debian.org/debian stable/main amd64 javascript-common all 12+nmu1 [4864 B]
Get:12 http://deb.debian.org/debian stable/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [326 kB]
Get:13 http://deb.debian.org/debian stable/main amd64 libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [116 kB]
Get:14 http://deb.debian.org/debian stable/main amd64 libjs-sphinxdoc all 8.1.3-5 [30.5 kB]
Get:15 http://deb.debian.org/debian stable/main amd64 python-babel-localedata all 2.17.0-1 [6050 kB]
Get:16 http://deb.debian.org/debian stable/main amd64 python3-alabaster all 0.7.16-0.1 [27.9 kB]
Get:17 http://deb.debian.org/debian stable/main amd64 python3-babel all 2.17.0-1 [117 kB]
Get:18 http://deb.debian.org/debian stable/main amd64 python3-defusedxml all 0.7.1-3 [43.4 kB]
Get:19 http://deb.debian.org/debian stable/main amd64 python3-roman all 5.0-1 [10.6 kB]
Get:20 http://deb.debian.org/debian stable/main amd64 python3-docutils all 0.21.2+dfsg-2 [403 kB]
Get:21 http://deb.debian.org/debian stable/main amd64 python3-imagesize all 1.4.1-1 [6688 B]
Get:22 http://deb.debian.org/debian stable/main amd64 python3-markupsafe amd64 2.1.5-1+b3 [14.0 kB]
Get:23 http://deb.debian.org/debian stable/main amd64 python3-jinja2 all 3.1.6-1 [107 kB]
Get:24 http://deb.debian.org/debian stable/main amd64 python3-packaging all 25.0-1 [56.6 kB]
Get:25 http://deb.debian.org/debian stable/main amd64 python3-pygments all 2.18.0+dfsg-2 [836 kB]
Get:26 http://deb.debian.org/debian stable/main amd64 python3-snowballstemmer all 2.2.0-4 [58.0 kB]
Get:27 http://deb.debian.org/debian stable/main amd64 sphinx-common all 8.1.3-5 [617 kB]
Get:28 http://deb.debian.org/debian stable/main amd64 python3-sphinx all 8.1.3-5 [468 kB]
Get:29 http://deb.debian.org/debian stable/main amd64 sphinx-rtd-theme-common all 3.0.2+dfsg-2 [1023 kB]
Get:30 http://deb.debian.org/debian stable/main amd64 python3-sphinxcontrib.jquery all 4.1-5 [7348 B]
Get:31 http://deb.debian.org/debian stable/main amd64 python3-sphinx-rtd-theme all 3.0.2+dfsg-2 [29.7 kB]
Fetched 20.1 MB in 1s (25.3 MB/s)                    
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 79, <STDIN> line 31.)
debconf: falling back to frontend: Readline
Extracting templates from packages: 100%
Selecting previously unselected package fonts-lato.
(Reading database ... 42377 files and directories currently installed.)
Preparing to unpack .../00-fonts-lato_2.015-1_all.deb ...
Unpacking fonts-lato (2.015-1) ...
Selecting previously unselected package sgml-base.
Preparing to unpack .../01-sgml-base_1.31+nmu1_all.deb ...
Unpacking sgml-base (1.31+nmu1) ...
Selecting previously unselected package xml-core.
Preparing to unpack .../02-xml-core_0.19_all.deb ...
Unpacking xml-core (0.19) ...
Selecting previously unselected package docutils-common.
Preparing to unpack .../03-docutils-common_0.21.2+dfsg-2_all.deb ...
Unpacking docutils-common (0.21.2+dfsg-2) ...
Selecting previously unselected package fonts-font-awesome.
Preparing to unpack .../04-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ...
Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ...
Selecting previously unselected package javascript-common.
Preparing to unpack .../05-javascript-common_12+nmu1_all.deb ...
Unpacking javascript-common (12+nmu1) ...
Selecting previously unselected package libdonau.
Preparing to unpack .../06-libdonau_1.6.1-0+trixie_amd64.deb ...
Unpacking libdonau (1.6.1-0+trixie) ...
Selecting previously unselected package libjs-jquery.
Preparing to unpack .../07-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ...
Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ...
Selecting previously unselected package libjs-underscore.
Preparing to unpack .../08-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ...
Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ...
Selecting previously unselected package libjs-sphinxdoc.
Preparing to unpack .../09-libjs-sphinxdoc_8.1.3-5_all.deb ...
Unpacking libjs-sphinxdoc (8.1.3-5) ...
Selecting previously unselected package taler-merchant-webui.
Preparing to unpack .../10-taler-merchant-webui_1.6.5-0+trixie_all.deb ...
Unpacking taler-merchant-webui (1.6.5-0+trixie) ...
Preparing to unpack .../11-taler-merchant_1.6.5-0+trixie_amd64.deb ...
Unpacking taler-merchant (1.6.5-0+trixie) over (1.5.16-0+trixie) ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 79.)
debconf: falling back to frontend: Readline
Preparing to unpack .../12-libtalermerchant_1.6.5-0+trixie_amd64.deb ...
Unpacking libtalermerchant (1.6.5-0+trixie) over (1.5.16-0+trixie) ...
Selecting previously unselected package python-babel-localedata.
Preparing to unpack .../13-python-babel-localedata_2.17.0-1_all.deb ...
Unpacking python-babel-localedata (2.17.0-1) ...
Selecting previously unselected package python3-alabaster.
Preparing to unpack .../14-python3-alabaster_0.7.16-0.1_all.deb ...
Unpacking python3-alabaster (0.7.16-0.1) ...
Selecting previously unselected package python3-babel.
Preparing to unpack .../15-python3-babel_2.17.0-1_all.deb ...
Unpacking python3-babel (2.17.0-1) ...
Selecting previously unselected package python3-defusedxml.
Preparing to unpack .../16-python3-defusedxml_0.7.1-3_all.deb ...
Unpacking python3-defusedxml (0.7.1-3) ...
Selecting previously unselected package python3-roman.
Preparing to unpack .../17-python3-roman_5.0-1_all.deb ...
Unpacking python3-roman (5.0-1) ...
Selecting previously unselected package python3-docutils.
Preparing to unpack .../18-python3-docutils_0.21.2+dfsg-2_all.deb ...
Unpacking python3-docutils (0.21.2+dfsg-2) ...
Selecting previously unselected package python3-imagesize.
Preparing to unpack .../19-python3-imagesize_1.4.1-1_all.deb ...
Unpacking python3-imagesize (1.4.1-1) ...
Selecting previously unselected package python3-markupsafe.
Preparing to unpack .../20-python3-markupsafe_2.1.5-1+b3_amd64.deb ...
Unpacking python3-markupsafe (2.1.5-1+b3) ...
Selecting previously unselected package python3-jinja2.
Preparing to unpack .../21-python3-jinja2_3.1.6-1_all.deb ...
Unpacking python3-jinja2 (3.1.6-1) ...
Selecting previously unselected package python3-packaging.
Preparing to unpack .../22-python3-packaging_25.0-1_all.deb ...
Unpacking python3-packaging (25.0-1) ...
Selecting previously unselected package python3-pygments.
Preparing to unpack .../23-python3-pygments_2.18.0+dfsg-2_all.deb ...
Unpacking python3-pygments (2.18.0+dfsg-2) ...
Selecting previously unselected package python3-snowballstemmer.
Preparing to unpack .../24-python3-snowballstemmer_2.2.0-4_all.deb ...
Unpacking python3-snowballstemmer (2.2.0-4) ...
Selecting previously unselected package sphinx-common.
Preparing to unpack .../25-sphinx-common_8.1.3-5_all.deb ...
Unpacking sphinx-common (8.1.3-5) ...
Selecting previously unselected package python3-sphinx.
Preparing to unpack .../26-python3-sphinx_8.1.3-5_all.deb ...
Unpacking python3-sphinx (8.1.3-5) ...
Selecting previously unselected package sphinx-rtd-theme-common.
Preparing to unpack .../27-sphinx-rtd-theme-common_3.0.2+dfsg-2_all.deb ...
Unpacking sphinx-rtd-theme-common (3.0.2+dfsg-2) ...
Selecting previously unselected package python3-sphinxcontrib.jquery.
Preparing to unpack .../28-python3-sphinxcontrib.jquery_4.1-5_all.deb ...
Unpacking python3-sphinxcontrib.jquery (4.1-5) ...
Selecting previously unselected package python3-sphinx-rtd-theme.
Preparing to unpack .../29-python3-sphinx-rtd-theme_3.0.2+dfsg-2_all.deb ...
Unpacking python3-sphinx-rtd-theme (3.0.2+dfsg-2) ...
Preparing to unpack .../30-taler-merchant-typst_1.6.5-0+trixie_amd64.deb ...
Unpacking taler-merchant-typst (1.6.5-0+trixie) over (1.5.16-0+trixie) ...
Setting up javascript-common (12+nmu1) ...
Setting up fonts-lato (2.015-1) ...
Setting up taler-merchant-typst (1.6.5-0+trixie) ...
Setting up python3-defusedxml (0.7.1-3) ...
Setting up python3-alabaster (0.7.16-0.1) ...
Setting up python3-markupsafe (2.1.5-1+b3) ...
Setting up python-babel-localedata (2.17.0-1) ...
Setting up python3-roman (5.0-1) ...
Setting up python3-jinja2 (3.1.6-1) ...
Setting up python3-pygments (2.18.0+dfsg-2) ...
Setting up python3-packaging (25.0-1) ...
Setting up python3-snowballstemmer (2.2.0-4) ...
Setting up sgml-base (1.31+nmu1) ...
Setting up libdonau (1.6.1-0+trixie) ...
Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ...
Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ...
Setting up sphinx-rtd-theme-common (3.0.2+dfsg-2) ...
Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ...
Setting up taler-merchant-webui (1.6.5-0+trixie) ...
Setting up python3-imagesize (1.4.1-1) ...
Setting up python3-babel (2.17.0-1) ...
update-alternatives: using /usr/bin/pybabel-python3 to provide /usr/bin/pybabel (pybabel) in auto mode
Setting up libtalermerchant (1.6.5-0+trixie) ...
Setting up libjs-sphinxdoc (8.1.3-5) ...
Setting up xml-core (0.19) ...
Setting up taler-merchant (1.6.5-0+trixie) ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 79.)
debconf: falling back to frontend: Readline
Not enabling or starting Taler merchant services (marker not found or was 'disabled').
/var/lib/dpkg/info/taler-merchant.postinst: line 99: /usr/share/taler-merchant//spa/index.css: No such file or directory
/var/lib/dpkg/info/taler-merchant.postinst: line 100: /usr/share/taler-merchant//spa/index.css: No such file or directory
/var/lib/dpkg/info/taler-merchant.postinst: line 99: /usr/share/taler-merchant//spa/index.js: No such file or directory
/var/lib/dpkg/info/taler-merchant.postinst: line 100: /usr/share/taler-merchant//spa/index.js: No such file or directory
/var/lib/dpkg/info/taler-merchant.postinst: line 99: /usr/share/taler-merchant//spa/lang.js: No such file or directory
/var/lib/dpkg/info/taler-merchant.postinst: line 100: /usr/share/taler-merchant//spa/lang.js: No such file or directory
Setting up sphinx-common (8.1.3-5) ...
Processing triggers for fontconfig (2.15.0-2.3) ...
Processing triggers for libc-bin (2.41-12+deb13u3) ...
Processing triggers for sgml-base (1.31+nmu1) ...
Setting up docutils-common (0.21.2+dfsg-2) ...
Processing triggers for sgml-base (1.31+nmu1) ...
Setting up python3-docutils (0.21.2+dfsg-2) ...
Setting up python3-sphinx (8.1.3-5) ...
Setting up python3-sphinxcontrib.jquery (4.1-5) ...
Setting up python3-sphinx-rtd-theme (3.0.2+dfsg-2) ...
root@1b0bd36dc346:/# cd /root/
root@1b0bd36dc346:~# ./start_base_services_for_taler.sh 
Start certbot renewal...
Create log folder if not yet done... giving permission to taler-merchant-httpd:
Start base services needed for Taler Self-Provisioning.

Read secrets needed for SMS delivery: OK
1. postgresql:
Starting PostgreSQL 17 database server: main.
2. Switching now to user taler-merchant-httpd, in /usr/local/bin; find executable start_merchant.sh there!

taler-merchant-httpd@1b0bd36dc346:/usr/local/bin$ taler-merchant-dbinit 
2026-06-17T12:59:08.256681+0000 taler-merchant-dbinit-786 WARNING Could not run PSQL on file /usr/share/taler-merchant/sql/merchant-0036.sql: psql exit code was 3
2026-06-17T12:59:08.256743+0000 taler-merchant-dbinit-786 ERROR Failed to load SQL statements from `merchant-*'
2026-06-17T12:59:08.256774+0000 taler-merchant-dbinit-786 ERROR Failed to initialize tables
taler-merchant-httpd@1b0bd36dc346:/usr/local/bin$ 

vecirex

2026-06-17 20:18

reporter   ~0028938

Try to reproduce in two additional ways:

1. Fresh install in podman container, but from scratch; first taler-merchant v1.5.16, then upgrade to trixie-testing.
2. Fresh install in container, but using systemd (to exclude it has to do with the custom scripting or postinstall scripts not running through).

vecirex

2026-06-24 16:38

reporter   ~0028970

Added systemd unit issue being disabled, 0011545.

Issue History

Date Modified Username Field Change
2026-06-12 16:27 vecirex New Issue
2026-06-12 16:27 vecirex Assigned To => vecirex
2026-06-12 16:27 vecirex Status new => assigned
2026-06-12 16:28 vecirex Description Updated
2026-06-15 22:23 vecirex Relationship added parent of 0011511
2026-06-17 14:55 vecirex Relationship added related to 0011528
2026-06-17 14:56 vecirex Summary Test taler-merchant v1.6.5 to be production-ready => Test taler-merchant v1.6.5 to be production-ready [-> taler-merchant v1.6.6 needed]
2026-06-17 14:56 vecirex Status assigned => feedback
2026-06-17 15:01 vecirex Note Added: 0028927
2026-06-17 15:03 vecirex Status feedback => resolved
2026-06-17 15:03 vecirex Resolution open => fixed
2026-06-17 20:18 vecirex Status resolved => confirmed
2026-06-17 20:18 vecirex Resolution fixed => reopened
2026-06-17 20:18 vecirex Note Added: 0028938
2026-06-17 20:20 vecirex Tag Attached: mytops
2026-06-17 20:21 vecirex Summary Test taler-merchant v1.6.5 to be production-ready [-> taler-merchant v1.6.6 needed] => Test taler-merchant v1.6.5 to be production-ready [-> taler-merchant v1.6.6 might be needed; reproduce first]
2026-06-17 20:21 vecirex Summary Test taler-merchant v1.6.5 to be production-ready [-> taler-merchant v1.6.6 might be needed; reproduce first] => Test taler-merchant v1.6.5 to be production-ready [-> taler-merchant v1.6.6 might be needed; reproduce furtherly]
2026-06-24 16:38 vecirex Relationship added related to 0011545
2026-06-24 16:38 vecirex Note Added: 0028970
2026-06-24 16:38 vecirex Status confirmed => assigned