diff --git a/lightningd/lightningd.c b/lightningd/lightningd.c index 8c011ea2c..96eab8550 100644 --- a/lightningd/lightningd.c +++ b/lightningd/lightningd.c @@ -74,7 +74,8 @@ static struct lightningd *new_lightningd(const tal_t *ctx, ld->dev_disconnect_fd = -1; ld->dev_hsm_seed = NULL; ld->dev_subdaemon_fail = false; - memleak_init(ld, backtrace_state); + if (getenv("LIGHTNINGD_DEV_MEMLEAK")) + memleak_init(ld, backtrace_state); #endif list_head_init(&ld->peers); diff --git a/lightningd/memdump.c b/lightningd/memdump.c index 9f2434f1c..9d14f2f20 100644 --- a/lightningd/memdump.c +++ b/lightningd/memdump.c @@ -144,6 +144,10 @@ static void json_memleak(struct command *cmd, { struct json_result *response = new_json_result(cmd); + if (!getenv("LIGHTNINGD_DEV_MEMLEAK")) + command_fail(cmd, + "Leak detection needs $LIGHTNINGD_DEV_MEMLEAK"); + json_object_start(response, NULL); scan_mem(cmd, response, cmd->ld); json_object_end(response); diff --git a/tests/test_lightningd.py b/tests/test_lightningd.py index c6fe7950f..a828feea2 100644 --- a/tests/test_lightningd.py +++ b/tests/test_lightningd.py @@ -108,6 +108,7 @@ class NodeFactory(object): daemon.cmd_line.append("--dev-disconnect=dev_disconnect") if DEVELOPER: daemon.cmd_line.append("--dev-fail-on-subdaemon-fail") + daemon.env["LIGHTNINGD_DEV_MEMLEAK"] = "1" if VALGRIND: daemon.env["LIGHTNINGD_DEV_NO_BACKTRACE"] = "1" opts = [] if options is None else options