core-lightning/contrib/plugins/fail/failtimeout.py
Christian Decker c78d7e0f95 plugin: Increase manifest timeout to 60 seconds
Valgrind seems to be slowing the pay-plugin down enough for the 10
seconds timeout to get triggered on a semi-regular basis.

Reported-by: Rusty Russell <@rustyrussell>
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2019-01-20 03:06:03 +00:00

59 lines
1.2 KiB
Python
Executable File

#!/usr/bin/env python3
"""An example plugin that fails to answer to `getmanifest`
Used to test the `getmanifest` timeout.
"""
import json
import sys
import time
def json_getmanifest(request):
# Timeout is 60 seconds, so wait 11
time.sleep(61)
return {
"options": [
],
"rpcmethods": [
]
}
methods = {
'getmanifest': json_getmanifest,
}
partial = ""
for l in sys.stdin:
try:
partial += l
request = json.loads(partial)
except Exception:
continue
result = None
method = methods[request['method']]
params = request['params']
try:
if isinstance(params, dict):
result = method(request, **params)
else:
result = method(request, *params)
result = {
"jsonrpc": "2.0",
"result": result,
"id": request['id']
}
except Exception:
result = {
"jsonrpc": "2.0",
"error": "Error while processing {}".format(request['method']),
"id": request['id']
}
json.dump(result, fp=sys.stdout)
sys.stdout.write('\n')
sys.stdout.flush()
partial = ""