Skip to content

Commit bab469d

Browse files
committed
Merge remote-tracking branch 'upstream/master' into HEAD
2 parents 270f7c3 + d48ebff commit bab469d

File tree

190 files changed

+2009
-1771
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

190 files changed

+2009
-1771
lines changed

.github/workflows/master.yml

Lines changed: 78 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -3435,82 +3435,6 @@ jobs:
34353435
python3 -m praktika run 'Stress test (azure, msan)' --workflow "MasterCI" --ci |& tee ./ci/tmp/job.log
34363436
fi
34373437
3438-
clickbench_release:
3439-
runs-on: [self-hosted, func-tester]
3440-
needs: [config_workflow, build_amd_release]
3441-
if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'Q2xpY2tCZW5jaCAocmVsZWFzZSk=') }}
3442-
name: "ClickBench (release)"
3443-
outputs:
3444-
data: ${{ steps.run.outputs.DATA }}
3445-
steps:
3446-
- name: Checkout code
3447-
uses: actions/checkout@v4
3448-
with:
3449-
ref: ${{ env.CHECKOUT_REF }}
3450-
3451-
- name: Prepare env script
3452-
run: |
3453-
rm -rf ./ci/tmp ./ci/tmp ./ci/tmp
3454-
mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp
3455-
cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF'
3456-
export PYTHONPATH=./ci:.:
3457-
cat > ./ci/tmp/workflow_config_masterci.json << 'EOF'
3458-
${{ needs.config_workflow.outputs.data }}
3459-
EOF
3460-
cat > ./ci/tmp/workflow_status.json << 'EOF'
3461-
${{ toJson(needs) }}
3462-
EOF
3463-
ENV_SETUP_SCRIPT_EOF
3464-
3465-
- name: Run
3466-
id: run
3467-
run: |
3468-
. ./ci/tmp/praktika_setup_env.sh
3469-
set -o pipefail
3470-
if command -v ts &> /dev/null; then
3471-
python3 -m praktika run 'ClickBench (release)' --workflow "MasterCI" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log
3472-
else
3473-
python3 -m praktika run 'ClickBench (release)' --workflow "MasterCI" --ci |& tee ./ci/tmp/job.log
3474-
fi
3475-
3476-
clickbench_aarch64:
3477-
runs-on: [self-hosted, func-tester-aarch64]
3478-
needs: [config_workflow, build_arm_release]
3479-
if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'Q2xpY2tCZW5jaCAoYWFyY2g2NCk=') }}
3480-
name: "ClickBench (aarch64)"
3481-
outputs:
3482-
data: ${{ steps.run.outputs.DATA }}
3483-
steps:
3484-
- name: Checkout code
3485-
uses: actions/checkout@v4
3486-
with:
3487-
ref: ${{ env.CHECKOUT_REF }}
3488-
3489-
- name: Prepare env script
3490-
run: |
3491-
rm -rf ./ci/tmp ./ci/tmp ./ci/tmp
3492-
mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp
3493-
cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF'
3494-
export PYTHONPATH=./ci:.:
3495-
cat > ./ci/tmp/workflow_config_masterci.json << 'EOF'
3496-
${{ needs.config_workflow.outputs.data }}
3497-
EOF
3498-
cat > ./ci/tmp/workflow_status.json << 'EOF'
3499-
${{ toJson(needs) }}
3500-
EOF
3501-
ENV_SETUP_SCRIPT_EOF
3502-
3503-
- name: Run
3504-
id: run
3505-
run: |
3506-
. ./ci/tmp/praktika_setup_env.sh
3507-
set -o pipefail
3508-
if command -v ts &> /dev/null; then
3509-
python3 -m praktika run 'ClickBench (aarch64)' --workflow "MasterCI" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log
3510-
else
3511-
python3 -m praktika run 'ClickBench (aarch64)' --workflow "MasterCI" --ci |& tee ./ci/tmp/job.log
3512-
fi
3513-
35143438
ast_fuzzer_debug:
35153439
runs-on: [self-hosted, func-tester]
35163440
needs: [config_workflow, build_amd_debug]
@@ -4119,6 +4043,82 @@ jobs:
41194043
python3 -m praktika run 'Performance Comparison (arm_release,master_head,3/3)' --workflow "MasterCI" --ci |& tee ./ci/tmp/job.log
41204044
fi
41214045
4046+
clickbench_amd_release:
4047+
runs-on: [self-hosted, func-tester]
4048+
needs: [config_workflow, build_amd_release]
4049+
if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'Q2xpY2tCZW5jaCAoYW1kX3JlbGVhc2Up') }}
4050+
name: "ClickBench (amd_release)"
4051+
outputs:
4052+
data: ${{ steps.run.outputs.DATA }}
4053+
steps:
4054+
- name: Checkout code
4055+
uses: actions/checkout@v4
4056+
with:
4057+
ref: ${{ env.CHECKOUT_REF }}
4058+
4059+
- name: Prepare env script
4060+
run: |
4061+
rm -rf ./ci/tmp ./ci/tmp ./ci/tmp
4062+
mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp
4063+
cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF'
4064+
export PYTHONPATH=./ci:.:
4065+
cat > ./ci/tmp/workflow_config_masterci.json << 'EOF'
4066+
${{ needs.config_workflow.outputs.data }}
4067+
EOF
4068+
cat > ./ci/tmp/workflow_status.json << 'EOF'
4069+
${{ toJson(needs) }}
4070+
EOF
4071+
ENV_SETUP_SCRIPT_EOF
4072+
4073+
- name: Run
4074+
id: run
4075+
run: |
4076+
. ./ci/tmp/praktika_setup_env.sh
4077+
set -o pipefail
4078+
if command -v ts &> /dev/null; then
4079+
python3 -m praktika run 'ClickBench (amd_release)' --workflow "MasterCI" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log
4080+
else
4081+
python3 -m praktika run 'ClickBench (amd_release)' --workflow "MasterCI" --ci |& tee ./ci/tmp/job.log
4082+
fi
4083+
4084+
clickbench_arm_release:
4085+
runs-on: [self-hosted, func-tester-aarch64]
4086+
needs: [config_workflow, build_arm_release]
4087+
if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'Q2xpY2tCZW5jaCAoYXJtX3JlbGVhc2Up') }}
4088+
name: "ClickBench (arm_release)"
4089+
outputs:
4090+
data: ${{ steps.run.outputs.DATA }}
4091+
steps:
4092+
- name: Checkout code
4093+
uses: actions/checkout@v4
4094+
with:
4095+
ref: ${{ env.CHECKOUT_REF }}
4096+
4097+
- name: Prepare env script
4098+
run: |
4099+
rm -rf ./ci/tmp ./ci/tmp ./ci/tmp
4100+
mkdir -p ./ci/tmp ./ci/tmp ./ci/tmp
4101+
cat > ./ci/tmp/praktika_setup_env.sh << 'ENV_SETUP_SCRIPT_EOF'
4102+
export PYTHONPATH=./ci:.:
4103+
cat > ./ci/tmp/workflow_config_masterci.json << 'EOF'
4104+
${{ needs.config_workflow.outputs.data }}
4105+
EOF
4106+
cat > ./ci/tmp/workflow_status.json << 'EOF'
4107+
${{ toJson(needs) }}
4108+
EOF
4109+
ENV_SETUP_SCRIPT_EOF
4110+
4111+
- name: Run
4112+
id: run
4113+
run: |
4114+
. ./ci/tmp/praktika_setup_env.sh
4115+
set -o pipefail
4116+
if command -v ts &> /dev/null; then
4117+
python3 -m praktika run 'ClickBench (arm_release)' --workflow "MasterCI" --ci |& ts '[%Y-%m-%d %H:%M:%S]' | tee ./ci/tmp/job.log
4118+
else
4119+
python3 -m praktika run 'ClickBench (arm_release)' --workflow "MasterCI" --ci |& tee ./ci/tmp/job.log
4120+
fi
4121+
41224122
sqlancer_amd_debug:
41234123
runs-on: [self-hosted, func-tester]
41244124
needs: [config_workflow, build_amd_debug]
@@ -4158,8 +4158,8 @@ jobs:
41584158
fi
41594159
41604160
sqltest:
4161-
runs-on: [self-hosted, func-tester]
4162-
needs: [config_workflow, build_amd_release]
4161+
runs-on: [self-hosted, func-tester-aarch64]
4162+
needs: [config_workflow, build_arm_release]
41634163
if: ${{ !failure() && !cancelled() && !contains(fromJson(needs.config_workflow.outputs.data).cache_success_base64, 'U1FMVGVzdA==') }}
41644164
name: "SQLTest"
41654165
outputs:

