mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-01-18 13:25:43 +01:00
pytest: test for crash when we do a plugin op and a plugin has not finished init
We try to start it twice, with predictable hilarious results: DEBUG plugin-manager started(20701) /home/rusty/devel/cvs/lightning/tests/plugins/slow_init.py DEBUG lightningd(20670): Adding block 101: 0f26301caaae390d1b956c3eb73827d1f87a2af306561348045bf1313b7551b0 INFO plugin-slow_init.py slow_init.py initializing DEBUG plugin-manager started(20704) /home/rusty/devel/cvs/lightning/tests/plugins/slow_init.py **BROKEN** lightningd(20670): FATAL SIGNAL 6 (version v0.7.1-146-g7d3b352-modded) **BROKEN** lightningd(20670): backtrace: common/daemon.c:45 (send_backtrace) 0x55a29c3ec539 **BROKEN** lightningd(20670): backtrace: common/daemon.c:53 (crashdump) 0x55a29c3ec589 **BROKEN** lightningd(20670): backtrace: (null):0 ((null)) 0x7fa281ebcf5f **BROKEN** lightningd(20670): backtrace: (null):0 ((null)) 0x7fa281ebced7 **BROKEN** lightningd(20670): backtrace: (null):0 ((null)) 0x7fa281e9e534 **BROKEN** lightningd(20670): backtrace: (null):0 ((null)) 0x7fa281e9e40e **BROKEN** lightningd(20670): backtrace: (null):0 ((null)) 0x7fa281eae011 **BROKEN** lightningd(20670): backtrace: lightningd/json_stream.c:225 (json_stream_output_) 0x55a29c3bff5f **BROKEN** lightningd(20670): backtrace: lightningd/plugin.c:383 (plugin_write_json) 0x55a29c3e103f **BROKEN** lightningd(20670): backtrace: ccan/ccan/io/io.c:59 (next_plan) 0x55a29c43316b **BROKEN** lightningd(20670): backtrace: ccan/ccan/io/io.c:435 (io_do_always) 0x55a29c433df1 **BROKEN** lightningd(20670): backtrace: ccan/ccan/io/poll.c:300 (handle_always) 0x55a29c435865 **BROKEN** lightningd(20670): backtrace: ccan/ccan/io/poll.c:377 (io_loop) 0x55a29c435b3d **BROKEN** lightningd(20670): backtrace: lightningd/io_loop_with_timers.c:24 (io_loop_with_timers) 0x55a29c3bdfcf **BROKEN** lightningd(20670): backtrace: lightningd/lightningd.c:830 (main) 0x55a29c3c44b6 **BROKEN** lightningd(20670): backtrace: (null):0 ((null)) 0x7fa281e9fb6a **BROKEN** lightningd(20670): backtrace: (null):0 ((null)) 0x55a29c3ac0f9 **BROKEN** lightningd(20670): backtrace: (null):0 ((null)) 0xffffffffffffffff Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
a477c69d46
commit
df8a6f615b
14
tests/plugins/slow_init.py
Executable file
14
tests/plugins/slow_init.py
Executable file
@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env python3
|
||||
from lightning import Plugin
|
||||
import time
|
||||
|
||||
plugin = Plugin()
|
||||
|
||||
|
||||
@plugin.init()
|
||||
def init(options, configuration, plugin):
|
||||
plugin.log("slow_init.py initializing")
|
||||
time.sleep(1)
|
||||
|
||||
|
||||
plugin.run()
|
@ -90,6 +90,20 @@ def test_plugin_dir(node_factory):
|
||||
node_factory.get_node(options={'plugin-dir': plugin_dir, 'greeting': 'Mars'})
|
||||
|
||||
|
||||
@pytest.mark.xfail(strict=True)
|
||||
def test_plugin_slowinit(node_factory):
|
||||
"""Tests the 'plugin' RPC command when init is slow"""
|
||||
n = node_factory.get_node()
|
||||
|
||||
n.rpc.plugin_start(os.path.join(os.getcwd(), "tests/plugins/slow_init.py"))
|
||||
n.daemon.wait_for_log("slow_init.py initializing")
|
||||
|
||||
# It's not actually configured yet, see what happens;
|
||||
# make sure 'rescan' and 'list' controls dont crash
|
||||
n.rpc.plugin_rescan()
|
||||
n.rpc.plugin_list()
|
||||
|
||||
|
||||
def test_plugin_command(node_factory):
|
||||
"""Tests the 'plugin' RPC command"""
|
||||
n = node_factory.get_node()
|
||||
|
Loading…
Reference in New Issue
Block a user