Commit Graph

12762 Commits

Author SHA1 Message Date
ErikEk
5282b54ad3 invoice: unused error check 2021-07-19 14:24:52 +02:00
Olaoluwa Osuntokun
7176a212f7 Merge pull request #5520 from Roasbeef/actions-require-release-notes
build: add new GH actions to require release note updates
2021-07-16 14:21:27 -07:00
Olaoluwa Osuntokun
121979546b docs/release-notes: add entry for new release notes pre-submit check 2021-07-16 11:01:04 -07:00
Olaoluwa Osuntokun
6570749f7f build: add new GH actions to require release note updates
In this commit, we add a simple bash script to parse out the current PR
number from an environment variable in the GH actions context, and use
that to check to see if the PR has been referenced in the release notes
or not. This isn't 100% fool proof, but it should catch most of the
common cases.
2021-07-16 11:00:56 -07:00
Andras Banki-Horvath
96caa6f242 etcd: remove assertion when creating bucket and value with the same key
This commit removes an assertion which is not needed because with etcd
we can safely create keys and values with the same key since they are
stored under different keys in the DB. This saves us one unnecessary Get
on every Put.
2021-07-16 16:06:32 +02:00
Andras Banki-Horvath
11a44a94b1 etcd: remove unnecessary iterator step from cursor Delete
The etcd cursor Delete stepped to the next item in the range before
Delete to not invalidate the iteation. This is unnecessary and not
compatible with bbolt, resulting in an extra fetch too.
2021-07-16 15:21:14 +02:00
Oliver Gugger
8acbe177fa Merge pull request #5525 from bhandras/etcd_failover_itest_flake_fix
harness: remove killed nodes from active nodes
2021-07-15 17:27:07 +02:00
Andras Banki-Horvath
6dc64f7d2f etcd: disable excessive logging when using embedded etcd 2021-07-15 15:35:38 +02:00
Oliver Gugger
b92462edad Merge pull request #5481 from bottlepay/kvdb-tests
kvdb: generalize etcd tests
2021-07-15 11:49:14 +02:00
Andras Banki-Horvath
7ce3223919 harness: remove killed nodes from active nodes 2021-07-15 11:26:27 +02:00
Olaoluwa Osuntokun
6cd981420a lntest: fix possible race condition re asserting channel propagation
In this commit, we attempt to fix a race condition that may occur in the
current AMP and MPP tests.

