summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2025-06-17 11:16:13 +0200
committertv <tv@krebsco.de>2025-06-17 11:16:45 +0200
commit67c19d64cb00485ef32dd9a89f6987cd20e76d01 (patch)
tree64e4d49dffa10930c3d3a6983243e460a8dfbe06
parentd97b985e4005e810a9ed2d2dde66081e49b91712 (diff)
ejabberd: ensure PREVIOUS.LOG existsHEADmaster
This fixes an issue causing ejabberd to abort with following error message: ** FATAL ** {error,{"Cannot rename disk_log file",latest_log, "/var/lib/ejabberd/PREVIOUS.LOG", {log_header,trans_log,"4.3","4.20.4.1", ejabberd@localhost, {1665,261856,453060}}, {file_error,"/var/lib/ejabberd/PREVIOUS.LOG",erofs}}}
-rw-r--r--modules/ejabberd/default.nix11
1 files changed, 11 insertions, 0 deletions
diff --git a/modules/ejabberd/default.nix b/modules/ejabberd/default.nix
index f2da590..9607741 100644
--- a/modules/ejabberd/default.nix
+++ b/modules/ejabberd/default.nix
@@ -142,6 +142,17 @@ in {
ExecStartPre = [
"${pkgs.coreutils}/bin/ln -s \${CREDENTIALS_DIRECTORY} /tmp/credentials"
"${gen-dhparam} ${cfg.stateDir}/dhfile"
+ (pkgs.writeDash "ejabberd-ensure-PREVIOUS.LOG" ''
+ set -efu
+ cd ${cfg.stateDir}
+ if ! test -e PREVIOUS.LOG; then
+ if test -f LATEST.LOG; then
+ ${pkgs.coreutils}/bin/ln LATEST.LOG PREVIOUS.LOG
+ else
+ ${pkgs.coreutils}/bin/touch PREVIOUS.LOG
+ fi
+ fi
+ '')
];
ExecStart = "${cfg.pkgs.ejabberd}/bin/ejabberdctl foreground";
ExecStop = [
[cgit] Unable to lock slot /tmp/cgit/bb300000.lock: Permission denied (13)