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
Show file tree
Hide file tree
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
Expand Up @@ -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:
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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 }}
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/crate-io.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docker-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ on:

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

steps:
- name: Checkout repository
Expand Down
20 changes: 7 additions & 13 deletions .github/workflows/macos.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/readme-rpc-sync.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
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
Expand Up @@ -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.
Expand Down
2 changes: 2 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
54 changes: 52 additions & 2 deletions common/trace.c
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -40,6 +41,7 @@
#endif

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

struct span_tag {
char *name, *value;
Expand Down Expand Up @@ -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.
*/
Expand All @@ -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
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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");
Expand Down Expand Up @@ -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);
Expand All @@ -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);
Expand All @@ -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);
Expand All @@ -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) {}
Expand Down
2 changes: 2 additions & 0 deletions common/trace.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Up @@ -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
Expand Up @@ -15032,7 +15032,7 @@
"port": 19735
}
],
"version": "v24.11.1",
"version": "v24.11.2",
"blockheight": 110,
"network": "regtest",
"fees_collected_msat": 0,
Expand Down
2 changes: 1 addition & 1 deletion contrib/pyln-client/pyln/client/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
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"
Expand Down
2 changes: 1 addition & 1 deletion contrib/pyln-proto/pyln/proto/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
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"
Expand Down
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__",
Expand Down
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"
Expand Down
3 changes: 2 additions & 1 deletion contrib/reprobuild/Dockerfile.focal
Original file line number Diff line number Diff line change
Expand Up @@ -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 && \
Expand Down
Loading
Loading