Skip to content

Release 24.11.2 #8195

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/bsd.yml
Original file line number Diff line number Diff line change
@@ -8,7 +8,7 @@ on:

jobs:
testfreebsd:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
name: Build and test on FreeBSD
timeout-minutes: 120
strategy:
4 changes: 4 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -77,6 +77,7 @@ jobs:
run: |
bash -x .github/scripts/setup.sh
pip install -U pip wheel poetry
poetry self add poetry-plugin-export
# Export and then use pip to install into the current env
poetry export -o /tmp/requirements.txt --without-hashes --with dev
pip install -r /tmp/requirements.txt
@@ -145,6 +146,7 @@ jobs:
run: |
set -e
pip3 install --user pip wheel poetry
poetry self add poetry-plugin-export
poetry export -o requirements.txt --with dev --without-hashes
python3 -m pip install -r requirements.txt
./configure --enable-debugbuild CC="$COMPILER" ${{ matrix.COPTFLAGS_VAR }}
@@ -193,6 +195,7 @@ jobs:
sudo apt-get update -qq
sudo apt-get install -y -qq lowdown
pip install -U pip wheel poetry
poetry self add poetry-plugin-export
# Export and then use pip to install into the current env
poetry export -o /tmp/requirements.txt --without-hashes --with dev
pip install -r /tmp/requirements.txt
@@ -227,6 +230,7 @@ jobs:
run: |
bash -x .github/scripts/setup.sh
pip install -U pip wheel poetry
poetry self add poetry-plugin-export
# Export and then use pip to install into the current env
poetry export -o /tmp/requirements.txt --without-hashes --with dev
pip install -r /tmp/requirements.txt
2 changes: 1 addition & 1 deletion .github/workflows/crate-io.yml
Original file line number Diff line number Diff line change
@@ -8,7 +8,7 @@ on:

jobs:
release_rust:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
2 changes: 1 addition & 1 deletion .github/workflows/docker-release.yml
Original file line number Diff line number Diff line change
@@ -29,7 +29,7 @@ on:

jobs:
build:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04

steps:
- name: Checkout repository
20 changes: 7 additions & 13 deletions .github/workflows/macos.yaml
Original file line number Diff line number Diff line change
@@ -5,7 +5,7 @@ on:
jobs:
smoke-test:
name: Smoke Test macOS
runs-on: macos-latest
runs-on: macos-14
timeout-minutes: 120
strategy:
fail-fast: true
@@ -27,26 +27,20 @@ jobs:

- name: Install dependencies
run: |
export PATH="/usr/local/opt:/Users/runner/.local/bin:/Users/runner/Library/Python/3.10/bin:$PATH"
export PATH="/usr/local/opt:/Users/runner/.local/bin:/opt/homebrew/bin/python3.10/bin:$PATH"

brew install wget autoconf automake libtool python@3.10 gnu-sed gettext libsodium protobuf

python3.10 -m pip install -U --user poetry wheel pip
brew install gnu-sed python@3.10 autoconf automake libtool protobuf
python3.10 -m pip install -U --user poetry==1.8.0 wheel pip mako
python3.10 -m poetry install
python3.10 -m pip install -U --user mako

sudo ln -s /usr/local/Cellar/gettext/0.20.1/bin/xgettext /usr/local/opt

- name: Build and install
- name: Build and install CLN
run: |
export CPATH=/opt/homebrew/include
export LIBRARY_PATH=/opt/homebrew/lib

python3.10 -m poetry run ./configure --disable-valgrind --disable-compat
python3.10 -m poetry run make

# sudo PATH="/usr/local/opt:$PATH" LIBRARY_PATH=/opt/homebrew/lib CPATH=/opt/homebrew/include make install

- name: Start bitcoind in regtest mode
run: |
bitcoind -regtest -daemon
@@ -58,11 +52,11 @@ jobs:
bitcoin-cli -regtest generatetoaddress 1 $(bitcoin-cli -regtest getnewaddress)
sleep 2

- name: Start lightningd in regtest mode
- name: Start CLN in regtest mode
run: |
lightningd/lightningd --network=regtest --log-file=/tmp/l1.log --daemon
sleep 5

