33 Commits
Author SHA1 Message Date
Dongyang Li 805b746add [fix](regression) use JDK 17 for Java UDF builds (#65888)
## What changed

- make `run-regression-test.sh` select and validate JDK 17 before
invoking Maven
- prefer a valid `JAVA_HOME` or `JDK_17`, with Linux and macOS discovery
fallbacks
- build the regression framework and Java UDF case jar with the same JDK
17
- compile `java-udf-src` with `maven.compiler.release=17`

## Why

The regression build depended on the caller to prepare `JAVA_HOME`, and
newer branches also switched to JDK 8 only for the Java UDF module. This
split ownership between CI and the Doris build script and could produce
incomplete case artifacts when the framework required JDK 17.

Keeping Java selection in `run-regression-test.sh` makes local and CI
builds follow the same contract and removes the Java 8-only UDF build
path.

## Validation

- `bash -n run-regression-test.sh`
- `git diff --check`
- ran `./run-regression-test.sh --clean` while the incoming `JAVA_HOME`
pointed to JDK 22; the script selected JDK 17 and Maven reported Java 17
- built `regression-test/java-udf-src` with JDK 17 successfully
- verified `Echo$EchoInt` has class major version 61 and the expected
UDF classes are present in the assembled jar
2026-07-23 20:11:47 +08:00
Gabriel bc071ff7c9 [fix](regression) Wait past unsafe time boundaries (#65742)
The regression framework truncated the remaining time
before an hour or day boundary to whole seconds. Sleeping for that
truncated value could resume in the final fractional second before the
boundary, allowing a boundary-sensitive case to cross it and fail
intermittently. This change computes the wait in milliseconds and sleeps
one additional millisecond so execution resumes strictly after the
boundary. It also adds focused coverage for fractional, exact, and safe
boundary windows and aligns the JUnit API with the engine already
provided by Groovy.
2026-07-17 23:04:50 +08:00
Calvin KirsandDongyang Li 98b4a21b42 [improvement](regression) Align regression framework arrow/netty with fe-core and target JDK17 (#64677)
## Proposed changes

Align the regression-test framework's dependency versions with fe-core
(`fe/pom.xml`):

- `arrow.version`: `17.0.0` -> `19.0.0`
- `netty-all`: `4.1.104.Final` -> `4.2.15.Final`
- `maven.compiler.source/target`: `1.8` -> `17` (Arrow 18+ requires JDK
17, and the regression build already runs on JDK 17)

This is a **dependency-alignment / JDK17-target change only**. It keeps
the framework's Arrow Flight SQL JDBC driver and netty in lockstep with
fe-core instead of drifting on older versions.

### Scope / risk

- Only `regression-test/framework/pom.xml` is touched.
- Raising `maven.compiler.target` to 17 affects the compiled output of
the whole regression framework, so this needs full regression CI to
validate, not just a local build.
- It does **not** fix the intermittent `arrow_flight_sql_p0` close-time
buffer leak — that has a separate root cause and will be handled in a
follow-up.

---------

Co-authored-by: Dongyang Li <lidongyang@selectdb.com>
2026-07-01 10:42:51 +08:00
Calvin Kirs 94fd23d53d [improvement](fe) Evaluate protobuf 4 with Arrow 19 (#61943)
### What problem does this PR solve?

Issue Number: None

Related PR: None

Problem Summary: Align FE-side protobuf and Arrow Java dependencies for
the protobuf 4 / Arrow 19 evaluation, add the required Gson exclusion
for protobuf 4 builders, and cover the behavior with a focused FE unit
test.

### Release note

None
2026-04-14 09:44:56 +08:00
morrySnow eb3be18063 [opt](build) use mvn to compile thrift for fe (#61486) 2026-03-24 10:08:06 +08:00
Dongyang Li 91810db0c1 [opt](ci) add retry when building regression test framework (#60061)
Problem Summary:

try to reduce issue like below:
[ERROR] Failed to execute goal on project regression-test: Could not
resolve dependencies for project
org.apache.doris:regression-test:jar:1.0-SNAPSHOT: Could not transfer
artifact com.azure:azure-core:jar:1.49.0 from/to central
(https://repo.maven.apache.org/maven2): GET request of:
com/azure/azure-core/1.49.0/azure-core-1.49.0.jar from central failed:
Premature end of Content-Length delimited message body (expected:
842,694; received: 278,057) -> [Help 1]
2026-01-21 12:43:58 +08:00
wudi 04e5604246 [improve](case) Fix spark flink case in jdk17 (#56992)
### What problem does this PR solve?

Fix spark flink case in jdk17
2025-10-17 10:02:07 +08:00
minghong 06bb48f90d [opt](regression) ./run-regression-test.sh support -f parameter to run case in specified file (#56799)
### What problem does this PR solve?
1. support -f parameter to run specified case file
./run-regression-test.sh --run -f
regression-test/suites/tpch_sf0.1_p1/sql/q01.sql
is equivalent to
./run-regression-test.sh --run -f
regression-test/suites/tpch_sf0.1_p1/sql -s q01

2. print regression log in log file
the end of log file looks like this:
2025-10-10 18:10:26.819 INFO [main] (RegressionTest.groovy:478) - Test 1
suites, failed 1 suites, fatal 0 scripts, skipped 0 scripts
2025-10-10 18:10:26.820 INFO [main] (RegressionTest.groovy:130) - Test
finished
2025-10-10 18:10:26.820 INFO [main] (RegressionTest.groovy:153) -
================================================================================
2025-10-10 18:10:26.821 INFO [main] (RegressionTest.groovy:154) - Log
file:
/xxx/doris/output/regression-test/log/doris-regression-test.20251010.180949.log
2025-10-10 18:10:26.821 INFO [main] (RegressionTest.groovy:155) -
================================================================================
2025-10-10 18:10:26.969 INFO [Thread-0]
(plugin_query_timeout_debugger.groovy:93) - stop worker
2025-10-13 14:55:07 +08:00
yujun 056e765d2e [feature](docker suite) make docker suite no need external doris cluster (#40787)
1.  Make docker suite no need external doris cluster:
a. run docker suite according to ClusterOptions.cloudMode = true/false;
b. if ClusterOptions.cloudMode = null, user can set it with cmd: `sh
run-regression-test.sh --run docker_action -runMode=cloud/not_cloud`

2. refactor database.py, simplifier its logic;

3.  doris compose add cmd options -v for debug log.

4.  doris compose print flush buffer.
2024-09-26 22:45:22 +08:00
yujun 4238199592 [feature](docker suite) Docker suite use independent executor (#40259)
If many docker suites run parallel, the docker containers take a lot
memory, so use independent executor for them to control the memory
usage.

Use options or config dockerSuiteParallel to set the docker suite
parallel, default is 1.
2024-09-11 00:07:43 +08:00
minghong 5fb500df36 [opt](regression) ./run-regression.sh -d parameter accept "regression-test/suites/" as prefix (#37942)
## Proposed changes

./run-regression.sh accept -d parameter with "./regression-test/suites/"
or “regression-test/suites/" prefix
for example:
./run-regression-test.sh --run -d
regression-test/suites/nereids_tpch_shape_sf1000_p0/shape -s q1
with the prefix, we could use command completion (supported by shell) to
indicate with directory to run

Issue Number: close #xxx

<!--Describe your changes.-->
2024-07-18 19:47:47 +08:00
slothever 1e1a223a11 [fix](multi-catalog)put java udf to custom lib (#34990)
when use java udf , we can put its jars in custom_lib of FE and BE in advance, and then we can create function without file property:
```
CREATE FUNCTION java_udf_add_one(int) RETURNS int PROPERTIES (
    "symbol"="org.apache.doris.udf.AddOne",
    "always_nullable"="true",
    "type"="JAVA_UDF"
);
```

and we can use file property for custom jar:  

```
CREATE FUNCTION java_udf_add_one(int) RETURNS int PROPERTIES (
    "file"="file:///path/to/java-udf-demo.jar",
    "symbol"="org.apache.doris.udf.AddOne",
    "always_nullable"="true",
    "type"="JAVA_UDF"
);
```

on FE, we use null location if the 'file' property is not set
on BE, we get jar path if both file path location and checksum are null
2024-05-26 14:23:47 +08:00
yujun 204d45d9ce [fix](decommission) fix cann't decommission mtmv (#33823) 2024-04-24 22:22:03 +08:00
Xinyi Zou b5dc1e4ce0 [fix](arrow-flight) Fix arrow flight sql compatible with JDK 17 and upgrade arrow 15.0.2 (#32796)
--add-opens=java.base/java.nio=ALL-UNNAMED, see: https://arrow.apache.org/docs/java/install.html#java-compatibility
groovy use flight sql connection to execute query SUM(MAX(c1) OVER (PARTITION BY)) report error: AGGREGATE clause must not contain analytic expressions, but no problem in Java execute it with jdbc::arrow-flight-sql.
groovy not support print arrow array type, throw IndexOutOfBoundsException.
"arrow_flight_sql" not support two phase read
./run-regression-test.sh --run --clean -g arrow_flight_sql
2024-03-28 10:13:55 +08:00
DeadlineFen 4d84cd8ca1 Revert "Revert "[Test](regression) CCR syncer thrift interface regression test (#20935)" (#20990)" (#21022)
This reverts commit 2a294801f1.
2023-06-21 15:20:21 +08:00
DeadlineFen 2a294801f1 Revert "[Test](regression) CCR syncer thrift interface regression test (#20935)" (#20990)
This reverts commit dd482b74c8.
2023-06-19 21:38:03 +08:00
DeadlineFen dd482b74c8 [Test](regression) CCR syncer thrift interface regression test (#20935) 2023-06-18 00:13:09 +08:00
Pxl ec517a53a8 [Chore](build) upgrade clang-format version to 16 && move thrift to fe-common (#19155)
upgrade clang-format version to 16
move thrift to fe-common
fix core dump on pipeline engine when operator canceled and not prepared
2023-04-28 14:14:51 +08:00
zhangstar333 5291f14aff [vectorized](udf) java udf support array type (#16841) 2023-02-20 10:00:25 +08:00
ZhaoChangle d6a841409f [Enhancement](func)Introduce non_nullable extraction function. #16621
Introduced a new function non_nullable to BE, which can extract concrete data column from a nullable column. If the input argument is already not a nullable column, raise an error.
2023-02-18 20:44:07 +08:00
Kang 1926239f09 [improvement](test) add --conf option for run-regression-test.sh for custom config file (#15287)
* add --conf option for run-regression-test.sh for custom config file

* fix shell check error
2022-12-23 16:43:18 +08:00
lsy3993 f7a827c06b [fix](new-scan) fix some bugs about new scan node and readers (#14504)
json reader DCHECK fail because of missing TYPE_STRING

fix bug that if no file is found, the tvf will throw NPE.

The predicate conjuncts can not be pushed down to parquet reader if this is a load task.
Because the predicate should be applied on column of dest table, not on column of source file.

Add a temp property "use_new_load_scan_node" of broker load to make regression test happy.
So that we can use new load scan node for a certain job and avoid setting global FE config.
2022-11-29 10:21:41 +08:00
Gabriel c4b5ba2a4f [Regression](java-udf) Move source code used by Java UDF test case (#13476) 2022-10-19 21:05:06 +08:00
Gabriel 3f964ad5a8 [Regression](javaudf) add regression test for javaudf (#13266) 2022-10-18 12:48:57 +08:00
Gabriel c82d7687b4 [Bug](shell) fix wrong condition expression in script (#11913)
* [Bug](shell) fix wrong condition expression in script
2022-08-19 19:10:11 +08:00
Adonis Ling 4fa53b4cdb [chore](workflow) Add shellcheck to check shell scripts (#11744) 2022-08-18 16:07:28 +08:00
cambyandcambyzju a52f40eb77 [fix](regression-test) fix run-regression-test Xmx2048m param (#10234)
Co-authored-by: cambyzju <zhuxiaoli01@baidu.com>
2022-06-17 23:30:44 +08:00
chunping a62a485faf [regression test]Constrain run-regression-test mem to 2G (#10165)
* Update .asf.yaml

* Update vtablet_sink_test.cpp

* Constrain run-regression-test mem to 2G
2022-06-17 08:46:16 +08:00
924060929 4ca3eb7fe2 [improvement](regression-test) support exclude suite/group/directory (#9096)
regression testing framework support skip some suite/group/directory
2022-05-05 09:50:07 +08:00
924060929 decdc8e8b9 [test][enhance][refactor] support suite block to specify multiple group, suppo… (#8792)
support suite block to specify multiple groups.
TestAction support compare result to iterator, local file and http stream.
support print teamcity service message.
abandon the logical: generate groovy file for sql file
support 3 levels parrallel: script file, suite block, thread action
support specify JAVA_OPTS for boot shell
avoid jvm metaspace oom
use -d to run the suite in some directories, instead of -g. and -g is used to specify groups
2022-04-01 20:59:01 +08:00
dataroaring 727e8842d4 [test] limit memory used by regression test framework (#8651) 2022-03-28 10:24:12 +08:00
dataroaring c1a195421a [test] let framework support sql cases and run cases in parallel and random order (#8460)
We generate groovy files from sql cases and run the generated groovy
file. This way, we can just put sql cases, then framework handles
left work.
2022-03-15 11:44:08 +08:00
924060929 694e6433cc [feature](test) Add regression test framework (#8125)
Add scalable regression testing framework(#7584)
contains
- Test framework making by groovy, and support built-in **readable DSL** named as `Action`
- Demo exists in `${DORIS_HOME}/regression-test/data/demo`
- Chinese doc exist in `${DORIS_HOME}/docs/zh-CN/developer-guide/regression-testing.md`

English document coming soon
2022-02-19 12:05:50 +08:00