cln/plugins
Rusty Russell 2ba55cc64b sql: fix crash for large channelmoves tables.
I've reworked this: in general we should clear the refresh bit before
calling the jsonrpc to do the update.  This allows the wait callback to
set the bit again if there's more to do, so we won't lose entries.

Now it's clear that we can remove the overzealous assert.

sql: plugins/sql.c:1749: refresh_by_created_index: Assertion `td->refresh_needs != REFRESH_UNNECESSARY' failed.
sql: FATAL SIGNAL 6 (version v26.04rc2)
0x5618e147892e send_backtrace
	common/daemon.c:38
0x5618e14789bb crashdump
	common/daemon.c:83
0x7f54d10ea04f ???
	./signal/../sysdeps/unix/sysv/linux/x86_64/libc_sigaction.c:0
0x7f54d1138eec __pthread_kill_implementation
	./nptl/pthread_kill.c:44
0x7f54d10e9fb1 __GI_raise
	../sysdeps/posix/raise.c:26
0x7f54d10d4471 __GI_abort
	./stdlib/abort.c:79
0x7f54d10d4394 __assert_fail_base
	./assert/assert.c:94
0x7f54d10e2ec1 __GI___assert_fail
	./assert/assert.c:103
0x5618e1472725 refresh_by_created_index
	plugins/sql.c:1749
0x5618e14736af one_refresh_done
	plugins/sql.c:579
0x5618e1473932 limited_list_done
	plugins/sql.c:1738
0x5618e1477418 handle_rpc_reply
	plugins/libplugin.c:1093
0x5618e1477548 rpc_conn_read_response
	plugins/libplugin.c:1398
0x5618e147ec71 next_plan
	ccan/ccan/io/io.c:60
0x5618e147ef90 do_plan
	ccan/ccan/io/io.c:422
0x5618e147f049 io_ready
	ccan/ccan/io/io.c:439
0x5618e147ffae io_loop
	ccan/ccan/io/poll.c:470
0x5618e14786af plugin_main
	plugins/libplugin.c:2461
0x5618e1474b12 main
	plugins/sql.c:2219
0x7f54d10d5249 __libc_start_call_main
	../sysdeps/nptl/libc_start_call_main.h:58
0x7f54d10d5304 __libc_start_main_impl
	../csu/libc-start.c:360
0x5618e1470710 ???
	_start+0x20:0
0xffffffffffffffff ???
	???:0

Diagnosed-by: Lagrang3 <lagrang3@protonmail.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Changelog-None: Introduced this release.
2026-04-09 12:12:39 +09:30
..
askrene askrene-unreserve: add dev_remove_all option 2026-03-18 01:13:54 +10:30
bip353-plugin rust libraries: update bitcoin to 0.32.2 2026-03-19 17:33:11 +01:00
bkpr bkpr-report: enhance tag syntax from {tag:replacement} to {tag?if-set:if-not-set} 2026-04-02 14:54:20 +10:00
currencyrate-plugin currencyrate: implement currencyrate command. 2026-03-23 14:03:17 +10:00
examples cln-plugin: add a hook builder to make use of before, after and filters options 2026-03-14 04:15:49 +10:30
grpc-plugin msggen: generate native notification bindings from schemas 2026-04-02 12:20:20 +10:00
lsps-plugin rust libraries: update bitcoin to 0.32.2 2026-03-19 17:33:11 +01:00
renepay common: add tal_free_if_taken() helper for common case. 2026-03-29 14:35:54 +10:30
rest-plugin currencyrate: new rust plugin to provide the currencyconvert API 2026-03-06 15:59:49 +10:30
spender splice script: Fix rare memleak in plugin 2026-04-09 11:04:42 +09:30
src cln-plugin: add a hook builder to make use of before, after and filters options 2026-03-14 04:15:49 +10:30
test libplugin: hand command, not plugin, to parsing functions. 2026-03-23 14:03:17 +10:00
wss-proxy-plugin crates: centralize version management 2025-11-14 09:02:35 +10:30
xpay xpay: handle pay ignoring unknown arguments 2026-03-16 10:49:27 +10:00
.gitignore lsps: Add service implementation for LSPS0 2025-05-02 13:34:21 -07:00
autoclean.c plugins: simplify datastore interfaces now callers have mkdatastorekey. 2026-03-23 14:03:17 +10:00
bcli.c bcli: replace magic numbers with constants 2026-02-18 14:16:29 +10:00
Cargo.toml rust libraries: update bitcoin to 0.32.2 2026-03-19 17:33:11 +01:00
chanbackup.c plugins: simplify datastore interfaces now callers have mkdatastorekey. 2026-03-23 14:03:17 +10:00
channel_hint.c bitcoin: hash_scid and hash_scidd public functions. 2026-02-19 17:04:35 +10:30
channel_hint.h bitcoin: hash_scid and hash_scidd public functions. 2026-02-19 17:04:35 +10:30
commando.c commando, chanbackup: use custommsg hooks. 2025-11-20 16:30:50 +10:30
establish_onion_path.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
establish_onion_path.h global: remove unnecessary includes from headers. 2025-10-23 06:44:04 +10:30
exposesecret.c ccan: update to get improved grab_file API, and adapt code. 2025-10-26 12:37:58 +10:30
fetchinvoice.c offers: encapsulate globals in plugin_get_data() 2026-02-23 19:05:37 +10:30
fetchinvoice.h plugins: cancelrecurringinvoice command. 2025-10-01 15:31:30 +09:30
funder.c libplugin: hand command, not plugin, to parsing functions. 2026-03-23 14:03:17 +10:00
funder_policy.c libplugin: hand command, not plugin, to parsing functions. 2026-03-23 14:03:17 +10:00
funder_policy.h libplugin: hand command, not plugin, to parsing functions. 2026-03-23 14:03:17 +10:00
keysend.c plugins: don't try to fetch max-locktime-blocks. 2026-01-20 19:32:42 +10:30
libplugin-pay.c common: add tal_free_if_taken() helper for common case. 2026-03-29 14:35:54 +10:30
libplugin-pay.h connectd, gossipd, pay, bcli: use timemono when solely measuring duration for timeouts. 2025-11-13 21:21:29 +10:30
libplugin.c common: add tal_free_if_taken() helper for common case. 2026-03-29 14:35:54 +10:30
libplugin.h plugins: simplify datastore interfaces now callers have mkdatastorekey. 2026-03-23 14:03:17 +10:00
Makefile currencyrate: rename to cln-currencyrate, change options to currencyrate-add/disable-source. 2026-03-06 15:59:49 +10:30
offers.c offers: use amount hints in find_best_peer for blinded paths. 2026-04-02 10:36:10 +10:30
offers.h offers: use amount hints in find_best_peer for blinded paths. 2026-04-02 10:36:10 +10:30
offers_inv_hook.c offers: encapsulate globals in plugin_get_data() 2026-02-23 19:05:37 +10:30
offers_inv_hook.h offers: check they use the blinded path if one is specified. 2024-07-17 10:57:11 +02:00
offers_invreq_hook.c offers: use amount hints in find_best_peer for blinded paths. 2026-04-02 10:36:10 +10:30
offers_invreq_hook.h offers: check they use the blinded path if one is specified. 2024-07-17 10:57:11 +02:00
offers_offer.c offers: use amount hints in find_best_peer for blinded paths. 2026-04-02 10:36:10 +10:30
offers_offer.h plugins: move fetchinvoice functionality into offers plugin. 2024-07-17 10:57:11 +02:00
pay.c plugins: don't try to fetch max-locktime-blocks. 2026-01-20 19:32:42 +10:30
README.md doc: fix wording in plugins/README.md 2020-01-06 12:57:59 +01:00
recklessrpc.c reckless: fail reckless rpc if executable fails 2026-03-18 14:11:01 +01:00
recover.c global: remove unnecessary includes from C files. 2025-10-23 06:44:04 +10:30
sql.c sql: fix crash for large channelmoves tables. 2026-04-09 12:12:39 +09:30
topology.c topology: in deterministic mode, only return one best candidate for listincoming. 2025-11-13 21:21:29 +10:30
txprepare.c plugins: fix %*.s typo. 2025-10-24 11:28:57 +10:30

Plugin Directory

Any file in this directory which is executable and whose name only consists of alphanumeric characters, space, '.', '-' or '_' will be automatically loaded when lightningd starts (unless suppressed with commandline options).