mirror of
https://github.com/neondatabase/neon.git
synced 2026-08-09 08:09:15 +00:00
Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e97e86eb43 | |||
| c9370d48de | |||
| 6f714c308b | |||
| 2e6afaa642 | |||
| 8f0a0440ba | |||
| 987dc01ed7 | |||
| 719e4ad580 | |||
| e61b2a08b3 | |||
| cc89b46ae5 | |||
| d5cbdd2e90 | |||
| 6ad9c3560e | |||
| 9dc3b09e57 | |||
| fe762e35d8 | |||
| 0c4988a92c |
@@ -48,6 +48,10 @@ inputs:
|
|||||||
description: 'benchmark durations JSON'
|
description: 'benchmark durations JSON'
|
||||||
required: false
|
required: false
|
||||||
default: '{}'
|
default: '{}'
|
||||||
|
session_timeout:
|
||||||
|
description: 'Session timeout for the test suite'
|
||||||
|
required: false
|
||||||
|
default: ''
|
||||||
|
|
||||||
runs:
|
runs:
|
||||||
using: "composite"
|
using: "composite"
|
||||||
@@ -107,6 +111,7 @@ runs:
|
|||||||
ALLOW_FORWARD_COMPATIBILITY_BREAKAGE: contains(github.event.pull_request.labels.*.name, 'forward compatibility breakage')
|
ALLOW_FORWARD_COMPATIBILITY_BREAKAGE: contains(github.event.pull_request.labels.*.name, 'forward compatibility breakage')
|
||||||
RERUN_FLAKY: ${{ inputs.rerun_flaky }}
|
RERUN_FLAKY: ${{ inputs.rerun_flaky }}
|
||||||
PG_VERSION: ${{ inputs.pg_version }}
|
PG_VERSION: ${{ inputs.pg_version }}
|
||||||
|
SESSION_TIMEOUT: ${{ inputs.session_timeout }}
|
||||||
shell: bash -euxo pipefail {0}
|
shell: bash -euxo pipefail {0}
|
||||||
run: |
|
run: |
|
||||||
# PLATFORM will be embedded in the perf test report
|
# PLATFORM will be embedded in the perf test report
|
||||||
@@ -168,6 +173,10 @@ runs:
|
|||||||
EXTRA_PARAMS="--durations-path $TEST_OUTPUT/benchmark_durations.json $EXTRA_PARAMS"
|
EXTRA_PARAMS="--durations-path $TEST_OUTPUT/benchmark_durations.json $EXTRA_PARAMS"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -n "${SESSION_TIMEOUT}" ]; then
|
||||||
|
EXTRA_PARAMS="--session-timeout ${SESSION_TIMEOUT} ${EXTRA_PARAMS}"
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ "${{ inputs.build_type }}" == "debug" ]]; then
|
if [[ "${{ inputs.build_type }}" == "debug" ]]; then
|
||||||
cov_prefix=(scripts/coverage "--profraw-prefix=$GITHUB_JOB" --dir=/tmp/coverage run)
|
cov_prefix=(scripts/coverage "--profraw-prefix=$GITHUB_JOB" --dir=/tmp/coverage run)
|
||||||
elif [[ "${{ inputs.build_type }}" == "release" ]]; then
|
elif [[ "${{ inputs.build_type }}" == "release" ]]; then
|
||||||
|
|||||||
@@ -461,7 +461,8 @@ jobs:
|
|||||||
|
|
||||||
- name: Pytest regression tests
|
- name: Pytest regression tests
|
||||||
uses: ./.github/actions/run-python-test-set
|
uses: ./.github/actions/run-python-test-set
|
||||||
timeout-minutes: 60
|
# Hard timeout to prevent hanging tests, we also have set softer pytest timeout (set via `session_timeout`) which is shorter
|
||||||
|
timeout-minutes: 110
|
||||||
with:
|
with:
|
||||||
build_type: ${{ matrix.build_type }}
|
build_type: ${{ matrix.build_type }}
|
||||||
test_selection: regress
|
test_selection: regress
|
||||||
@@ -471,6 +472,8 @@ jobs:
|
|||||||
real_s3_region: eu-central-1
|
real_s3_region: eu-central-1
|
||||||
rerun_flaky: true
|
rerun_flaky: true
|
||||||
pg_version: ${{ matrix.pg_version }}
|
pg_version: ${{ matrix.pg_version }}
|
||||||
|
# Set pytest session timeout to 25 minutes
|
||||||
|
session_timeout: '1500'
|
||||||
env:
|
env:
|
||||||
TEST_RESULT_CONNSTR: ${{ secrets.REGRESS_TEST_RESULT_CONNSTR_NEW }}
|
TEST_RESULT_CONNSTR: ${{ secrets.REGRESS_TEST_RESULT_CONNSTR_NEW }}
|
||||||
CHECK_ONDISK_DATA_COMPATIBILITY: nonempty
|
CHECK_ONDISK_DATA_COMPATIBILITY: nonempty
|
||||||
|
|||||||
Generated
-2
@@ -3638,7 +3638,6 @@ dependencies = [
|
|||||||
"arc-swap",
|
"arc-swap",
|
||||||
"async-compression",
|
"async-compression",
|
||||||
"async-stream",
|
"async-stream",
|
||||||
"async-trait",
|
|
||||||
"byteorder",
|
"byteorder",
|
||||||
"bytes",
|
"bytes",
|
||||||
"camino",
|
"camino",
|
||||||
@@ -4107,7 +4106,6 @@ name = "postgres_backend"
|
|||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-trait",
|
|
||||||
"bytes",
|
"bytes",
|
||||||
"futures",
|
"futures",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ edition.workspace = true
|
|||||||
license.workspace = true
|
license.workspace = true
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
async-trait.workspace = true
|
|
||||||
anyhow.workspace = true
|
anyhow.workspace = true
|
||||||
bytes.workspace = true
|
bytes.workspace = true
|
||||||
futures.workspace = true
|
futures.workspace = true
|
||||||
|
|||||||
@@ -78,17 +78,16 @@ pub fn is_expected_io_error(e: &io::Error) -> bool {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait::async_trait]
|
|
||||||
pub trait Handler<IO> {
|
pub trait Handler<IO> {
|
||||||
/// Handle single query.
|
/// Handle single query.
|
||||||
/// postgres_backend will issue ReadyForQuery after calling this (this
|
/// postgres_backend will issue ReadyForQuery after calling this (this
|
||||||
/// might be not what we want after CopyData streaming, but currently we don't
|
/// might be not what we want after CopyData streaming, but currently we don't
|
||||||
/// care). It will also flush out the output buffer.
|
/// care). It will also flush out the output buffer.
|
||||||
async fn process_query(
|
fn process_query(
|
||||||
&mut self,
|
&mut self,
|
||||||
pgb: &mut PostgresBackend<IO>,
|
pgb: &mut PostgresBackend<IO>,
|
||||||
query_string: &str,
|
query_string: &str,
|
||||||
) -> Result<(), QueryError>;
|
) -> impl Future<Output = Result<(), QueryError>> + Send;
|
||||||
|
|
||||||
/// Called on startup packet receival, allows to process params.
|
/// Called on startup packet receival, allows to process params.
|
||||||
///
|
///
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ async fn make_tcp_pair() -> (TcpStream, TcpStream) {
|
|||||||
|
|
||||||
struct TestHandler {}
|
struct TestHandler {}
|
||||||
|
|
||||||
#[async_trait::async_trait]
|
|
||||||
impl<IO: AsyncRead + AsyncWrite + Unpin + Send> Handler<IO> for TestHandler {
|
impl<IO: AsyncRead + AsyncWrite + Unpin + Send> Handler<IO> for TestHandler {
|
||||||
// return single col 'hey' for any query
|
// return single col 'hey' for any query
|
||||||
async fn process_query(
|
async fn process_query(
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ anyhow.workspace = true
|
|||||||
arc-swap.workspace = true
|
arc-swap.workspace = true
|
||||||
async-compression.workspace = true
|
async-compression.workspace = true
|
||||||
async-stream.workspace = true
|
async-stream.workspace = true
|
||||||
async-trait.workspace = true
|
|
||||||
byteorder.workspace = true
|
byteorder.workspace = true
|
||||||
bytes.workspace = true
|
bytes.workspace = true
|
||||||
camino.workspace = true
|
camino.workspace = true
|
||||||
|
|||||||
@@ -1384,7 +1384,6 @@ impl PageServerHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait::async_trait]
|
|
||||||
impl<IO> postgres_backend::Handler<IO> for PageServerHandler
|
impl<IO> postgres_backend::Handler<IO> for PageServerHandler
|
||||||
where
|
where
|
||||||
IO: AsyncRead + AsyncWrite + Send + Sync + Unpin,
|
IO: AsyncRead + AsyncWrite + Send + Sync + Unpin,
|
||||||
|
|||||||
Generated
+1837
-1163
File diff suppressed because one or more lines are too long
@@ -75,7 +75,6 @@ pub type ComputeReady = DatabaseInfo;
|
|||||||
|
|
||||||
// TODO: replace with an http-based protocol.
|
// TODO: replace with an http-based protocol.
|
||||||
struct MgmtHandler;
|
struct MgmtHandler;
|
||||||
#[async_trait::async_trait]
|
|
||||||
impl postgres_backend::Handler<tokio::net::TcpStream> for MgmtHandler {
|
impl postgres_backend::Handler<tokio::net::TcpStream> for MgmtHandler {
|
||||||
async fn process_query(
|
async fn process_query(
|
||||||
&mut self,
|
&mut self,
|
||||||
|
|||||||
+1
-1
@@ -23,7 +23,7 @@ moto = {extras = ["server"], version = "^4.1.2"}
|
|||||||
backoff = "^2.2.1"
|
backoff = "^2.2.1"
|
||||||
pytest-lazy-fixture = "^0.6.3"
|
pytest-lazy-fixture = "^0.6.3"
|
||||||
prometheus-client = "^0.14.1"
|
prometheus-client = "^0.14.1"
|
||||||
pytest-timeout = "^2.1.0"
|
pytest-timeout = "^2.3.1"
|
||||||
Werkzeug = "^3.0.1"
|
Werkzeug = "^3.0.1"
|
||||||
pytest-order = "^1.1.0"
|
pytest-order = "^1.1.0"
|
||||||
allure-pytest = "^2.13.2"
|
allure-pytest = "^2.13.2"
|
||||||
|
|||||||
@@ -95,7 +95,6 @@ fn cmd_to_string(cmd: &SafekeeperPostgresCommand) -> &str {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[async_trait::async_trait]
|
|
||||||
impl<IO: AsyncRead + AsyncWrite + Unpin + Send> postgres_backend::Handler<IO>
|
impl<IO: AsyncRead + AsyncWrite + Unpin + Send> postgres_backend::Handler<IO>
|
||||||
for SafekeeperPostgresHandler
|
for SafekeeperPostgresHandler
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user