Mercurial > prosody-modules
annotate mod_traceback/mod_traceback.lua @ 5853:97c9b76867ca
mod_log_ringbuffer: Detach event handlers on logging reload (thanks Menel)
Otherwise the global event handlers accumulate, one added each time
logging is reoladed, and each invocation of the signal or event triggers
one dump of each created ringbuffer.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 03 Mar 2024 11:23:40 +0100 |
parents | dde9d21a599f |
children |
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 |
5851
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 |