When starting the node, it shuts down due to askrene exiting before replying to init.
__pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
#1 __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2 __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3 0x00007c180ec4527e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4 0x00007c180ec288ff in __GI_abort () at ./stdlib/abort.c:79
#5 0x00006317663af6e0 in call_error (msg=msg@entry=0x6317664c7c36 "Not a valid header") at ccan/ccan/tal/tal.c:95
#6 0x00006317663af789 in check_bounds (p=<optimized out>) at ccan/ccan/tal/tal.c:169
#7 0x00006317663af7ba in to_tal_hdr (ctx=0x63179352c3d8) at ccan/ccan/tal/tal.c:179
#8 0x00006317663b0727 in tal_resize_ (ctxp=ctxp@entry=0x7ffdf6cc1098, size=<optimized out>, size@entry=1, count=count@entry=40, clear=clear@entry=false) at ccan/ccan/tal/tal.c:750
#9 0x00006317663b0a38 in tal_dup_ (ctx=ctx@entry=0x631793529a18, p=<optimized out>, p@entry=0x63179352c3d8, size=size@entry=1, n=<optimized out>, extra=extra@entry=0, nullok=nullok@entry=false, label=0x6317664c4322 "char[]")
at ccan/ccan/tal/tal.c:854
#10 0x00006317663aedd8 in tal_strdup_ (ctx=ctx@entry=0x631793529a18, p=p@entry=0x63179352c3d8 "3 failures in current renerebalance run", label=label@entry=0x6317664c4322 "char[]") at ccan/ccan/tal/str/str.c:17
#11 0x0000631766387cd5 in tal_strdup_or_null (ctx=ctx@entry=0x631793529a18, str=str@entry=0x63179352c3d8 "3 failures in current renerebalance run") at common/utils.c:192
#12 0x000063176636708d in set_node_bias (layer=layer@entry=0x6317933b2558, node=node@entry=0x7ffdf6cc11a0, description=0x63179352c3d8 "3 failures in current renerebalance run", bias_factor=bias_factor@entry=-10 '\366',
relative=relative@entry=false, dir_out=dir_out@entry=true, timestamp=1785452703) at plugins/askrene/layer.c:360
#13 0x0000631766367281 in load_node_bias (plugin=<optimized out>, layer=layer@entry=0x6317933b2558, cursor=cursor@entry=0x7ffdf6cc1208, len=len@entry=0x7ffdf6cc1210) at plugins/askrene/layer.c:657
#14 0x0000631766367f34 in populate_layer (askrene=askrene@entry=0x6317933a92c8, layername=<optimized out>, data=<optimized out>, data@entry=0x631793528f08 "") at plugins/askrene/layer.c:783
#15 0x00006317663680d3 in load_layers (askrene=askrene@entry=0x6317933a92c8, init_cmd=init_cmd@entry=0x6317933a9ce8) at plugins/askrene/layer.c:826
#16 0x00006317663641f3 in init (init_cmd=0x6317933a9ce8, buf=<optimized out>, config=<optimized out>) at plugins/askrene/askrene.c:1413
#17 0x0000631766376b17 in handle_init (cmd=cmd@entry=0x6317933a9ce8,
buf=buf@entry=0x7c180e9ff0b6 "\n\n{\"jsonrpc\":\"2.0\",\"id\":\"cln:init#43400\",\"method\":\"init\",\"params\":{\"options\":{\"askrene-timeout\":10},\"configuration\":{\"lightning-dir\":\"/mnt/hdd/bitcoin/.lightning/bitcoin\",\"rpc-file\":\"lightning-rpc\",\"s"..., params=params@entry=0x6317933ac868) at plugins/libplugin.c:1556
#18 0x0000631766376e3d in ld_command_handle (plugin=plugin@entry=0x6317933a9498,
buffer=0x7c180e9ff0b6 "\n\n{\"jsonrpc\":\"2.0\",\"id\":\"cln:init#43400\",\"method\":\"init\",\"params\":{\"options\":{\"askrene-timeout\":10},\"configuration\":{\"lightning-dir\":\"/mnt/hdd/bitcoin/.lightning/bitcoin\",\"rpc-file\":\"lightning-rpc\",\"s"..., toks=<optimized out>) at plugins/libplugin.c:2062
#19 0x00006317663773be in ld_read_json (conn=0x6317933ab138, plugin=0x6317933a9498) at plugins/libplugin.c:2231
#20 0x00006317663a8b99 in next_plan (conn=conn@entry=0x6317933ab138, plan=plan@entry=0x6317933ab158) at ccan/ccan/io/io.c:60
#21 0x00006317663a906a in do_plan (conn=conn@entry=0x6317933ab138, plan=plan@entry=0x6317933ab158, idle_on_epipe=idle_on_epipe@entry=false) at ccan/ccan/io/io.c:422
#22 0x00006317663a9127 in io_ready (conn=conn@entry=0x6317933ab138, pollflags=pollflags@entry=1) at ccan/ccan/io/io.c:439
#23 0x00006317663aab35 in io_loop (timers=timers@entry=0x6317933a9590, expired=expired@entry=0x7ffdf6cc14e8) at ccan/ccan/io/poll.c:470
#24 0x000063176637782f in plugin_main (argv=argv@entry=0x7ffdf6cc17d8, init=init@entry=0x631766364113 <init>, data=0x6317933a92c8, restartability=restartability@entry=PLUGIN_RESTARTABLE, init_rpc=init_rpc@entry=true,
features=features@entry=0x0, commands=0x63176661e7e0 <commands>, num_commands=14, notif_subs=0x0, num_notif_subs=0, hook_subs=0x0, num_hook_subs=0, notif_topics=0x0, num_notif_topics=0) at plugins/libplugin.c:2429
#25 0x00006317663654d3 in main (argc=<optimized out>, argv=0x7ffdf6cc17d8) at plugins/askrene/askrene.c:1427
The description really only needs to be loaded once anyway. For context, I've been working on a plugin that adds a lot of layer data to askrene and sometimes biasing the whole node is more efficient than individual channels.
When starting the node, it shuts down due to askrene exiting before replying to init.
Attaching gdb to the core dump shows:
It might be due to a double take() on the same string in
load_node_bias:lightning/plugins/askrene/layer.c
Lines 770 to 782 in 372d8f7
The description really only needs to be loaded once anyway. For context, I've been working on a plugin that adds a lot of layer data to askrene and sometimes biasing the whole node is more efficient than individual channels.