View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0011545 | Taler | merchant backend | public | 2026-06-24 16:35 | 2026-07-06 10:45 |
| Reporter | vecirex | Assigned To | Christian Grothoff | ||
| Priority | none | Severity | major | Reproducibility | always |
| Status | resolved | Resolution | fixed | ||
| Product Version | git (master) | ||||
| Target Version | 1.6 | Fixed in Version | 1.6 | ||
| Summary | 0011545: taler-merchant.target gets removed upon reinstall/upgrade | ||||
| Description | This was observed already w/ running upgrade scripts, but can most easily be reproduced by just doing reinstall on the "taler-merchant" package:### root@betel:~# apt-get reinstall taler-merchant Reading package lists... Done Building dependency tree... Done Reading state information... Done 0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not upgraded. Need to get 1,848 kB of archives. After this operation, 0 B of additional disk space will be used. Get:1 https://deb.taler.net/apt/debian trixie-testing/main amd64 taler-merchant amd64 1.6.5-0+trixie [1,848 kB] Fetched 1,848 kB in 1s (2,176 kB/s) (Reading database ... 47039 files and directories currently installed.) Preparing to unpack .../taler-merchant_1.6.5-0+trixie_amd64.deb ... taler-merchant.target was enabled before upgrade. Removed '/etc/systemd/system/multi-user.target.wants/taler-merchant.target'. Unpacking taler-merchant (1.6.5-0+trixie) over (1.6.5-0+trixie) ... Setting up taler-merchant (1.6.5-0+trixie) ... 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 taler-merchant-dbinit-gc.service is a disabled or a static unit not running, not starting it. taler-merchant-dbinit-gc.timer is a disabled or a static unit not running, not starting it. taler-merchant-depositcheck.service is a disabled or a static unit not running, not starting it. taler-merchant-donaukeyupdate.service is a disabled or a static unit not running, not starting it. taler-merchant-exchangekeyupdate.service is a disabled or a static unit not running, not starting it. taler-merchant-httpd.service is a disabled or a static unit not running, not starting it. taler-merchant-httpd.socket is a disabled or a static unit not running, not starting it. taler-merchant-kyccheck.service is a disabled or a static unit not running, not starting it. taler-merchant-reconciliation.service is a disabled or a static unit not running, not starting it. taler-merchant-report-generator.service is a disabled or a static unit not running, not starting it. taler-merchant-webhook.service is a disabled or a static unit not running, not starting it. taler-merchant-wirewatch.service is a disabled or a static unit not running, not starting it. taler-merchant.target is a disabled or a static unit not running, not starting it. Processing triggers for man-db (2.13.1-1) ... Processing triggers for libc-bin (2.41-12+deb13u3) ... [master b903ba9] committing changes in /etc made by "apt-get reinstall taler-merchant" 1 file changed, 1 deletion(-) delete mode 120000 systemd/system/multi-user.target.wants/taler-merchant.target Scanning processes... Scanning linux images... Running kernel seems to be up-to-date. No services need to be restarted. No containers need to be restarted. No user sessions are running outdated binaries. No VM guests are running outdated hypervisor (qemu) binaries on this host. ### root@betel:~# systemctl status taler-merchant.target ○ taler-merchant.target - GNU Taler merchant Loaded: loaded (/usr/lib/systemd/system/taler-merchant.target; disabled; p> Active: inactive (dead) Jun 24 16:26:12 betel systemd[1]: Reached target taler-merchant.target - GNU Ta> Jun 24 16:28:28 betel systemd[1]: Stopped target taler-merchant.target - GNU Ta> ### root@betel:~# | ||||
| Additional Information | Observed in prod on taler-merchant v1.6.0 as well as in stage (on taler-merchant v1.6.5). | ||||
| Tags | No tags attached. | ||||
|
|
Workaround upon upgrade / reinstall / reboot:### root@betel:~# systemctl enable taler-merchant.target Created symlink '/etc/systemd/system/multi-user.target.wants/taler-merchant.target' → '/usr/lib/systemd/system/taler-merchant.target'. ### root@betel:~# systemctl status taler-merchant.target ○ taler-merchant.target - GNU Taler merchant Loaded: loaded (/usr/lib/systemd/system/taler-merchant.target; enabled; pr> Active: inactive (dead) Jun 24 16:26:12 betel systemd[1]: Reached target taler-merchant.target - GNU Ta> Jun 24 16:28:28 betel systemd[1]: Stopped target taler-merchant.target - GNU Ta> ### root@betel:~# systemctl start taler-merchant.target ### root@betel:~# systemctl status taler-merchant.target | grep active Active: active since Wed 2026-06-24 16:36:08 CEST; 4s ago ### root@betel:~# |
|
|
Just seen while doing kernel upgrade on betel/stage, still persists in taler-merchant v1.6.9 released fours days ago:### root@betel:~# uname -a Linux betel 6.12.95+deb13-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.95-1 (2026-07-04) x86_64 GNU/Linux ### root@betel:~# systemctl --failed UNIT LOAD ACTIVE SUB DESCRIPTION 0 loaded units listed. ### root@betel:~# ps -axw | grep taler-merchant 1034 pts/0 S+ 0:00 grep taler-merchant ### root@betel:~# taler-merchant-httpd --version taler-merchant-httpd v1.6.9 ### root@betel:~# systemctl status taler-merchant.target ○ taler-merchant.target - GNU Taler merchant Loaded: loaded (/usr/lib/systemd/system/taler-merchant.target; disabled; p> Active: inactive (dead) ### root@betel:~# systemctl enable taler-merchant.target Created symlink '/etc/systemd/system/multi-user.target.wants/taler-merchant.target' → '/usr/lib/systemd/system/taler-merchant.target'. ### root@betel:~# systemctl start taler-merchant.target ### root@betel:~# systemctl status taler-merchant.target | grep active Active: active since Mon 2026-07-06 06:31:00 CEST; 7s ago ### root@betel:~# ps -axw | grep taler-merchant 1198 ? Ss 0:00 /usr/bin/taler-merchant-depositcheck -c /etc/taler-merchant/taler-merchant.conf -L INFO 1199 ? Ss 0:00 /usr/bin/taler-merchant-donaukeyupdate -c /etc/taler-merchant/taler-merchant.conf -L INFO 1200 ? Ss 0:03 /usr/bin/taler-merchant-exchangekeyupdate -c /etc/taler-merchant/taler-merchant.conf -L INFO 1201 ? Ss 0:03 /usr/bin/taler-merchant-kyccheck -c /etc/taler-merchant/taler-merchant.conf -L INFO 1202 ? Ss 0:01 /usr/bin/taler-merchant-reconciliation -c /etc/taler-merchant/taler-merchant.conf -L INFO 1203 ? Ss 0:00 /usr/bin/taler-merchant-report-generator -c /etc/taler-merchant/taler-merchant.conf -L INFO 1204 ? Ss 0:00 /usr/bin/taler-merchant-webhook -c /etc/taler-merchant/taler-merchant.conf -L INFO 1205 ? Ss 0:00 /usr/bin/taler-merchant-wirewatch -c /etc/taler-merchant/taler-merchant.conf -L INFO 1206 ? Ss 0:01 /usr/bin/taler-merchant-httpd -c /etc/taler-merchant/taler-merchant.conf -L INFO 1207 ? Ss 0:00 postgres: 17/main: taler-merchant-httpd taler-merchant [local] idle 1208 ? Ss 0:00 postgres: 17/main: taler-merchant-httpd taler-merchant [local] idle 1209 ? Ss 0:00 postgres: 17/main: taler-merchant-httpd taler-merchant [local] idle 1210 ? Ss 0:00 postgres: 17/main: taler-merchant-httpd taler-merchant [local] idle 1211 ? Ss 0:00 postgres: 17/main: taler-merchant-httpd taler-merchant [local] idle 1212 ? S 0:01 taler-merchant-depositcheck -c /etc/taler-merchant/taler-merchant.conf -e https://exchange.stage.taler-ops.ch/ -L INFO -T 0 1213 ? S 0:00 taler-merchant-depositcheck -c /etc/taler-merchant/taler-merchant.conf -e https://exchange.taler-ops.ch/ -L INFO -T 0 1214 ? Ss 0:00 postgres: 17/main: taler-merchant-httpd taler-merchant [local] idle 1215 ? Ss 0:00 postgres: 17/main: taler-merchant-httpd taler-merchant [local] idle 1216 ? Ss 0:00 postgres: 17/main: taler-merchant-httpd taler-merchant [local] idle 1217 ? Ss 0:00 postgres: 17/main: taler-merchant-httpd taler-merchant [local] idle 1218 ? Ss 0:00 postgres: 17/main: taler-merchant-httpd taler-merchant [local] idle 1258 pts/0 S+ 0:00 grep taler-merchant ### root@betel:~# |
|
|
Eh: debian/taler-merchant.prerm writes the marker to /run/taler-merchant/.was-enabled debian/taler-merchant.postinst reads the marker from /var/lib/taler-merchant/.was-enabled That won't work... We changed it from /run to /var/lib earlier, seems one path was skipped. Note that the fix will only work for the next re-install: first the package needs to be upgraded, and then the upgrade after that should work properly. |
|
|
OK, will test: ty! |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2026-06-24 16:35 | vecirex | New Issue | |
| 2026-06-24 16:35 | vecirex | Status | new => assigned |
| 2026-06-24 16:35 | vecirex | Assigned To | => Florian Dold |
| 2026-06-24 16:37 | vecirex | Note Added: 0028969 | |
| 2026-06-24 16:38 | vecirex | Relationship added | related to 0011518 |
| 2026-07-06 06:37 | vecirex | Note Added: 0029080 | |
| 2026-07-06 10:22 | Christian Grothoff | Note Added: 0029083 | |
| 2026-07-06 10:24 | Christian Grothoff | Assigned To | Florian Dold => Christian Grothoff |
| 2026-07-06 10:24 | Christian Grothoff | Status | assigned => resolved |
| 2026-07-06 10:24 | Christian Grothoff | Resolution | open => fixed |
| 2026-07-06 10:24 | Christian Grothoff | Fixed in Version | => 1.6 |
| 2026-07-06 10:24 | Christian Grothoff | Product Version | => git (master) |
| 2026-07-06 10:24 | Christian Grothoff | Target Version | => 1.6 |
| 2026-07-06 10:45 | vecirex | Note Added: 0029087 |