It appears the following scenario is possible:
  * The `mppTestContext` [is used to create 6 channels back to
    back](https://github.com/lightningnetwork/lnd/blob/master/lntest/itest/lnd_amp_test.go#L43)
  * The method used to create the channel ends up calling
    [`openChannelAndAssert`](edd4152682/lntest/itest/lnd_mpp_test.go (L300))
    which'll open the channel, mine 6 blocks, [then ensure that the
    channel gets
    advertised](edd4152682/lntest/itest/assertions.go (L78))
  * Later on, [we wait for all nodes to hear about all channels on the
    network
    level](https://github.com/lightningnetwork/lnd/blob/master/lntest/itest/lnd_amp_test.go#L62)

I think the issue here is that we'll potentially already have mined 30
or so blocks before getting to the final nodes, and those nodes may have
already heard about the channel already. This may then cause their
[`lightningNetworkWatcher`](edd4152682/lntest/node.go (L1213))
goroutine to not properly dispatch this, since it's assumed that the
channel hasn't been announced (or notified) when the method is called.

One solution here is to just check if the channel is already in the
node's graph or not, when we go to register the notification. If we do
this in the same state machine as the watcher, then we ensure if the
channel is already known, the client is immediately notified. One thing
that can help us debug this more in the future is adding additional
logging in some of these helper goroutines so we can more easily track
the control flow.

This commit implements this solution by checking to ensure that the
channel isn't already known in our channel graph before attempting to
wait for its notification, as we may already have missed the
notification before this registration request came in.
2021-07-14 20:12:00 -07:00
Olaoluwa Osuntokun
ea7ea33e24 lntest/itest: log node name in addition to ID if waitForChannels fails 2021-07-14 20:11:54 -07:00
Olaoluwa Osuntokun
edd4152682 Merge pull request #5449 from yyforyongyu/itest-refactor-assertion
Break down the lnd_test.go file into smaller files
2021-07-13 16:41:55 -07:00
Olaoluwa Osuntokun
7e606c257a Merge pull request #5383 from Crypt-iQ/update_fuzz_docs_06142021
docs+Makefile: update fuzz.md to explain new build/run process
2021-07-13 16:23:48 -07:00
yyforyongyu
d28e67ddb0 itest: fix make lint 2021-07-13 15:01:43 +08:00
yyforyongyu
c912d1aae0 itest: move tests into one file
This commit creates the file lnd_misc_test.go to hold all miscellaneous
tests in the file lnd_test.go. From now on, the lnd_test.go will only be
responsible for handling the "top" level functionalities such as
splitting test cases and run them. Newly created test cases should find
their places in the related test files, or create new one when needed.
2021-07-13 15:01:39 +08:00
yyforyongyu
73a2211205 itest: move helper functions into one file
This commit creates the file utils.go to hold the commonly used
functions for tests.
2021-07-13 14:59:00 +08:00
yyforyongyu
27b9273e2f itest: move channel graph related tests into one file 2021-07-13 14:58:59 +08:00
yyforyongyu
a20f857987 itest: move balance related tests into one file 2021-07-13 14:58:59 +08:00
yyforyongyu
9337f94f0d itest: move recovery related tests into one file 2021-07-13 14:58:59 +08:00
yyforyongyu
0759771134 itest: move channel openning related tests into one file
This commit creates the file lnd_open_channel_test.go to hold channel
opeopenning related tests.
2021-07-13 14:58:59 +08:00
yyforyongyu
12ca07c089 itest: move testFundingPersistence to lnd_funding_test.go 2021-07-13 14:58:59 +08:00
yyforyongyu
47c40373de itest: move channel policy update test into one file 2021-07-13 14:58:58 +08:00
yyforyongyu
3f78a5da10 itest: move channel force close test into one file 2021-07-13 14:58:58 +08:00
yyforyongyu
e3f2cf1711 itest: move switch related tests into one file
This commit creates the lnd_switch_test.go file to hold switch related
tests, further breaking down the lnd_test.go file.
2021-07-13 14:58:58 +08:00
yyforyongyu
6ca068660c itest: move revocation related tests into one file
This commit creates a new file lnd_revocation_test.go to hold
revocation-related tests, further breaking down the lnd_test.go file.
2021-07-13 14:58:56 +08:00
yyforyongyu
f62cdf7bfc itest: move payment related tests into one file
This commit creates a new file lnd_payment_test.go to hold all payment
related tests, further breaking down the old large lnd_test.go.
2021-07-13 14:52:08 +08:00
yyforyongyu
b657a977e3 itest: refactor assertNumConnections to use wait.NoError
This commit refactors the function assertNumConnections to use
wait.NoError. Prior to this commit, `make lint` will fail on this
function. While fixing it, it's noticed that wait.NoError suits the
case so it's refactored to use it.
2021-07-13 14:52:08 +08:00
yyforyongyu
0612ced087 itest: use require in assertions 2021-07-13 14:52:08 +08:00
yyforyongyu
6f0da73ee1 itest: move assertions into one file
This commit breaks down the lnd_test.go file by moving assertion-related
functions into the file assertions.go.
2021-07-13 14:52:08 +08:00
Olaoluwa Osuntokun
c23d6fb0e2 Merge pull request #5504 from Zero-1729/patch-1
README: minor typo fix
2021-07-12 18:19:16 -07:00
Joost Jager
e9cba1a526 kvdb/test: add bolt test 2021-07-12 11:31:11 +02:00
Joost Jager
f592375d1b kvdb/test: fix cursor tests to match bbolt semantics
From bbolt docs:
// Seek positions the cursor at the passed seek key. If the key does not exist,
// the cursor is moved to the next key after seek. Returns the new pair.
2021-07-12 11:31:09 +02:00
Joost Jager
84490466be kvdb/test: remove invalid operations
Accessing buckets that have been removed is not an allowed operation.
2021-07-12 11:31:07 +02:00
Joost Jager
3c6d35ec41 kvdb/test: generalize etcd tests 2021-07-12 11:31:05 +02:00
Abubakar Nur Khalil
c93e309f49 README: minor grammar fix 2021-07-11 00:55:18 +01:00
Adrian-Stefan Mares
c4221c3c3a config+lnd: Update Tor configuration for hybrid node mode 2021-07-10 19:16:58 +02:00
Adrian-Stefan Mares
be666b55b6 tor: Allow direct connections to clearnet targets 2021-07-10 19:16:57 +02:00
Olaoluwa Osuntokun
c733c139e9 Merge pull request #5462 from ErikEk/typo-labeltx
trivial: walletrpc typo
2021-07-09 17:36:21 -07:00
Olaoluwa Osuntokun
8df611f74c Merge pull request #5472 from joostjager/filter-leases
btcwallet: filter out expired leases
2021-07-09 17:31:03 -07:00
Olaoluwa Osuntokun
7e4b2b82f1 Merge pull request #5448 from xanoni/sample-lnd-conf-cleanup
sample-lnd.conf: remove duplicate setting and clean up section separators
2021-07-09 14:37:32 -07:00
Olaoluwa Osuntokun
ab1149f26d Merge pull request #5471 from joostjager/db-itest-prep
itest: prepare for multiple db backends
2021-07-09 14:37:06 -07:00
Olaoluwa Osuntokun
47732ec59e Merge pull request #5475 from katokishin/patch-1
Fixed typo in comment
2021-07-09 14:35:50 -07:00
Olaoluwa Osuntokun
ccd7421488 Merge pull request #5487 from C-Otto/fix-5367
htlcswitch: log amount for failures
2021-07-09 14:35:31 -07:00
Olaoluwa Osuntokun
db3819fcef Merge pull request #5236 from offerm/preimage-to-settleevent
feature: expose preimage in forward+settle event
2021-07-09 14:35:11 -07:00
Carsten Otto
0396220b71 htlcswitch: log amount for failures
fixes #5367
2021-07-08 20:33:00 +02:00
Joost Jager
3026e5a826 build: bump btcwallet 2021-07-08 14:34:16 +02:00
Olaoluwa Osuntokun
583dee9916 Merge pull request #5479 from Roasbeef/fix-send-to-route-error-propagation
lnrpc/routerrrpc+routing: fix send to route error propagation
2021-07-07 16:01:56 -07:00
Olaoluwa Osuntokun
079ab1c2bf channeldb: fix typo in PaymentControl.Fail 2021-07-07 15:31:27 -07:00
Olaoluwa Osuntokun
525ef594c7 routing: don't return an error from failPayment within handleSendError
In this commit, we fix a regression introduced by a recent bug fix in
this area. Before this change, we'd inspect the error returned by
`processSendError`, and then fail the payment from the PoV of mission
control using the returned error.

A recent refactoring removed `processSendError` and combined the logic
with `tryApplyChannelUpdate` in order to introduce a new
`handleSendError` method that consolidates the logic within the
`shardHandler`. Along the way, the behavior of the prior check was
replicated in the form of a new internal `failPayment` closure. However,
the new function closure ends up returning a `channeldb.FailureReason`
instance, which is actually an `error`.

In the wild, when `SendToRoute` fails due to an error at the
destination, then this new logic caused the `handleSendErorr` method to
fail with an error, returning an unstructured error back to the caller,
instead of the usual payment failure details.

We fix this by no longer checking the `handleSendErorr` for an error as
normal. The `handleSendErorr` function as is will always return an error
of type `*channeldb.FailureReason`, therefore we don't need to treat it
as a normal error. Instead, we check for the type of error returned, and
update the control tower state accordingly.

With this commit, the test added in the prior commit now passes.

Fixes #5477.
2021-07-07 15:31:22 -07:00