Annotate

mod_traceback/mod_traceback.lua @ 6247:49fad071e644

mod_net_proxy: Use safer util.format for generating description string (thanks tom) It appears that server_event may emit port numbers (src_port() in this case) as strings, rather than integers. This causes string.format() to throw an error. Prosody's util.format is a more forgiving formatter and won't throw an error. The server_event behaviour may be best fixed for the sake of consistency, though.
author Matthew Wild <mwild1@gmail.com>
date Fri, 09 May 2025 10:00:15 +0100
parent 5875:dde9d21a599f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2773
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
5875
dde9d21a599f mod_traceback: Hook signal via event instead of directly
Kim Alvefur <zash@zash.se>
parents: 2773
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: 2773
diff changeset
6 module:hook("signal/" .. signal, function()
dde9d21a599f mod_traceback: Hook signal via event instead of directly
Kim Alvefur <zash@zash.se>
parents: 2773
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: 2773
diff changeset
8 local f = io.open(prosody.paths.data .. "/traceback.txt", "a+");
2773
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