Commit Graph

19302 Commits

Author SHA1 Message Date
Oliver Gugger
df6c02e3af Merge pull request #10068 from ellemouton/graphResetForCallbacks
multi: let all V1Store `ForEach*` methods take a `reset` call-back
2025-07-15 04:54:47 -06:00
Elle Mouton
83f6dc4983 multi: reset for ForEachNodeDirectedChannel 2025-07-15 11:25:10 +02:00
Elle Mouton
13d0bd5ef6 graph/db: let ForEachChannelCacheable take a reset param 2025-07-15 11:25:10 +02:00
Elle Mouton
b3f3766fe6 multi: pass reset to GraphSession 2025-07-15 11:25:09 +02:00
Elle Mouton
e17fd58a1d graph/db: pass reset to ForEachNodeCacheable 2025-07-15 11:25:09 +02:00
Elle Mouton
21ac7ef6f4 multi: add reset to ForEachNode 2025-07-15 11:25:09 +02:00
Elle Mouton
c32bf642d2 multi: pass reset to ForEachNodeCached 2025-07-15 11:23:27 +02:00
Elle Mouton
e5fbca8299 multi: let ForEachNodeChannel take a reset param 2025-07-15 11:23:27 +02:00
Elle Mouton
16126d7703 graph/db: expose reset in ForEachSourceNodeChannel 2025-07-15 11:23:27 +02:00
Elle Mouton
88261834e5 graph/db: expose reset in ForEachChannel
Add a `reset` call-back param to the V1Store ForEachChannel method.
2025-07-15 11:23:26 +02:00
Elle Mouton
e00f0a03fc graph/db: prep SQLStore for reset param
This commit just surfaces the locations in the SQLStore where we will
later pass reset params through.
2025-07-15 11:23:26 +02:00
Elle Mouton
57d4ce0f9b graph/db: expose KVStore locations where a reset is needed
This commit passes no-op reset callbacks to various places where they
are needed in the KVStore. Upcoming commits will replace the no-ops by
adding reset params to the methods that require it.
2025-07-15 11:23:26 +02:00
Oliver Gugger
302551ade0 Merge pull request #10071 from ellemouton/graphSQLMigPlugIn
lnd+itest: plug in graph SQL migration under test tag & add itest
2025-07-15 01:52:30 -06:00
Elle Mouton
a2ffa74684 itest: graph sql migration itest
This commit adds a basic itest that is run under the `test_native_sql`
flag. It tests that the migration is idempotent and that the node cant
be restarted without the `db.use-native-sql` flag once the graph
migration has been run.
2025-07-15 06:40:22 +02:00
Elle Mouton
f5b50afb92 itest: make invoice mig helpers re-usable
Refactor to make some of the invoice migration helpers re-usable so that
we can use them for the graph migration itests.
2025-07-15 06:35:24 +02:00
Elle Mouton
902611d86a lnd: plug in graph SQL migration into dev build
This commit plugs in the graph kvdb-to-sql migration for builds
containing the `test_native_sql` tag. This will allow us to perform
local tests and write itests for the migration without exposing it to
the production release build.
2025-07-15 06:34:31 +02:00
Elle Mouton
223cec442b itest: use random hash gen helper 2025-07-15 06:31:51 +02:00
Oliver Gugger
5bb2277749 Merge pull request #10070 from yyforyongyu/fix-invoice-unit-test
Fix invoice unit test `TestInvoiceRegistry`
2025-07-14 00:48:28 -06:00
Oliver Gugger
e62e4918cc Merge pull request #9659 from Abdulkbk/benchmark-fns
fn: fix flake in TestPropForEachConcOutperformsMapWhenExpensive
2025-07-14 00:47:01 -06:00
Elle
add81f1388 Merge pull request #10064 from ellemouton/getChanInfoGrpcErr
rpcserver: return consistent grpc NotFound error for GetChaninfo & LookupInvoice
2025-07-14 08:34:46 +02:00
yyforyongyu
5d5e635c48 invoices: fix typos 2025-07-14 13:48:10 +08:00
yyforyongyu
5d0c787856 invoices: remove the global mock htlcModifierMock
This can create race in the tests.
2025-07-14 13:44:45 +08:00
Elle
6b326152d4 Merge pull request #10038 from ellemouton/graphMig3-indexes
[graph mig 3]: graph/db: migrate zombies, closed SCIDs, prune log from kvdb to SQL
2025-07-11 10:52:34 +02:00
Elle Mouton
c2fcaae7ec docs: add release notes entry 2025-07-11 09:36:19 +02:00
Elle Mouton
8b82a5c8fe graph/db: migrate zombie index to SQL
This commit expands `MigrateGraphToSQL` to include migration of the
zombie index.