- name: Verify lightningd is running
- name: Verify CLN is running
run: |
cli/lightning-cli --regtest getinfo
2 changes: 1 addition & 1 deletion .github/workflows/rdme-docs-sync.yml
Original file line number Diff line number Diff line change
@@ -10,7 +10,7 @@ on:

jobs:
rdme-docs-sync:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
steps:
- name: Check out repo 📚
uses: actions/checkout@v4
2 changes: 1 addition & 1 deletion .github/workflows/readme-rpc-sync.yml
Original file line number Diff line number Diff line change
@@ -15,7 +15,7 @@ on:

jobs:
rdme-rpc-sync:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
2 changes: 1 addition & 1 deletion .version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
24.11.1
24.11.2
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -3,6 +3,29 @@ All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

## [24.11.2] - 2025-04-03: "The lightning-dev Mailing List III"

Important fixes for bugs in v24.11.

### Fixed

- wallet: we could miss our own returned outputs on mutual closes if peer doesn't support option_shutdown_anysegwit. Any missing outputs can be found by rescan after upgrade, or upgrading to v25.02.1 ([#8175])
- lightningd: incorrect spamming of log and potential crash on testnet case of duplicate HTLCs and slow closing. ([#8192])
- Protocol: Egregious anchor fee paid for unilateral close txs due to HTLC timeouts; it's not as urgent as our code made out! ([#8190])
- lightningd: occasional crash on bitcoind callback. ([#8186])
- autoclean/chanbackup: fixed tracepoint crash on large number of requests. ([#8188])
- autoclean: fixed occasional crash when tracepoints compiled in. ([#8198])
- `topology` crash on invoice creation if a peer had a really high feerate. ([#8187])

[#8186]: https://github.com/ElementsProject/lightning/pull/8186
[#8192]: https://github.com/ElementsProject/lightning/pull/8192
[#8187]: https://github.com/ElementsProject/lightning/pull/8187
[#8190]: https://github.com/ElementsProject/lightning/pull/8190
[#8175]: https://github.com/ElementsProject/lightning/pull/8175
[#8188]: https://github.com/ElementsProject/lightning/pull/8188
[#8198]: https://github.com/ElementsProject/lightning/pull/8198
[25.11.2]: https://github.com/ElementsProject/lightning/releases/tag/v24.11.2

## [24.11.1] - 2024-12-16: "The lightning-dev Mailing List II"

Minor fixes, particularly for xpay users.
2 changes: 2 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -92,6 +92,7 @@ ENV PYTHON_VERSION=3
RUN curl -sSL https://install.python-poetry.org | python3 -
RUN update-alternatives --install /usr/bin/python python /usr/bin/python3.9 1
RUN pip3 install --upgrade pip setuptools wheel
RUN poetry self add poetry-plugin-export

RUN wget -q https://zlib.net/fossils/zlib-1.2.13.tar.gz -O zlib.tar.gz && \
wget -q https://www.sqlite.org/2019/sqlite-src-3290000.zip -O sqlite.zip
@@ -198,6 +199,7 @@ RUN ( ! [ "${target_host}" = "arm-linux-gnueabihf" ] ) || \
# Ensure that the desired grpcio-tools & protobuf versions are installed
# https://github.com/ElementsProject/lightning/pull/7376#issuecomment-2161102381
RUN poetry lock --no-update && poetry install
RUN poetry self add poetry-plugin-export

# Ensure that git differences are removed before making bineries, to avoid `-modded` suffix
# poetry.lock changed due to pyln-client, pyln-proto and pyln-testing version updates
54 changes: 52 additions & 2 deletions common/trace.c
Original file line number Diff line number Diff line change
@@ -10,9 +10,10 @@
#include <common/trace.h>
#include <sodium/randombytes.h>
#include <stdio.h>
#include <unistd.h>

#if HAVE_USDT
#include <sys/sdt.h>
#include <sys/sdt.h>

#define MAX_ACTIVE_SPANS 128

@@ -40,6 +41,7 @@
#endif

const char *trace_service_name = "lightningd";
static bool disable_trace = false;

struct span_tag {
char *name, *value;
@@ -176,6 +178,9 @@ static struct span *trace_span_find(size_t key)
return NULL;
}

/* FIXME: Forward declaration for minimal patch size */
static void trace_span_clear(struct span *s);

/**
* Find an empty slot for a new span.
*/
@@ -187,7 +192,13 @@ static struct span *trace_span_slot(void)

/* Might end up here if we have more than MAX_ACTIVE_SPANS
* concurrent spans. */
assert(s);
if (!s) {
fprintf(stderr, "%u: out of spans, disabling tracing\n", getpid());
for (size_t i = 0; i < MAX_ACTIVE_SPANS; i++)
trace_span_clear(&active_spans[i]);
disable_trace = true;
return NULL;
}
assert(s->parent == NULL);

/* Be extra careful not to create cycles. If we return the
@@ -260,11 +271,15 @@ void trace_span_start(const char *name, const void *key)
size_t numkey = trace_key(key);
struct timeabs now = time_now();

if (disable_trace)
return;
trace_init();
trace_check_tree();

assert(trace_span_find(numkey) == NULL);
struct span *s = trace_span_slot();
if (!s)
return;
s->key = numkey;
randombytes_buf(s->id, SPAN_ID_SIZE);
s->start_time = (now.ts.tv_sec * 1000000) + now.ts.tv_nsec / 1000;
@@ -293,6 +308,9 @@ void trace_span_remote(u8 trace_id[TRACE_ID_SIZE], u8 span_id[SPAN_ID_SIZE])

void trace_span_end(const void *key)
{
if (disable_trace)
return;

size_t numkey = trace_key(key);
struct span *s = trace_span_find(numkey);
assert(s && "Span to end not found");
@@ -323,6 +341,9 @@ void trace_span_end(const void *key)

void trace_span_tag(const void *key, const char *name, const char *value)
{
if (disable_trace)
return;

size_t numkey = trace_key(key);
struct span *span = trace_span_find(numkey);
assert(span);
@@ -341,6 +362,9 @@ void trace_span_tag(const void *key, const char *name, const char *value)

void trace_span_suspend_(const void *key, const char *lbl)
{
if (disable_trace)
return;

size_t numkey = trace_key(key);
struct span *span = trace_span_find(numkey);
TRACE_DBG("Suspending span %s (%zu)\n", current->name, current->key);
@@ -349,8 +373,33 @@ void trace_span_suspend_(const void *key, const char *lbl)
DTRACE_PROBE1(lightningd, span_suspend, span->id);
}

static void destroy_trace_span(const void *key)
{
size_t numkey = trace_key(key);
struct span *span = trace_span_find(numkey);

/* It's usually ended normally. */
if (!span)
return;

/* Otherwise resume so we can terminate it */
trace_span_resume(key);
trace_span_end(key);
}

void trace_span_suspend_may_free_(const void *key, const char *lbl)
{
if (disable_trace)
return;
trace_span_suspend_(key, lbl);
tal_add_destructor(key, destroy_trace_span);
}

void trace_span_resume_(const void *key, const char *lbl)
{
if (disable_trace)
return;

size_t numkey = trace_key(key);
current = trace_span_find(numkey);
TRACE_DBG("Resuming span %s (%zu)\n", current->name, current->key);
@@ -368,6 +417,7 @@ void trace_cleanup(void)
void trace_span_start(const char *name, const void *key) {}
void trace_span_end(const void *key) {}
void trace_span_suspend_(const void *key, const char *lbl) {}
void trace_span_suspend_may_free_(const void *key, const char *lbl) {}
void trace_span_resume_(const void *key, const char *lbl) {}
void trace_span_tag(const void *key, const char *name, const char *value) {}
void trace_cleanup(void) {}
2 changes: 2 additions & 0 deletions common/trace.h
Original file line number Diff line number Diff line change
@@ -15,8 +15,10 @@ void trace_span_remote(u8 trace_id[TRACE_ID_SIZE], u8 span_id[SPAN_ID_SIZE]);

#define TRACE_LBL __FILE__ ":" stringify(__LINE__)
void trace_span_suspend_(const void *key, const char *lbl);
void trace_span_suspend_may_free_(const void *key, const char *lbl);
void trace_span_resume_(const void *key, const char *lbl);
#define trace_span_suspend(key) trace_span_suspend_(key, TRACE_LBL)
#define trace_span_suspend_may_free(key) trace_span_suspend_may_free_(key, TRACE_LBL)
#define trace_span_resume(key) trace_span_resume_(key, TRACE_LBL)

#endif /* LIGHTNING_COMMON_TRACE_H */
1 change: 1 addition & 0 deletions contrib/docker/Dockerfile.builder.fedora
Original file line number Diff line number Diff line change
@@ -37,3 +37,4 @@ ENV PATH=/opt/venv/bin:${PATH}
RUN python3 -m pip install pip wheel && \
python3 -m virtualenv /opt/venv && \
/opt/venv/bin/python3 -m pip install --force-reinstall -U pip poetry wheel
RUN poetry self add poetry-plugin-export
2 changes: 1 addition & 1 deletion contrib/msggen/msggen/schema.json
Original file line number Diff line number Diff line change
@@ -15032,7 +15032,7 @@
"port": 19735
}
],
"version": "v24.11.1",
"version": "v24.11.2",
"blockheight": 110,
"network": "regtest",
"fees_collected_msat": 0,
2 changes: 1 addition & 1 deletion contrib/pyln-client/pyln/client/__init__.py
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@
from .gossmap import Gossmap, GossmapNode, GossmapChannel, GossmapHalfchannel, GossmapNodeId, LnFeatureBits
from .gossmapstats import GossmapStats

__version__ = "24.11.1"
__version__ = "24.11.2"

__all__ = [
"LightningRpc",
2 changes: 1 addition & 1 deletion contrib/pyln-client/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "pyln-client"
version = "24.11.1"
version = "24.11.2"
description = "Client library and plugin library for Core Lightning"
authors = ["Christian Decker <decker.christian@gmail.com>"]
license = "BSD-MIT"
2 changes: 1 addition & 1 deletion contrib/pyln-proto/pyln/proto/__init__.py
Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@
from .onion import OnionPayload, TlvPayload, LegacyOnionPayload
from .wire import LightningConnection, LightningServerSocket

__version__ = "24.11.1"
__version__ = "24.11.2"

__all__ = [
"Invoice",
2 changes: 1 addition & 1 deletion contrib/pyln-proto/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "pyln-proto"
version = "24.11.1"
version = "24.11.2"
description = "This package implements some of the Lightning Network protocol in pure python. It is intended for protocol testing and some minor tooling only. It is not deemed secure enough to handle any amount of real funds (you have been warned!)."
authors = ["Christian Decker <decker.christian@gmail.com>"]
license = "BSD-MIT"
2 changes: 1 addition & 1 deletion contrib/pyln-testing/pyln/testing/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
__version__ = "24.11.1"
__version__ = "24.11.2"

__all__ = [
"__version__",
2 changes: 1 addition & 1 deletion contrib/pyln-testing/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "pyln-testing"
version = "24.11.1"
version = "24.11.2"
description = "Test your Core Lightning integration, plugins or whatever you want"
authors = ["Christian Decker <decker.christian@gmail.com>"]
license = "BSD-MIT"
3 changes: 2 additions & 1 deletion contrib/reprobuild/Dockerfile.focal
Original file line number Diff line number Diff line change
@@ -49,7 +49,8 @@ RUN git clone https://github.com/pyenv/pyenv.git /root/.pyenv && \

RUN wget https://bootstrap.pypa.io/get-pip.py -O /tmp/get-pip.py && python3 /tmp/get-pip.py \
&& rm /tmp/get-pip.py \
&& pip install poetry mako grpcio-tools==1.62.2
&& pip install poetry mako grpcio-tools==1.62.2 && \
poetry self add poetry-plugin-export

RUN wget https://sh.rustup.rs -O rustup-install.sh && \
bash rustup-install.sh --default-toolchain none --quiet -y && \
Loading