I met a failure of reading hdfs files in broker load, the error message is unclear and I spent a lot of time to locate the problem. ``` W0330 11:08:01.093812 2755268 broker_scan_node.cpp:364] Scanner[0] process failed. status=connect failed. W0330 11:08:01.097682 2018787 fragment_mgr.cpp:234] Got error while opening fragment 712ae2b848324cb6-94a83d646173c1e9: Internal error: connect failed. W0330 11:08:01.097702 2018787 tablet_sink.cpp:148] connect failed. ``` We should add more information when connect to hdfs failed.
42 lines
1.4 KiB
C++
42 lines
1.4 KiB
C++
// 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.
|
|
|
|
#include "exec/hdfs_file_reader.h"
|
|
#include "exec/hdfs_reader_writer.h"
|
|
|
|
#include <gtest/gtest.h>
|
|
|
|
namespace doris {
|
|
|
|
class HdfsFileReaderTest : public testing::Test {};
|
|
|
|
TEST_F(HdfsFileReaderTest, test_connect_fail) {
|
|
THdfsParams hdfsParams;
|
|
hdfsParams.fs_name = "hdfs://127.0.0.1:8888"; // An invalid address
|
|
HdfsFileReader hdfs_file_reader(hdfsParams, "/user/foo/test.data", 0);
|
|
Status status = hdfs_file_reader.open();
|
|
std::string msg = status.get_error_msg();
|
|
ASSERT_TRUE(msg.find("Connection refused") >= 0);
|
|
}
|
|
|
|
} // end namespace doris
|
|
|
|
int main(int argc, char** argv) {
|
|
::testing::InitGoogleTest(&argc, argv);
|
|
return RUN_ALL_TESTS();
|
|
}
|