.gitmodules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@
247247
url = https://github.com/ClickHouse/llvm-project
248248
[submodule "contrib/corrosion"]
249249
path = contrib/corrosion
250-
url = https://github.com/ClickHouse/corrosion
250+
url = https://github.com/corrosion-rs/corrosion
251251
[submodule "contrib/libssh"]
252252
path = contrib/libssh
253253
url = https://github.com/ClickHouse/libssh.git

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ Upcoming meetups
5454
* [Kuala Lumper Meetup with CNCF](https://www.meetup.com/clickhouse-malaysia-meetup-group/events/306697678/) - April 16, 2025
5555
* [Jakarta Meetup with AWS](https://www.meetup.com/clickhouse-indonesia-user-group/events/306973747/) - April 22, 2025
5656
* [London Meetup](https://www.meetup.com/clickhouse-london-user-group/events/306047172/) - May 14, 2025
57+
* [Istanbul Meetup](https://www.meetup.com/clickhouse-turkiye-meetup-group/events/306978337/) - May 15, 2025
5758

5859
Recent meetups
5960
* [Washington DC Meetup](https://www.meetup.com/clickhouse-dc-user-group/events/306439995) - March 27, 2025

base/base/defines.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,6 @@
2828
#define NO_INLINE __attribute__((__noinline__))
2929
#define MAY_ALIAS __attribute__((__may_alias__))
3030

31-
#if defined(__x86_64__) || defined(__aarch64__)
32-
# define PRESERVE_MOST __attribute__((preserve_most))
33-
#else
34-
# define PRESERVE_MOST
35-
#endif
36-
3731
#if !defined(__x86_64__) && !defined(__aarch64__) && !defined(__PPC__) && !defined(__s390x__) && !(defined(__loongarch64)) && !(defined(__riscv) && (__riscv_xlen == 64))
3832
# error "The only supported platforms are x86_64 and AArch64, PowerPC (work in progress), s390x (work in progress), loongarch64 (experimental) and RISC-V 64 (experimental)"
3933
#endif

base/poco/Net/include/Poco/Net/StreamSocket.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ namespace Net
7272
/// attaches the SocketImpl from the other socket and
7373
/// increments the reference count of the SocketImpl.
7474

75+
void bind(const SocketAddress& address, bool reuseAddress);
76+
/// Binds the socket to the given address
77+
7578
void connect(const SocketAddress & address);
7679
/// Initializes the socket and establishes a connection to
7780
/// the TCP server at the given address.

base/poco/Net/src/StreamSocket.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,11 @@ StreamSocket& StreamSocket::operator = (const Socket& socket)
7272
return *this;
7373
}
7474

75+
void StreamSocket::bind(const SocketAddress& address, bool reuseAddress)
76+
{
77+
static_cast<StreamSocketImpl*>(impl())->bind(address, reuseAddress);
78+
}
79+
7580

7681
void StreamSocket::connect(const SocketAddress& address)
7782
{

base/poco/NetSSL_OpenSSL/include/Poco/Net/SecureStreamSocket.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,9 @@ namespace Net
157157
void setPeerHostName(const std::string & hostName);
158158
/// Sets the peer's host name used for certificate validation.
159159

160+
void bind(const SocketAddress& address, bool reuseAddress);
161+
/// Binds the socket to the given address
162+
160163
const std::string & getPeerHostName() const;
161164
/// Returns the peer's host name used for certificate validation.
162165

base/poco/NetSSL_OpenSSL/include/Poco/Net/SecureStreamSocketImpl.h

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,30 @@ namespace Net
6666
/// the TCP server at the given address. Prior to opening the
6767
/// connection the socket is set to nonblocking mode.
6868

69-
void bind(const SocketAddress & address, bool reuseAddress = false, bool reusePort = false);
70-
/// Not supported by a SecureStreamSocket.
69+
void bind(const SocketAddress& address, bool reuseAddress);
70+
/// Bind a local address to the socket.
7171
///
7272
/// Throws a Poco::InvalidAccessException.
73+
/// This is usually only done when establishing a server
74+
/// socket.
75+
///
76+
/// TCP clients normally do not bind to a local address,
77+
/// but in some special advanced cases it may be useful to have
78+
/// this type of functionality. (e.g. in multihoming situations
79+
/// where the traffic will be sent through a particular interface;
80+
/// or in computer clustered environments with active/standby
81+
/// servers and it is desired to make the traffic from either
82+
/// active host present the same source IP address).
83+
///
84+
/// Note: Practical use of client source IP address binding
85+
/// may require OS networking setup outside the scope of
86+
/// the Poco library.
87+
///
88+
/// If reuseAddress is true, sets the SO_REUSEADDR
89+
/// socket option.
90+
///
91+
/// TODO: implement IPv6 version
92+
///
7393

7494
void listen(int backlog = 64);
7595
/// Not supported by a SecureStreamSocket.

base/poco/NetSSL_OpenSSL/src/SecureStreamSocket.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,12 @@ void SecureStreamSocket::setPeerHostName(const std::string& hostName)
140140
static_cast<SecureStreamSocketImpl*>(impl())->setPeerHostName(hostName);
141141
}
142142

143-
143+
void SecureStreamSocket::bind(const SocketAddress& address, bool reuseAddress)
144+
{
145+
static_cast<SecureStreamSocketImpl*>(impl())->bind(address, reuseAddress);
146+
}
147+
148+
144149
const std::string& SecureStreamSocket::getPeerHostName() const
145150
{
146151
return static_cast<SecureStreamSocketImpl*>(impl())->getPeerHostName();

base/poco/NetSSL_OpenSSL/src/SecureStreamSocketImpl.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,11 +102,11 @@ void SecureStreamSocketImpl::connectSSL()
102102
}
103103

104104

105-
void SecureStreamSocketImpl::bind(const SocketAddress& address, bool reuseAddress, bool reusePort)
105+
void SecureStreamSocketImpl::bind(const SocketAddress& address, bool reuseAddress)
106106
{
107-
throw Poco::InvalidAccessException("Cannot bind() a SecureStreamSocketImpl");
107+
_impl.bind(address, reuseAddress);
108+
reset(_impl.sockfd());
108109
}
109-
110110

111111
void SecureStreamSocketImpl::listen(int backlog)
112112
{

0 commit comments

Comments
 (0)