Software / code / prosody-modules
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 |
| 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 |