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

Compute release 2025-02-14 #10821

Closed
wants to merge 74 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
de05258
Adjust diesel schema check for build with sanitizers (#10711)
alexanderlaw Feb 7, 2025
b5a239c
Add reconciliation details to sk membership change rfc (#10514)
arssher Feb 7, 2025
8f651f9
switch from localtest.me to local.neon.build (#10714)
fedordikarev Feb 7, 2025
08f92bb
pageserver: clean up DeletionQueue push_layers_sync (#10701)
jcsp Feb 7, 2025
95220ba
tests: fix flaky endpoint in test_ingest_logical_message (#10700)
jcsp Feb 7, 2025
f524399
safekeeper: make timeline deletions a bit more verbose (#10721)
arpad-m Feb 7, 2025
d6e87a3
pageserver: add separate, disabled compaction semaphore (#10716)
erikgrinaker Feb 7, 2025
9609f75
tests: address warnings in timeline shutdown (#10702)
jcsp Feb 7, 2025
0abff59
compute: Allow postgres user to power off the VM (#10710)
hlinnaka Feb 7, 2025
5e95860
tests: wait for manifest persistence in test_timeline_archival_chaos …
jcsp Feb 7, 2025
2656c71
Revert recent AWS SDK update (#10724)
arpad-m Feb 7, 2025
bf20d78
fix(page_service): page reconstruct error log does not include `shard…
problame Feb 7, 2025
6cd3b50
fix(page_service / batching): smgr op latency metrics includes the fl…
problame Feb 8, 2025
874accd
pageserver: misc task cleanups (#10723)
erikgrinaker Feb 8, 2025
ac55e2d
pageserver: improve tenant housekeeping task (#10725)
erikgrinaker Feb 8, 2025
d204d51
Fix the upgrade test for pg_jwt by adding the database name (#10738)
a-masterov Feb 10, 2025
e711821
impr(proxy): Set TTL for Redis cancellation map keys (#10671)
awarus Feb 10, 2025
2f36bdb
CI(build-neon): fix duplicated builds (#10731)
bayandin Feb 10, 2025
443c8d0
feat(pageserver): repartition on L0-L1 boundary (#10548)
skyzh Feb 10, 2025
b37f52f
feat(pageserver): dump read path on missing key error (#10528)
skyzh Feb 10, 2025
0cf0119
Add --save_records option to pg_waldump (#10626)
knizhnik Feb 10, 2025
73633e2
fix(proxy): Log errors from the local proxy in auth-broker (#10659)
awarus Feb 10, 2025
946da3f
Require --compute-id when running compute_ctl (#10523)
tristan957 Feb 10, 2025
aba61a3
Download awscli in separate layer in Dockerfile, to allow caching (#1…
hlinnaka Feb 10, 2025
c368b0f
Use a cache mount to speed up rebuilding compute node image (#10737)
hlinnaka Feb 10, 2025
8c4e941
pageserver: notify compaction loop at threshold (#10740)
erikgrinaker Feb 10, 2025
b0c7ee0
feat(pageserver): better gc_compaction_split heuristics (#10727)
skyzh Feb 10, 2025
3d143ad
Unbrick the forward compatibility test failures (#10747)
tristan957 Feb 10, 2025
98883e4
compute_ctl: Use a single tokio runtime (#10743)
hlinnaka Feb 11, 2025
4ab1844
compute_ctl: database_schema should keep process::Child as part of re…
prepor Feb 11, 2025
c26131c
Link pgbouncer dynamically (#10749)
hlinnaka Feb 11, 2025
a4ea1e5
Apply Azure SDK patch to periodically load workload identity file (#1…
arpad-m Feb 11, 2025
fcedd10
tests: temporarily permit a log error (#10752)
jcsp Feb 11, 2025
9247331
fix(page_service / batching): smgr op latency metric of dropped respo…
problame Feb 11, 2025
be447ba
Change timeline_offloading setting default to true (#10760)
arpad-m Feb 11, 2025
f7b2293
Hardlink resident layers during detach ancestor (#10729)
arpad-m Feb 11, 2025
da9c101
Implement a second HTTP server within compute_ctl (#10574)
tristan957 Feb 11, 2025
f62bc28
proxy: Move binaries into the lib (#10758)
cloneable Feb 11, 2025
cd51ed2
tests: parametrize test_graceful_cluster_restart on AZ count (#10427)
jcsp Feb 11, 2025
b5e09fd
Re-order Dockerfile steps for putting together final compute image (#…
hlinnaka Feb 11, 2025
9491154
build(deps): bump cryptography from 43.0.1 to 44.0.1 in the pip group…
dependabot[bot] Feb 11, 2025
635b675
Split utils::http to separate crate (#10753)
hlinnaka Feb 11, 2025
6c83ac3
pageserver: do all L0 compaction before image compaction (#10744)
erikgrinaker Feb 11, 2025
71c30e5
pageserver: properly yield for L0 compaction (#10769)
erikgrinaker Feb 11, 2025
2c4c6e6
fix(neon): Add tests clarifying postgres sigabrt on pageserver unavai…
myrrc Feb 12, 2025
9537829
fast_import: Make CPU & memory size configurable (#10709)
hlinnaka Feb 12, 2025
9989d8b
tests: make Workload more determinstic (#10741)
jcsp Feb 12, 2025
ec35488
Feat/pin docker images to sha (#10730)
fedordikarev Feb 12, 2025
f62047a
pageserver: add separate semaphore for L0 compaction (#10780)
erikgrinaker Feb 12, 2025
20fe4b8
chore(compute): pg_mooncake v0.1.2 (#10778)
dpxcc Feb 12, 2025
f45f920
CI(trigger-e2e-tests): check permissions before running jobs (#10785)
bayandin Feb 12, 2025
49775d2
fix(compute): Respect skip_pg_catalog_updates in reconfigure() (#10696)
ololobus Feb 12, 2025
b77dd66
refactor(ci): overhaul container image pushing (#10613)
jcgruenhage Feb 12, 2025
61d2474
Also check by the planned gc cutoff for lease creation (#10764)
arpad-m Feb 12, 2025
922f3ee
Compress git history of Azure SDK (#10790)
arpad-m Feb 12, 2025
e386947
fix(ci): don't try pushing to prod container registries from main (#1…
jcgruenhage Feb 12, 2025
7b966a2
CI(trigger-e2e-tests): fix checking for successful image pushes (#10803)
jcgruenhage Feb 13, 2025
356cca2
fix(proxy): Change HSet to HDel for cancellation key metric (#10789)
awarus Feb 13, 2025
b8095f8
pageserver: make true GC cutoff visible in admin API, rebrand `latest…
jcsp Feb 13, 2025
536bdb3
storcon: track safekeepers in memory, send heartbeats to them (#10583)
arpad-m Feb 13, 2025
8fea43a
pageserver: make heatmap generation additive (#10597)
VladLazar Feb 13, 2025
e37ba86
Integrate cargo-chef into Dockerfile (#10782)
jcgruenhage Feb 13, 2025
8c2f85b
chore(compute): Postgres 17.3, 16.7, 15.11 and 14.16 (#10771)
ololobus Feb 13, 2025
ae463f3
tests: broaden allow-list for #10720 workaround (#10807)
jcsp Feb 13, 2025
a4d0a34
tests: flush in test_isolation (#10658)
jcsp Feb 13, 2025
b6f972e
Increase the extension server request timeout to 1 minute (#10800)
tristan957 Feb 13, 2025
0cf9157
Handle new compute_ctl_config parameter in compute spec requests (#1…
tristan957 Feb 13, 2025
98e18e9
Add s3 storage to test_s3_wal_replay (#10809)
arssher Feb 13, 2025
7ac7755
Add tests for pgtap (#10589)
a-masterov Feb 13, 2025
6a741fd
fix(pageserver): ensure all basebackup client errors are caught (#10793)
skyzh Feb 13, 2025
487f320
pageserver read path: abort on fatal IO errors from disk / filesystem…
problame Feb 13, 2025
5008324
Fix utilization URL and ensure heartbeats work (#10811)
arpad-m Feb 13, 2025
3e8bf21
CI(build-and-test): run `benchmarks` after `deploy` job (#10791)
bayandin Feb 13, 2025
ed21a65
Compute release 2025-02-14
github-actions[bot] Feb 14, 2025
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
22 changes: 13 additions & 9 deletions .github/workflows/_build-and-test-locally.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,14 @@ on:
required: true
type: string
test-cfg:
description: 'a json object of postgres versions and lfc/sanitizers states to build and run regression tests on'
description: 'a json object of postgres versions and lfc states to run regression tests on'
required: true
type: string
sanitizers:
description: 'enabled or disabled'
required: false
default: 'disabled'
type: string

defaults:
run:
Expand All @@ -48,8 +53,6 @@ jobs:
# io_uring will account the memory of the CQ and SQ as locked.
# More details: https://github.com/neondatabase/neon/issues/6373#issuecomment-1905814391
options: --init --shm-size=512mb --ulimit memlock=67108864:67108864
strategy:
matrix: ${{ fromJSON(format('{{"include":{0}}}', inputs.test-cfg)) }}
env:
BUILD_TYPE: ${{ inputs.build-type }}
GIT_VERSION: ${{ github.event.pull_request.head.sha || github.sha }}
Expand Down Expand Up @@ -89,7 +92,7 @@ jobs:
- name: Set env variables
env:
ARCH: ${{ inputs.arch }}
SANITIZERS: ${{ matrix.sanitizers }}
SANITIZERS: ${{ inputs.sanitizers }}
run: |
CARGO_FEATURES="--features testing"
if [[ $BUILD_TYPE == "debug" && $ARCH == 'x64' ]]; then
Expand Down Expand Up @@ -167,7 +170,7 @@ jobs:

- name: Run cargo build
env:
WITH_TESTS: ${{ matrix.sanitizers != 'enabled' && '--tests' || '' }}
WITH_TESTS: ${{ inputs.sanitizers != 'enabled' && '--tests' || '' }}
run: |
export ASAN_OPTIONS=detect_leaks=0
${cov_prefix} mold -run cargo build $CARGO_FLAGS $CARGO_FEATURES --bins ${WITH_TESTS}
Expand All @@ -177,7 +180,7 @@ jobs:
- name: Install rust binaries
env:
ARCH: ${{ inputs.arch }}
SANITIZERS: ${{ matrix.sanitizers }}
SANITIZERS: ${{ inputs.sanitizers }}
run: |
# Install target binaries
mkdir -p /tmp/neon/bin/
Expand Down Expand Up @@ -225,7 +228,7 @@ jobs:
role-duration-seconds: 18000 # 5 hours

- name: Run rust tests
if: ${{ matrix.sanitizers != 'enabled' }}
if: ${{ inputs.sanitizers != 'enabled' }}
env:
NEXTEST_RETRIES: 3
run: |
Expand Down Expand Up @@ -287,6 +290,7 @@ jobs:
DATABASE_URL: postgresql://localhost:1235/storage_controller
POSTGRES_DISTRIB_DIR: /tmp/neon/pg_install
run: |
export ASAN_OPTIONS=detect_leaks=0
/tmp/neon/bin/neon_local init
/tmp/neon/bin/neon_local storage_controller start

Expand Down Expand Up @@ -333,7 +337,7 @@ jobs:
- name: Pytest regression tests
continue-on-error: ${{ matrix.lfc_state == 'with-lfc' && inputs.build-type == 'debug' }}
uses: ./.github/actions/run-python-test-set
timeout-minutes: ${{ matrix.sanitizers != 'enabled' && 60 || 180 }}
timeout-minutes: ${{ inputs.sanitizers != 'enabled' && 60 || 180 }}
with:
build_type: ${{ inputs.build-type }}
test_selection: regress
Expand All @@ -351,7 +355,7 @@ jobs:
PAGESERVER_VIRTUAL_FILE_IO_ENGINE: tokio-epoll-uring
PAGESERVER_GET_VECTORED_CONCURRENT_IO: sidecar-task
USE_LFC: ${{ matrix.lfc_state == 'with-lfc' && 'true' || 'false' }}
SANITIZERS: ${{ matrix.sanitizers }}
SANITIZERS: ${{ inputs.sanitizers }}

# Temporary disable this step until we figure out why it's so flaky
# Ref https://github.com/neondatabase/neon/issues/4540
Expand Down
56 changes: 0 additions & 56 deletions .github/workflows/_push-to-acr.yml

This file was deleted.

101 changes: 101 additions & 0 deletions .github/workflows/_push-to-container-registry.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
name: Push images to Container Registry
on:
workflow_call:
inputs:
# Example: {"docker.io/neondatabase/neon:13196061314":["369495373322.dkr.ecr.eu-central-1.amazonaws.com/neon:13196061314","neoneastus2.azurecr.io/neondatabase/neon:13196061314"]}
image-map:
description: JSON map of images, mapping from a source image to an array of target images that should be pushed.
required: true
type: string
aws-region:
description: AWS region to log in to. Required when pushing to ECR.
required: false
type: string
aws-account-ids:
description: Comma separated AWS account IDs to log in to for pushing to ECR. Required when pushing to ECR.
required: false
type: string
azure-client-id:
description: Client ID of Azure managed identity or Entra app. Required when pushing to ACR.
required: false
type: string
azure-subscription-id:
description: Azure subscription ID. Required when pushing to ACR.
required: false
type: string
azure-tenant-id:
description: Azure tenant ID. Required when pushing to ACR.
required: false
type: string
acr-registry-name:
description: ACR registry name. Required when pushing to ACR.
required: false
type: string
secrets:
docker-hub-username:
description: Docker Hub username. Required when pushing to Docker Hub.
required: false
docker-hub-password:
description: Docker Hub password. Required when pushing to Docker Hub.
required: false
aws-role-to-assume:
description: AWS role to assume. Required when pushing to ECR.
required: false

permissions: {}

defaults:
run:
shell: bash -euo pipefail {0}

jobs:
push-to-container-registry:
runs-on: ubuntu-22.04
permissions:
id-token: write # Required for aws/azure login
steps:
- uses: actions/checkout@v4
with:
sparse-checkout: scripts/push_with_image_map.py
sparse-checkout-cone-mode: false

- name: Print image-map
run: echo '${{ inputs.image-map }}' | jq

- name: Configure AWS credentials
if: contains(inputs.image-map, 'amazonaws.com/')
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: "${{ inputs.aws-region }}"
role-to-assume: "${{ secrets.aws-role-to-assume }}"
role-duration-seconds: 3600

- name: Login to ECR
if: contains(inputs.image-map, 'amazonaws.com/')
uses: aws-actions/amazon-ecr-login@v2
with:
registries: "${{ inputs.aws-account-ids }}"

- name: Configure Azure credentials
if: contains(inputs.image-map, 'azurecr.io/')
uses: azure/login@6c251865b4e6290e7b78be643ea2d005bc51f69a # @v2.1.1
with:
client-id: ${{ inputs.azure-client-id }}
subscription-id: ${{ inputs.azure-subscription-id }}
tenant-id: ${{ inputs.azure-tenant-id }}

- name: Login to ACR
if: contains(inputs.image-map, 'azurecr.io/')
run: |
az acr login --name=${{ inputs.acr-registry-name }}

- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.docker-hub-username }}
password: ${{ secrets.docker-hub-password }}

- name: Copy docker images to target registries
run: python scripts/push_with_image_map.py
env:
IMAGE_MAP: ${{ inputs.image-map }}
Loading
Loading