View Issue Details

IDProjectCategoryView StatusLast Update
0011518Talermerchant backendpublic2026-06-17 20:21
Reportervecirex Assigned Tovecirex  
PriorityurgentSeverityblockReproducibilityhave not tried
Status confirmedResolutionreopened 
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 new Various CSS / JS files shown not found in upgrade taler-merchant v1.5.16 (prod) to v1.6.5 (test) 
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).

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]