core-lightning/tests/plugins/hook-crash.py
Christian Decker 197a144505 plugin: Ensure RPC passthrough calls are terminated when plugin dies
We now track all pending RPC passthrough calls, and terminate them with an
error if the plugin dies.

Changelog-Fixed: JSON-RPC: Pending RPC method calls are now terminated if the handling plugin exits prematurely.
2020-04-14 11:07:55 +09:30

27 lines
530 B
Python
Executable File

#!/usr/bin/env python3
from pyln.client import Plugin
import sys
plugin = Plugin()
@plugin.async_method('hold-rpc-call')
def hold_rpc_call(plugin, request):
"""Simply never return, it should still get an error when the plugin crashes
"""
@plugin.hook('htlc_accepted')
def on_htlc_accepted(plugin, htlc, onion, **kwargs):
"""We die silently, i.e., without returning a response
`lightningd` should detect that and recover.
"""
plugin.log("Plugin is about to crash...")
sys.exit(1)
plugin.run()