This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 813a6977b7b [bugfix](hive)fix testcase for viewfs (#34790)
813a6977b7b is described below
commit 813a6977b7babe4284a371b6972b82a05afdc86d
Author: wuwenchi <[email protected]>
AuthorDate: Fri May 17 16:06:13 2024 +0800
[bugfix](hive)fix testcase for viewfs (#34790)
The specified `fsname` is used first, and if there is no `fsname`, the
default `fsname` is used.
Because we create an HDFS cache based on the actual `fsname`.
---
be/src/io/hdfs_util.cpp | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/be/src/io/hdfs_util.cpp b/be/src/io/hdfs_util.cpp
index 02b6fadb310..42353fb481f 100644
--- a/be/src/io/hdfs_util.cpp
+++ b/be/src/io/hdfs_util.cpp
@@ -41,10 +41,13 @@ Status create_hdfs_fs(const THdfsParams& hdfs_params, const
std::string& fs_name
return Status::OK();
}
-uint64 hdfs_hash_code(const THdfsParams& hdfs_params) {
+uint64 hdfs_hash_code(const THdfsParams& hdfs_params, const std::string&
fs_name) {
uint64 hash_code = 0;
- hash_code ^= Fingerprint(hdfs_params.fs_name);
- if (hdfs_params.__isset.user) {
+ // The specified fsname is used first.
+ // If there is no specified fsname, the default fsname is used
+ if (!fs_name.empty()) {
+ hash_code ^= Fingerprint(fs_name);
+ } else if (hdfs_params.__isset.user) {
hash_code ^= Fingerprint(hdfs_params.user);
}
if (hdfs_params.__isset.hdfs_kerberos_principal) {
@@ -105,7 +108,7 @@ void HdfsHandlerCache::_clean_oldest() {
Status HdfsHandlerCache::get_connection(const THdfsParams& hdfs_params, const
std::string& fs_name,
std::shared_ptr<HdfsHandler>*
fs_handle) {
- uint64 hash_code = hdfs_hash_code(hdfs_params);
+ uint64 hash_code = hdfs_hash_code(hdfs_params, fs_name);
{
std::lock_guard<std::mutex> l(_lock);
auto it = _cache.find(hash_code);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]