Skip to content

Conversation

@ellemouton
Copy link
Collaborator

@ellemouton ellemouton commented Dec 2, 2025

This issue seems to have re-surfaced this bug. The symptom of that bug was fixed in this pr but the root cause is still unknown.

With the graph refactor work done in the last release, some extra validation in the graph Builder has resurfaced the bug. The extra check requires that the FundingScript of a channel edge be set. So here, we just update the createMissingEdge helper to also set this value.

@gemini-code-assist
Copy link

Summary of Changes

Hello @ellemouton, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request refactors the server's logic for adding graph edges. The primary goal is to ensure that channel edges are directly persisted to the graph database. By switching from s.graphBuilder.AddEdge to s.graphDB.AddChannelEdge, the change streamlines the process of recording network topology, potentially resolving issues where edges might have been missed or incorrectly processed through the builder layer.

Highlights

  • Direct Graph Edge Addition: The AddEdge function within the newServer's graph interface implementation has been updated to directly call s.graphDB.AddChannelEdge. This change bypasses the graphBuilder for adding channel edges, ensuring a more direct interaction with the graph database.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@ziggie1984 ziggie1984 self-requested a review December 2, 2025 17:19
Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the localChanMgr initialization to directly use graphDB.AddChannelEdge instead of graphBuilder.AddEdge. This is a good change as it bypasses the logic in graph.Builder that is specific to handling external gossip messages, such as erroring on existing channel edges. The graph.Builder's behavior is not suitable for the localChanMgr, which needs to ensure a local channel edge exists in the graph. The new implementation is more direct and correct for this purpose. The change is clean and has no apparent side effects. I approve.

@saubyk saubyk requested a review from bitromortac December 2, 2025 17:39
@saubyk saubyk added this to the v0.20.1 milestone Dec 2, 2025
@ellemouton ellemouton force-pushed the bypassBuilderForMissingEdges branch from c7cff02 to 76c8ac8 Compare December 9, 2025 08:42
Copy link
Collaborator

@ziggie1984 ziggie1984 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ellemouton ellemouton force-pushed the bypassBuilderForMissingEdges branch from 76c8ac8 to a1d02f1 Compare December 9, 2025 09:20
@saubyk saubyk added this to lnd v0.20 Dec 9, 2025
@saubyk saubyk moved this to In review in lnd v0.20 Dec 9, 2025
@ellemouton ellemouton force-pushed the bypassBuilderForMissingEdges branch from a1d02f1 to e93901a Compare December 11, 2025 15:49
@ellemouton ellemouton changed the title server: directly add missing edge to graph DB localchans: populate FundingScript for missing edges Dec 11, 2025
So that we can re-use this helper else where.
@ellemouton ellemouton force-pushed the bypassBuilderForMissingEdges branch from e93901a to 0f4b220 Compare December 11, 2025 15:55
When creating a missing edge, we need to populate the funding script too
so that the graph builder can update its ChainView appropriately. We use
the MakeFundingScript helper from the funding package which ensures that
we are using the same logic for creating a funding script as is used for
any of the channels that we own.
@ellemouton ellemouton force-pushed the bypassBuilderForMissingEdges branch from 0f4b220 to da9868b Compare December 11, 2025 16:13
Copy link
Collaborator

@ziggie1984 ziggie1984 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Collaborator

@bitromortac bitromortac left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Really nice fix, LGTM 🎉

@ellemouton ellemouton merged commit 363aeb5 into lightningnetwork:master Dec 12, 2025
72 of 77 checks passed
@github-project-automation github-project-automation bot moved this from In review to Done in lnd v0.20 Dec 12, 2025
@ellemouton ellemouton deleted the bypassBuilderForMissingEdges branch December 12, 2025 08:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

4 participants