Skip to content
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

Release 2024-03-18 #7154

Merged
merged 56 commits into from
Mar 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
d894d2b
Export db size, deadlocks and changed row metrics (#7050)
zaynetro Mar 11, 2024
cc5d6c6
proxy: categorise new cplane error message (#7057)
conradludgate Mar 11, 2024
f8483cc
pageserver: update swagger for HA APIs (#7070)
jcsp Mar 11, 2024
26ae7b0
fix(metrics): reset TENANT_STATE metric on startup (#7084)
koivunej Mar 11, 2024
b4972d0
storage controller: refactor non-mutable members up into Service (#7086)
jcsp Mar 11, 2024
2b0f354
default to tokio-epoll-uring in CI tests & on Linux (#7077)
problame Mar 11, 2024
8224580
fix(tenant/timeline metrics): race condition during shutdown + recrea…
problame Mar 11, 2024
8c5b310
fix: Layer delete on drop and eviction can outlive timeline shutdown …
koivunej Mar 11, 2024
17a3c90
follow-up(#7077): adjust flaky-test-detection cutoff date for tokio-e…
problame Mar 11, 2024
73a8c97
fix: warnings when compiling neon extensions (#7053)
skyzh Mar 11, 2024
9872384
Don't return from inside PG_TRY (#7095)
Mar 11, 2024
0cf0731
SIGQUIT instead of SIGKILL prewarmed postgres.
arssher Mar 11, 2024
74d09b7
Keep walproposer alive until shutdown checkpoint is safe on safekepeers
hlinnaka Feb 9, 2024
621ea2e
tests: try to make restored-datadir comparison tests not flaky v2
hlinnaka Feb 7, 2024
89cf714
tests/neon_local: rename "attachment service" -> "storage controller"…
jcsp Mar 12, 2024
09699d4
proxy: cancel http queries on timeout (#7031)
conradludgate Mar 12, 2024
580e136
Forward all backpressure feedback to compute (#7079)
petuhovskiy Mar 12, 2024
1f7d54f
proxy refactor tls listener (#7056)
conradludgate Mar 12, 2024
7ae8364
storage controller: register nodes in re-attach request (#7040)
jcsp Mar 12, 2024
bac06ea
pageserver: fix read path max lsn bug (#7007)
jbajic Mar 12, 2024
1b41db8
pageserver: enable setting stripe size inline with split request. (#7…
jcsp Mar 12, 2024
83855a9
proxy http error classification (#7098)
conradludgate Mar 13, 2024
0554bee
proxy: Report warm cold start if connection is from the local cache (…
khanova Mar 13, 2024
b0aff04
proxy: add new dimension to exclude cplane latency (#7011)
khanova Mar 13, 2024
8a53d57
fix(metrics): time individual layer flush operations (#7109)
koivunej Mar 13, 2024
5309711
Make tenant_id in TenantLocationConfigRequest optional (#7055)
arpad-m Mar 13, 2024
69338e5
throttling: fixup interactions with Timeline::get_vectored (#7089)
problame Mar 13, 2024
3bd6551
proxy http cancellation safety (#7117)
conradludgate Mar 14, 2024
44f4262
pageserver/controller: error handling for shard splitting (#7074)
jcsp Mar 14, 2024
8075f09
fix(test suite) `virtual_file_io_engine` and `get_vectored_impl` pata…
problame Mar 14, 2024
9fe0193
Bump vendor/postgres v15 v14.
arssher Mar 14, 2024
38767ac
storage_controller: periodic pageserver heartbeats (#7092)
VladLazar Mar 14, 2024
3d8830a
test_runner: re-enable large slru benchmark (#7125)
VladLazar Mar 14, 2024
678ed39
storage controller: validate DNS of registering nodes (#7101)
jcsp Mar 14, 2024
58ef78c
doc(README): note cargo-nextest usage (#7122)
koivunej Mar 14, 2024
76c44dc
spec: disable neon extension auto upgrade (#7128)
skyzh Mar 14, 2024
49bc734
proxy: add websocket regression tests (#7121)
conradludgate Mar 15, 2024
46098ea
proxy: add more missing warm logging (#7133)
khanova Mar 15, 2024
23416cc
docs: sharding phase 1 RFC (#5432)
jcsp Mar 15, 2024
6443dbe
tests: extend log allow list for test_sharding_split_failures (#7134)
jcsp Mar 15, 2024
516f793
remote_storage: make last_modified and etag mandatory (#7126)
jcsp Mar 15, 2024
22c26d6
pageserver: remove un-needed "uninit mark" (#5717)
jcsp Mar 15, 2024
bf187aa
fix(layer): metric miscalculations (#7137)
koivunej Mar 15, 2024
59b6cce
heavier_once_cell: add detached init support (#7135)
koivunej Mar 15, 2024
7d32af5
.github: apply timeout to pytest `regress` (#7142)
jcsp Mar 15, 2024
67522ce
docs: shard splitting RFC (#6358)
jcsp Mar 15, 2024
bc1efa8
pageserver: exclude gc_horizon from synthetic size calculation (#6407)
jcsp Mar 15, 2024
60f3000
tokio-epoll-uring: fallback to std-fs if not available & not explicit…
problame Mar 15, 2024
1aa159a
pageserver: cancellation for remote ops in tenant deletion on shutdow…
jcsp Mar 15, 2024
ad6f538
tokio-epoll-uring: use it for on-demand downloads (#6992)
problame Mar 15, 2024
9752ad8
pageserver, controller: improve secondary download APIs for large sha…
jcsp Mar 15, 2024
0694ee9
tokio-epoll-uring: retry on launch failures due to locked memory (#7141)
problame Mar 15, 2024
5cec5cb
fixup(#7120): the macOS code used an outdated constant name, broke th…
problame Mar 15, 2024
4647174
build: make procfs linux only dependency (#7156)
koivunej Mar 18, 2024
fb2b1ce
fixup(#7141 / tokio_epoll_uring_ext): high frequency log message
problame Mar 18, 2024
41fc96e
fixup(#7160 / tokio_epoll_uring_ext): double-panic caused by info! in…
problame Mar 18, 2024
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
5 changes: 3 additions & 2 deletions .github/workflows/build_and_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -461,6 +461,7 @@ jobs:

- name: Pytest regression tests
uses: ./.github/actions/run-python-test-set
timeout-minutes: 60
with:
build_type: ${{ matrix.build_type }}
test_selection: regress
Expand All @@ -474,7 +475,7 @@ jobs:
TEST_RESULT_CONNSTR: ${{ secrets.REGRESS_TEST_RESULT_CONNSTR_NEW }}
CHECK_ONDISK_DATA_COMPATIBILITY: nonempty
BUILD_TAG: ${{ needs.tag.outputs.build-tag }}
PAGESERVER_VIRTUAL_FILE_IO_ENGINE: std-fs
PAGESERVER_VIRTUAL_FILE_IO_ENGINE: tokio-epoll-uring
PAGESERVER_GET_VECTORED_IMPL: vectored

# Temporary disable this step until we figure out why it's so flaky
Expand Down Expand Up @@ -554,7 +555,7 @@ jobs:
VIP_VAP_ACCESS_TOKEN: "${{ secrets.VIP_VAP_ACCESS_TOKEN }}"
PERF_TEST_RESULT_CONNSTR: "${{ secrets.PERF_TEST_RESULT_CONNSTR }}"
TEST_RESULT_CONNSTR: "${{ secrets.REGRESS_TEST_RESULT_CONNSTR_NEW }}"
PAGESERVER_VIRTUAL_FILE_IO_ENGINE: std-fs
PAGESERVER_VIRTUAL_FILE_IO_ENGINE: tokio-epoll-uring
# XXX: no coverage data handling here, since benchmarks are run on release builds,
# while coverage is currently collected for the debug ones

Expand Down
8 changes: 6 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ CARGO_BUILD_FLAGS += $(filter -j1,$(MAKEFLAGS))
CARGO_CMD_PREFIX += $(if $(filter n,$(MAKEFLAGS)),,+)
# Force cargo not to print progress bar
CARGO_CMD_PREFIX += CARGO_TERM_PROGRESS_WHEN=never CI=1
# Set PQ_LIB_DIR to make sure `attachment_service` get linked with bundled libpq (through diesel)
# Set PQ_LIB_DIR to make sure `storage_controller` get linked with bundled libpq (through diesel)
CARGO_CMD_PREFIX += PQ_LIB_DIR=$(POSTGRES_INSTALL_DIR)/v16/lib

#
Expand Down
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,14 @@ If you encounter errors during setting up the initial tenant, it's best to stop

## Running tests

### Rust unit tests

We are using [`cargo-nextest`](https://nexte.st/) to run the tests in Github Workflows.
Some crates do not support running plain `cargo test` anymore, prefer `cargo nextest run` instead.
You can install `cargo-nextest` with `cargo install cargo-nextest`.

### Integration tests

Ensure your dependencies are installed as described [here](https://github.com/neondatabase/neon#dependency-installation-notes).

```sh
Expand Down
2 changes: 2 additions & 0 deletions clippy.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ disallowed-methods = [
"tokio::task::block_in_place",
# Allow this for now, to deny it later once we stop using Handle::block_on completely
# "tokio::runtime::Handle::block_on",
# use tokio_epoll_uring_ext instead
"tokio_epoll_uring::thread_local_system",
]

disallowed-macros = [
Expand Down
9 changes: 7 additions & 2 deletions compute_tools/src/compute.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ use chrono::{DateTime, Utc};
use futures::future::join_all;
use futures::stream::FuturesUnordered;
use futures::StreamExt;
use nix::unistd::Pid;
use postgres::error::SqlState;
use postgres::{Client, NoTls};
use tracing::{debug, error, info, instrument, warn};
Expand Down Expand Up @@ -722,8 +723,12 @@ impl ComputeNode {
// Stop it when it's ready
info!("waiting for postgres");
wait_for_postgres(&mut pg, Path::new(pgdata))?;
pg.kill()?;
info!("sent kill signal");
// SIGQUIT orders postgres to exit immediately. We don't want to SIGKILL
// it to avoid orphaned processes prowling around while datadir is
// wiped.
let pm_pid = Pid::from_raw(pg.id() as i32);
kill(pm_pid, Signal::SIGQUIT)?;
info!("sent SIGQUIT signal");
pg.wait()?;
info!("done prewarming");

Expand Down
18 changes: 10 additions & 8 deletions compute_tools/src/spec.rs
Original file line number Diff line number Diff line change
Expand Up @@ -743,19 +743,21 @@ pub fn handle_extension_neon(client: &mut Client) -> Result<()> {
// which may happen in two cases:
// - extension was just installed
// - extension was already installed and is up to date
let query = "ALTER EXTENSION neon UPDATE";
info!("update neon extension version with query: {}", query);
client.simple_query(query)?;
// DISABLED due to compute node unpinning epic
// let query = "ALTER EXTENSION neon UPDATE";
// info!("update neon extension version with query: {}", query);
// client.simple_query(query)?;

Ok(())
}

#[instrument(skip_all)]
pub fn handle_neon_extension_upgrade(client: &mut Client) -> Result<()> {
info!("handle neon extension upgrade");
let query = "ALTER EXTENSION neon UPDATE";
info!("update neon extension version with query: {}", query);
client.simple_query(query)?;
pub fn handle_neon_extension_upgrade(_client: &mut Client) -> Result<()> {
info!("handle neon extension upgrade (not really)");
// DISABLED due to compute node unpinning epic
// let query = "ALTER EXTENSION neon UPDATE";
// info!("update neon extension version with query: {}", query);
// client.simple_query(query)?;

Ok(())
}
Expand Down
1 change: 1 addition & 0 deletions control_plane/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ clap.workspace = true
comfy-table.workspace = true
futures.workspace = true
git-version.workspace = true
humantime.workspace = true
nix.workspace = true
once_cell.workspace = true
postgres.workspace = true
Expand Down
2 changes: 2 additions & 0 deletions control_plane/attachment_service/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,10 @@ aws-config.workspace = true
aws-sdk-secretsmanager.workspace = true
camino.workspace = true
clap.workspace = true
fail.workspace = true
futures.workspace = true
git-version.workspace = true
hex.workspace = true
hyper.workspace = true
humantime.workspace = true
once_cell.workspace = true
Expand Down
Loading
Loading