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

BACKPORT-TO-STABLE: Backported fixes for Drill 1.21.2 #2860

Merged
merged 49 commits into from
Apr 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
1c3a44c
[MINOR UPDATE] Fix Error In HTTP Plugin Docs
cgivre Apr 16, 2023
cd0db53
DRILL-8426: Fix endless retrying zk set data for a large query (#2796)
rymarm May 2, 2023
10d8002
DRILL-8385: Add support for disabling SSL certificate verification in…
cgivre May 3, 2023
33577e5
DRILL-8428: ElasticSearch Config Missing Getters (#2797)
cgivre May 5, 2023
0b328b3
[DRILL-8429]: Bump Jackson to 2.14.3 (#2798)
pjfanning May 9, 2023
b9152eb
DRILL-8430: Create JacksonUtils (#2800)
pjfanning May 15, 2023
351ed56
DRILL-8158: Remove non-reproducible entry (#2805)
hboutemy May 22, 2023
20df284
DRILL-8438: Bump YAUAA to 7.19.2 (#2808)
nielsbasjes May 23, 2023
e05b2c2
Update bug_report.md
cgivre Jul 5, 2023
655eea4
DRILL-8442: Fix DeltaRowGroupScan deserialization
vvysotskyi Jun 21, 2023
a11d639
Bump h2 from 2.1.210 to 2.2.220 in /contrib/storage-jdbc (#2815)
dependabot[bot] Aug 2, 2023
257856e
DRILL-8449: fix typo in width property in FreeMarker templates (#2818)
rymarm Aug 10, 2023
b19a253
DRILL-8451: options and profile pages have bad order symbols style (#…
rymarm Aug 11, 2023
7b5d640
[MINOR UPDATE]: Fix Hadoop 3 impersonation test errors during CI runs…
jnturton Aug 16, 2023
822801b
DRILL-8452: Library upgrades (#2823)
jnturton Aug 24, 2023
bfa10a5
[MINOR UPDATE] Bump sqlite-jdbc from 3.30.1 to 3.41.2.2 in /metastore…
dependabot[bot] Aug 24, 2023
f6d1644
DRILL-8456: Upgrade POI and Commons-Compress (#2833)
pjfanning Oct 12, 2023
ddb3c85
[MINOR UPDATE]: Improve the Github CI memory constraint workarounds (…
jnturton Oct 25, 2023
ac71ec0
DRILL-8459 Bump Avro to 1.11.3 (#2841)
pjfanning Oct 31, 2023
3f0d530
DRILL-8458: Use correct size of definition level bytes slice when rea…
handmadecode Oct 31, 2023
dbb7ffb
DRILL-8461: Prevent XXE Attacks in XML Format Plugin (#2845)
cgivre Nov 6, 2023
4a03222
DRILL-8446: Incorrect use of OperatingSystemMXBean (#2843)
jnturton Nov 7, 2023
3b62645
DRILL-8464. Upgrade to checkout action v4 (#2850)
pjfanning Nov 26, 2023
a13ed3b
DRILL-8462: upgrade to poi 5.2.5 and upgrade its transitive dependenc…
pjfanning Nov 27, 2023
b4e11e0
DRILL-8463. Bouncy Castle 1.77 (#2849)
pjfanning Nov 27, 2023
e5860fc
DRILL-8466. upgrade to logback 1.3.13 (#2852)
pjfanning Dec 1, 2023
40af40c
DRILL-8466. upgrade to logback 1.3.14 (#2854)
pjfanning Dec 3, 2023
cebab2a
Retire the EasyOutOfMemory test category now that we have swap space.…
jnturton Dec 31, 2023
8f3a298
Increase jdbc-all-jar-maxsize to 57000000 for the hadoop-2 profile.
jnturton Dec 31, 2023
19afef6
DRILL-8467: Update Netty to 4.1.101 (#2857)
rymarm Jan 2, 2024
78ace46
DRILL-8468: Drill doesn't perform drill.exec.storage.action_on_plugin…
rymarm Jan 3, 2024
6c83fc6
DRILL-8445: Upgrade Janino 3.1.8 → 3.1.11 (#2864)
jnturton Jan 3, 2024
649c32c
DRILL-8460: Upgrade ZooKeeper 3.5.7 → 3.5.10 and Curator 5.2.0 → 5.5.…
jnturton Jan 3, 2024
659fe97
DRILL-8470: Bump MongoDB Driver to Latest Version (#2862)
cgivre Jan 5, 2024
2b25d26
DRILL-8375: Support for non-projected complex vectors.
paul-rogers Jul 18, 2022
f091162
DRILL-8415: Upgrade Jackson 2.14.3 → 2.16.1 (#2866)
jnturton Jan 8, 2024
77f24b8
[MINOR UPDATE]: Update the copyright year in NOTICE (#2868)
CalvinKirs Jan 9, 2024
5e44632
DRILL-8478. HashPartition memory leak when OutOfMemoryException is en…
shfshihuafeng Jan 23, 2024
611fb43
[MINOR UPDATE]: Enable master branch protection (#2872)
jnturton Jan 18, 2024
e392327
DRILL-8475: Update the binary distributions LICENSE (#2879)
jnturton Feb 27, 2024
e653567
Fix typos in LicenseHeadersAndNotices.md (#2883)
pjfanning Feb 27, 2024
9eddd1a
DRILL-8482:Assign region throw exception when some region is deployed…
shfshihuafeng Mar 3, 2024
7db6140
DRILL-8141: Ability to query XML root attributes (#2884)
cgivre Mar 3, 2024
5a377d3
DRILL-8485: HashJoinPOP memory leak is caused by an oom exception whe…
shfshihuafeng Mar 25, 2024
36f0ccc
[MINOR UPDATE] Upgrade Actions (#2894)
pjfanning Mar 27, 2024
298f599
[MINOR UPDATE] Update Commons-Compress due to CVEs (#2892)
pjfanning Mar 27, 2024
f0c07cf
DRILL-8484: HashJoinPOP Memory Leak is Caused by an OOM Exception wh…
shfshihuafeng Mar 29, 2024
264537f
DRILL-8483: SpilledRecordBatch memory leak when the program threw an …
shfshihuafeng Mar 29, 2024
0e6b21d
DRILL-8486: fix handling of long variable length entries during bulk …
rymarm Apr 10, 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
23 changes: 22 additions & 1 deletion .asf.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
# https://cwiki.apache.org/confluence/display/INFRA/.asf.yaml+features+for+git+repositories

github:
protected_branches:
master:
required_status_checks:
# strict means "Require branches to be up to date before merging".
strict: false
required_pull_request_reviews:
dismiss_stale_reviews: false
require_code_owner_reviews: false
required_approving_review_count: 1
description: "Apache Drill is a distributed MPP query layer for self describing data"
homepage: https://drill.apache.org/
labels:
Expand All @@ -12,11 +21,23 @@ github:
- hadoop
- jdbc
- parquet

features:
# Enable wiki for documentation
wiki: true
# Enable issue management
issues: true
# Enable projects for project management boards
projects: true

# Attempt to make the auto-generated github emails more easily readable in email clients.
custom_subjects:
new_pr: "[PR] {title} ({repository})"
close_pr: "Re: [PR] {title} ({repository})"
comment_pr: "Re: [PR] {title} ({repository})"
diffcomment: "Re: [PR] {title} ({repository})"
merge_pr: "Re: [PR] {title} ({repository})"
new_issue: "[I] {title} ({repository})"
comment_issue: "Re: [I] {title} ({repository})"
close_issue: "Re: [I] {title} ({repository})"
catchall: "[GH] {title} ({repository})"
3 changes: 2 additions & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
labels: 'bug,needs-triage'
assignees: ''

---
Before submitting a bug report, please verify that you are using the most current version of Drill.

**Describe the bug**
A clear and concise description of what the bug is.
Expand Down
39 changes: 24 additions & 15 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ jobs:
build:
name: Main Build
runs-on: ubuntu-latest
if: github.repository == 'apache/drill'
timeout-minutes: 150
strategy:
matrix:
Expand All @@ -41,42 +42,50 @@ jobs:
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup java
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
cache: 'maven'
- name: Set up swap space
# Linux Action Runners come with 7GB of RAM which isn't quite enoough
# to run the test suite. Two workarounds are used below: a swap file is
# added to the Runner and memory hungry tests are run separately.
run: |
sudo sh -c "
fallocate -l 4G /tmp/swapfile
chmod 0600 /tmp/swapfile
mkswap /tmp/swapfile
swapon /tmp/swapfile
"
- name: Build and test
# The total GitHub Actions memory is 7000Mb. But GitHub CI requires some memory for the container to perform tests
run: |
MAVEN_OPTS="-XX:+UseG1GC"
sudo sh -c 'echo 1 > /proc/sys/vm/drop_caches' && \
mvn -P${{ matrix.profile }} install --batch-mode --no-transfer-progress \
-DexcludedGroups=org.apache.drill.categories.EasyOutOfMemory \
-Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
- name: Test Specific Categories # EasyOutOfMemory
run: |
sudo sh -c 'echo 1 > /proc/sys/vm/drop_caches' && \
mvn -P${{ matrix.profile }} test -pl org.apache.drill.exec:drill-java-exec \
-Dgroups=org.apache.drill.categories.EasyOutOfMemory \
-Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120
- name: Remove swap space
run : |
sudo sh -c "
swapoff /tmp/swapfile
rm /tmp/swapfile
"
checkstyle_protobuf:
name: Run checkstyle and generate protobufs
runs-on: ubuntu-latest
if: github.repository == 'apache/drill'
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup java
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '8'
cache: 'maven'
# Caches built protobuf library
- name: Cache protobufs
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: ~/protobuf
key: ${{ runner.os }}-protobuf
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
if: github.repository == 'apache/drill'
permissions:
actions: read
contents: read
Expand All @@ -56,7 +57,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v4

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/publish-snapshot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,12 @@ jobs:
publish:
name: Publish snapshot artifacts
runs-on: ubuntu-latest
if: github.repository == 'apache/drill'
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: Cache Maven Repository
uses: actions/cache@v2
uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
Expand Down
46 changes: 25 additions & 21 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,31 +1,35 @@
.project
# Please keep this list sorted.
*~
.buildpath
.classpath
.factorypath
.checkstyle
.settings/
.idea/
TAGS
*.log
*.lck
*.iml
target/
*.DS_Store
*.patch
*~
git.properties
contrib/native/client/build/
contrib/native/client/build/*
.classpath
CMakeCache.txt
CMakeFiles
Makefile
cmake_install.cmake
contrib/native/client/build/
contrib/native/client/build/*
# binary dist license is by the build
distribution/src/main/resources/LICENSE
*.DS_Store
exec/jdbc-all/dependency-reduced-pom.xml
.factorypath
git.properties
.*.html
.idea/
*.iml
install_manifest.txt
*.lck
*.log
Makefile
.*.md.html
.mvn/maven.config
*.patch
.project
.settings/
*.swp
TAGS
target/
# TODO - DRILL-4336
exec/jdbc-all/dependency-reduced-pom.xml
.*.html
venv/
tools/venv/

venv/
.vscode/*
File renamed without changes.
29 changes: 8 additions & 21 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -202,10 +202,10 @@
limitations under the License.

---------------------------------------------------------------------------
This product includes source licensed under the MIT license
This product includes source licensed under the MIT license.

The source files are located at contrib/native/client/src/clientlib/y2038/
in the source distribution. The four files carry this license are:
in the source distribution. The files that carry this license are:
time64.c
time64.h
time64_config.h
Expand All @@ -215,24 +215,11 @@ Copyright (c) 2007-2010 Michael G Schwern

This software originally derived from Paul Sheer's pivotal_gmtime_r.c.

The MIT License:

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
---------------------------------------------------------------------------
This product includes source licensed under the BSD 3-clause license.

The source files are located at exec/java-exec/src/main/java/org/apache/drill/exec/compile/
in the source distribution. The files that carry this license are:
ClassBodyBuilder.java

Copyright (c) 2001-2010, Arno Unkrig
2 changes: 1 addition & 1 deletion NOTICE
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Apache Drill
Copyright 2013-2023 The Apache Software Foundation
Copyright 2013-2024 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import org.apache.drill.common.config.DrillConfig;
import org.apache.drill.common.exceptions.DrillRuntimeException;
import org.apache.drill.common.scanner.persistence.ScanResult;
import org.apache.drill.common.util.JacksonUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -47,7 +48,7 @@ public class BuildTimeScan {
private static final Logger logger = LoggerFactory.getLogger(BuildTimeScan.class);
private static final String REGISTRY_FILE = "META-INF/drill-module-scan/registry.json";

private static final ObjectMapper mapper = new ObjectMapper().enable(INDENT_OUTPUT);
private static final ObjectMapper mapper = JacksonUtils.createObjectMapper().enable(INDENT_OUTPUT);
private static final ObjectReader reader = mapper.readerFor(ScanResult.class);
private static final ObjectWriter writer = mapper.writerFor(ScanResult.class);

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.drill.common.util;

import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.json.JsonMapper;

/**
* Utility class which contain methods for interacting with Jackson.
*/
public final class JacksonUtils {

private JacksonUtils() {}

/**
* Creates a new instance of the Jackson {@link ObjectMapper}.
* @return an {@link ObjectMapper} instance
*/
public static ObjectMapper createObjectMapper() {
return createJsonMapperBuilder().build();
}

/**
* Creates a new instance of the Jackson {@link ObjectMapper}.
* @param factory a {@link JsonFactory} instance
* @return an {@link ObjectMapper} instance
*/
public static ObjectMapper createObjectMapper(final JsonFactory factory) {
return createJsonMapperBuilder(factory).build();
}

/**
* Creates a new instance of the Jackson {@link JsonMapper.Builder}.
* @return an {@link JsonMapper.Builder} instance
*/
public static JsonMapper.Builder createJsonMapperBuilder() {
return JsonMapper.builder();
}

/**
* Creates a new instance of the Jackson {@link JsonMapper.Builder}.
* @param factory a {@link JsonFactory} instance
* @return an {@link JsonMapper.Builder} instance
*/
public static JsonMapper.Builder createJsonMapperBuilder(final JsonFactory factory) {
return JsonMapper.builder(factory);
}
}
Loading
Loading