NOTE: we take this opportunity to clean up the zombie index a bit by
first checking for each channel in the zombie index if it has been
marked as closed in the closed-scid index. If it has, then there is no
need to include it in the zombie index. A special case test for this
is added too.
2025-07-11 09:36:17 +02:00
Elle Mouton
0cb17bbbe5 graph/db: migrate closed SCID index
This commit expands `MigrateGraphToSQL` to include the migration of the
closed-scid index.
2025-07-11 09:36:14 +02:00
Elle Mouton
03ede9ccef graph/db: migrate prune log
This commit expands the `MigrateGraphToSQL` to include migration of the
prune log.
2025-07-11 09:15:47 +02:00
Oliver Gugger
63609b0801 Merge pull request #10061 from yyforyongyu/fix-listsweep-itest
itest+lntest: fix flake in `testListSweeps`
2025-07-11 00:25:48 -06:00
Oliver Gugger
04a2be29d2 Merge pull request #10066 from ellemouton/graphFixMergeIssue
graph/db: fix sql test compilation
2025-07-10 08:08:42 -06:00
Elle Mouton
36f8a66b5a graph/db: remove temporary test skip
The skip is no longer needed.
2025-07-10 14:54:04 +02:00
Elle Mouton
b7d4f80e3e graph/db: pass in ctx to test method
Fix compilation error.
2025-07-10 14:53:10 +02:00
Oliver Gugger
8ee661f18f Merge pull request #10043 from ellemouton/ctx3
multi: add context.Context param to more graphdb.V1Store methods
2025-07-10 13:40:51 +02:00
Torkel Rogstad
ed7b056ced docs: update release notes 2025-07-10 11:36:20 +02:00
Torkel Rogstad
c8b04d03f5 itest+lntest: add grpc NotFound error code test 2025-07-10 11:36:20 +02:00
Elle Mouton
23c3aaac6a rpcserver: catch extra err case in LookupInvoice
For a kvdb backed invoices DB, we sometimes will return the
ErrNoInviocesCreated error if no invoices have ever been created on the
node. In these cases we should still wrap the returned error in the grpc
NotFound code.
2025-07-10 11:21:37 +02:00
Torkel Rogstad
7a52b6ca5e rpcserver: return consistent grpc NotFound error for GetChaninfo
So that we can properly convert this NotFound error back to our
`graphdb.ErrEdgeNotFound` error if we are making this call to another
node via RPC.
2025-07-10 11:21:31 +02:00
Olaoluwa Osuntokun
4fef0f4d7a Merge pull request #10001 from yyforyongyu/finalize-stfu
Enable quiescence in production and add timeout config
2025-07-09 19:01:48 -07:00
Abdullahi Yunus
3c759ef081 fn: remove flaky test
In this commit, we remove TestPropForEachConcOutperformsMapWhenExpensive
as it's flaky and causes the CI to fail. The previous commit intro-
duced a replacement, which benchmarked the functions.
2025-07-09 21:21:45 +01:00
Abdullahi Yunus
36dfed1cba fn: add benchmark for Map and ForEachConc fns 2025-07-09 21:21:45 +01:00
yyforyongyu
52d963bae0 itest+lntest: fix flake in testListSweeps
We now make sure we assert the `ListSweeps` results in a wait closure.
2025-07-09 20:52:02 +03:00
Oliver Gugger
0e830da9d9 Merge pull request #10058 from ellemouton/fix/rpc-graph-cache-race
rpcserver: fix race condition in graph cache eviction
2025-07-09 17:09:38 +02:00
Oliver Gugger
10209b9301 Merge pull request #10059 from ellemouton/geminiStyle
.gemini: add styleguide.md
2025-07-09 17:08:46 +02:00
Elle Mouton
b62793ada8 .gemini: add styleguide.md
Add a styleguide for gemini derived from docs/development_guidelines.md.
2025-07-09 16:22:32 +02:00
Oliver Gugger
ea32aac770 Merge pull request #10050 from ellemouton/graphMig2-channels
[graph mig 2]: graph/db: migrate graph channels and policies from kvdb to SQL
2025-07-09 13:09:27 +02:00
Elle Mouton
ef181adbc8 rpcserver: fix race condition in graph cache eviction
The previous implementation of the graph cache evictor used
time.AfterFunc, which introduced a race condition. The closure
passed to AfterFunc could execute before the call returned and
assigned the timer to the r.graphCacheEvictor field.

This created a scenario where the closure would attempt to call
Reset() on a nil r.graphCacheEvictor, causing a panic.

This commit fixes the race by replacing time.AfterFunc with a
more robust pattern using time.NewTimer and a dedicated goroutine.
The new timer is created and assigned immediately, ensuring that
r.graphCacheEvictor is never nil when accessed.

The dedicated goroutine now safely manages the timer's lifecycle,
resetting it upon firing and stopping it gracefully upon server
shutdown, which also prevents goroutine leaks.
2025-07-09 11:56:09 +02:00
Elle Mouton
640caeff39 docs: add release notes entry 2025-07-09 10:18:57 +02:00
Elle Mouton
b58089049a graph/db: migrate channels and polices to SQL
In this commit, the `MigrateGraphToSQL` function is expanded to migrate
the channel and channe policy data. Both of these have the special case
where the kvdb store records may contain invalid TLV. If we encounter a
channel with invalid TLV, we skip it and its policies. If we encounter a
policy with invalid TLV, we skip it.

The `TestMigrateGraphToSQL` and `TestMigrationWithChannelDB` tests are
updated accordingly.
2025-07-09 10:18:57 +02:00
Olaoluwa Osuntokun
fb68f36acb Merge pull request #10048 from ziggie1984/fix-utxonursery-encoding
contractcourt: fix encoding
2025-07-08 16:55:40 -07:00
Olaoluwa Osuntokun
d40ac4564b Merge pull request #10044 from ziggie1984/fix-shutdown-issue
Fix Shutdown deadlock in some scenarios
2025-07-08 16:53:30 -07:00
ziggie
354585e9dc docs: add release-notes 2025-07-08 20:10:31 +02:00