This is an automated email from the ASF dual-hosted git repository.
changchen pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-gluten.git
The following commit(s) were added to refs/heads/main by this push:
new 82f51bb228 [GLUTEN-1632][CH]Daily Update Clickhouse Version (20250611)
(#9936)
82f51bb228 is described below
commit 82f51bb2284b032ff6acff89eb6a17b5460bed2f
Author: Kyligence Git <[email protected]>
AuthorDate: Wed Jun 11 09:51:53 2025 -0500
[GLUTEN-1632][CH]Daily Update Clickhouse Version (20250611) (#9936)
* [GLUTEN-1632][CH]Daily Update Clickhouse Version (20250611)
* Fix Build due to https://github.com/ClickHouse/ClickHouse/pull/81191
* Fix UT due to https://github.com/ClickHouse/ClickHouse/pull/79471
---------
Co-authored-by: kyligence-git <[email protected]>
Co-authored-by: Chang chen <[email protected]>
---
cpp-ch/clickhouse.version | 4 ++--
cpp-ch/local-engine/Common/CHUtil.cpp | 2 +-
.../local-engine/Storages/MergeTree/SparkMergeTreeMeta.cpp | 2 +-
.../Storages/MergeTree/StorageMergeTreeFactory.h | 2 +-
cpp-ch/local-engine/local_engine_jni.cpp | 14 +++++++++++++-
5 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/cpp-ch/clickhouse.version b/cpp-ch/clickhouse.version
index beaa3d5c3c..b5deb19d7a 100644
--- a/cpp-ch/clickhouse.version
+++ b/cpp-ch/clickhouse.version
@@ -1,3 +1,3 @@
CH_ORG=Kyligence
-CH_BRANCH=rebase_ch/20250609
-CH_COMMIT=ce8834acde9
+CH_BRANCH=rebase_ch/20250611
+CH_COMMIT=6dc897a845d
diff --git a/cpp-ch/local-engine/Common/CHUtil.cpp
b/cpp-ch/local-engine/Common/CHUtil.cpp
index 33f9a62f64..926a3948d5 100644
--- a/cpp-ch/local-engine/Common/CHUtil.cpp
+++ b/cpp-ch/local-engine/Common/CHUtil.cpp
@@ -999,7 +999,7 @@ void BackendFinalizerUtil::finalizeGlobally()
{
// Make sure client caches release before ClientCacheRegistry
ReadBufferBuilderFactory::instance().clean();
- StorageMergeTreeFactory::clear();
+ StorageMergeTreeFactory::clear_cache_map();
QueryContext::resetGlobal();
std::lock_guard lock(paths_mutex);
std::ranges::for_each(
diff --git a/cpp-ch/local-engine/Storages/MergeTree/SparkMergeTreeMeta.cpp
b/cpp-ch/local-engine/Storages/MergeTree/SparkMergeTreeMeta.cpp
index 9b2a3d04ba..63705a0a93 100644
--- a/cpp-ch/local-engine/Storages/MergeTree/SparkMergeTreeMeta.cpp
+++ b/cpp-ch/local-engine/Storages/MergeTree/SparkMergeTreeMeta.cpp
@@ -296,7 +296,7 @@ RangesInDataParts
MergeTreeTableInstance::extractRange(DataPartsVector parts_vec
std::inserter(ranges_in_data_parts, ranges_in_data_parts.end()),
[&](const MergeTreePart & part)
{
- RangesInDataPart ranges_in_data_part{name_index.at(part.name), 0,
0, {MarkRange(part.begin, part.end)}};
+ RangesInDataPart
ranges_in_data_part{name_index.at(part.name),nullptr, 0, 0,
{MarkRange(part.begin, part.end)}};
return ranges_in_data_part;
});
return ranges_in_data_parts;
diff --git a/cpp-ch/local-engine/Storages/MergeTree/StorageMergeTreeFactory.h
b/cpp-ch/local-engine/Storages/MergeTree/StorageMergeTreeFactory.h
index a853ee2f2a..99dee1751e 100644
--- a/cpp-ch/local-engine/Storages/MergeTree/StorageMergeTreeFactory.h
+++ b/cpp-ch/local-engine/Storages/MergeTree/StorageMergeTreeFactory.h
@@ -90,7 +90,7 @@ public:
datapart_map_v->clear();
}
}
- static void clear()
+ static void clear_cache_map()
{
if (storage_map) storage_map->clear();
if (datapart_map) datapart_map->clear();
diff --git a/cpp-ch/local-engine/local_engine_jni.cpp
b/cpp-ch/local-engine/local_engine_jni.cpp
index 261f99cc2e..c442b97fe8 100644
--- a/cpp-ch/local-engine/local_engine_jni.cpp
+++ b/cpp-ch/local-engine/local_engine_jni.cpp
@@ -172,6 +172,9 @@ JNIEXPORT jint JNI_OnLoad(JavaVM * vm, void * /*reserved*/)
JNIEXPORT void
Java_org_apache_gluten_vectorized_ExpressionEvaluatorJniWrapper_nativeInitNative(JNIEnv
* env, jclass, jbyteArray conf_plan)
{
LOCAL_ENGINE_JNI_METHOD_START
+ // Ensure that current_thread is valid before initializing resource.
+ DB::ThreadStatus thread_status;
+
const auto conf_plan_a = local_engine::getByteArrayElementsSafe(env,
conf_plan);
const std::string::size_type plan_buf_size = conf_plan_a.length();
local_engine::SparkConfigs::update(
@@ -191,7 +194,11 @@ JNIEXPORT void
Java_org_apache_gluten_vectorized_ExpressionEvaluatorJniWrapper_n
JNIEXPORT void
Java_org_apache_gluten_vectorized_ExpressionEvaluatorJniWrapper_nativeDestroyNative(JNIEnv
* env, jclass)
{
- LOG_INFO(&Poco::Logger::get("jni"), "start destroy native");
+ LOCAL_ENGINE_JNI_METHOD_START
+ // Ensure that current_thread is valid before destroying resource to avoid
+ // any future calls to CurrentThread::get() in parts of the code.
+ // For example, see `MergeTreeData::getInMemoryMetadataPtr()`
+ DB::ThreadStatus thread_status;
local_engine::BackendFinalizerUtil::finalizeGlobally();
local_engine::JniErrorsGlobalState::instance().destroy(env);
@@ -207,6 +214,8 @@ JNIEXPORT void
Java_org_apache_gluten_vectorized_ExpressionEvaluatorJniWrapper_n
env->DeleteGlobalRef(local_engine::WriteBufferFromJavaOutputStream::output_stream_class);
env->DeleteGlobalRef(local_engine::SourceFromJavaIter::serialized_record_batch_iterator_class);
env->DeleteGlobalRef(local_engine::SparkRowToCHColumn::spark_row_interator_class);
+
+ LOCAL_ENGINE_JNI_METHOD_END(env, )
}
/// Set settings for the current query. It assumes that all parameters are
started with `CH_RUNTIME_SETTINGS_PREFIX` prefix,
@@ -980,6 +989,9 @@ JNIEXPORT jstring
Java_org_apache_spark_sql_execution_datasources_CHDatasourceJn
JNIEnv * env, jclass, jbyteArray plan_, jbyteArray read_)
{
LOCAL_ENGINE_JNI_METHOD_START
+ // Ensure that current_thread is valid, even if this function is called on
Driver.
+ DB::ThreadStatus thread_status;
+
const auto plan_a = local_engine::getByteArrayElementsSafe(env, plan_);
auto plan_pb = local_engine::BinaryToMessage<substrait::Plan>(
{reinterpret_cast<const char *>(plan_a.elems()),
static_cast<size_t>(plan_a.length())});
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]