mod_traceback/mod_traceback.lua
author Kim Alvefur <zash@zash.se>
Sat, 02 Mar 2024 14:47:09 +0100
changeset 5855 dde9d21a599f
parent 2777 7a4e8dbbd30d
permissions -rw-r--r--
mod_traceback: Hook signal via event instead of directly Safer this way, see Prosody trunk rev 69faf3552d52
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2777
7a4e8dbbd30d mod_traceback: Write current stack trace to file on SIGUSR1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     1
module:set_global();
7a4e8dbbd30d mod_traceback: Write current stack trace to file on SIGUSR1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     2
7a4e8dbbd30d mod_traceback: Write current stack trace to file on SIGUSR1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     3
local traceback = require "util.debug".traceback;
7a4e8dbbd30d mod_traceback: Write current stack trace to file on SIGUSR1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     4
5855
dde9d21a599f mod_traceback: Hook signal via event instead of directly
Kim Alvefur <zash@zash.se>
parents: 2777
diff changeset
     5
local signal = module:get_option_string(module.name, "SIGUSR1");
dde9d21a599f mod_traceback: Hook signal via event instead of directly
Kim Alvefur <zash@zash.se>
parents: 2777
diff changeset
     6
module:hook("signal/" .. signal, function()
dde9d21a599f mod_traceback: Hook signal via event instead of directly
Kim Alvefur <zash@zash.se>
parents: 2777
diff changeset
     7
	module:log("info", "Received %s, writing traceback", signal);
dde9d21a599f mod_traceback: Hook signal via event instead of directly
Kim Alvefur <zash@zash.se>
parents: 2777
diff changeset
     8
	local f = io.open(prosody.paths.data .. "/traceback.txt", "a+");
2777
7a4e8dbbd30d mod_traceback: Write current stack trace to file on SIGUSR1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     9
	f:write(traceback(), "\n");
7a4e8dbbd30d mod_traceback: Write current stack trace to file on SIGUSR1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    10
	f:close();
7a4e8dbbd30d mod_traceback: Write current stack trace to file on SIGUSR1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    11
end);
7a4e8dbbd30d mod_traceback: Write current stack trace to file on SIGUSR1
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    12