MirrerZu opened a new issue, #35024:
URL: https://github.com/apache/doris/issues/35024

   ### Search before asking
   
   - [X] I had searched in the 
[issues](https://github.com/apache/doris/issues?q=is%3Aissue) and found no 
similar issues.
   
   
   ### Version
   
   2.1.2
   
   ### What's Wrong?
   
   When paimon table change schema, after refresh paimon catalog's metadata, 
the table couldn't be queried and report a error in be.INFO.log:
   ```log
   W20240517 17:53:26.865559 490701 jni-util.cpp:258] 
java.lang.ArrayIndexOutOfBoundsException
   W20240517 17:53:26.865706 490701 status.h:380] meet error status: 
[INTERNAL_ERROR]ArrayIndexOutOfBoundsException: null
   
        0#  doris::JniUtil::GetJniExceptionMsg(JNIEnv_*, bool, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/util/jni-util.h:117
        1#  doris::vectorized::JniConnector::open(doris::RuntimeState*, 
doris::RuntimeProfile*) at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.h:187
        2#  
doris::vectorized::PaimonJniReader::init_reader(std::unordered_map<std::__cxx11::basic_string<char,
 std::char_traits<char>, std::allocator<char> >, 
std::variant<doris::ColumnValueRange<(doris::PrimitiveType)3>, 
doris::ColumnValueRange<(doris::PrimitiveType)4>, 
doris::ColumnValueRange<(doris::PrimitiveType)5>, 
doris::ColumnValueRange<(doris::PrimitiveType)6>, 
doris::ColumnValueRange<(doris::PrimitiveType)7>, 
doris::ColumnValueRange<(doris::PrimitiveType)15>, 
doris::ColumnValueRange<(doris::PrimitiveType)10>, 
doris::ColumnValueRange<(doris::PrimitiveType)23>, 
doris::ColumnValueRange<(doris::PrimitiveType)11>, 
doris::ColumnValueRange<(doris::PrimitiveType)25>, 
doris::ColumnValueRange<(doris::PrimitiveType)12>, 
doris::ColumnValueRange<(doris::PrimitiveType)26>, 
doris::ColumnValueRange<(doris::PrimitiveType)20>, 
doris::ColumnValueRange<(doris::PrimitiveType)2>, 
doris::ColumnValueRange<(doris::PrimitiveType)19>, 
doris::ColumnValueRange<(doris::PrimitiveType)28>, doris::ColumnValueR
 ange<(doris::PrimitiveType)29>, 
doris::ColumnValueRange<(doris::PrimitiveType)30>, 
doris::ColumnValueRange<(doris::PrimitiveType)35> >, 
std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > >, 
std::allocator<std::pair<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const, 
std::variant<doris::ColumnValueRange<(doris::PrimitiveType)3>, 
doris::ColumnValueRange<(doris::PrimitiveType)4>, 
doris::ColumnValueRange<(doris::PrimitiveType)5>, 
doris::ColumnValueRange<(doris::PrimitiveType)6>, 
doris::ColumnValueRange<(doris::PrimitiveType)7>, 
doris::ColumnValueRange<(doris::PrimitiveType)15>, 
doris::ColumnValueRange<(doris::PrimitiveType)10>, 
doris::ColumnValueRange<(doris::PrimitiveType)23>, 
doris::ColumnValueRange<(doris::PrimitiveType)11>, 
doris::ColumnValueRange<(doris::PrimitiveType)25>, 
doris::ColumnValueRange<(doris::Primitive
 Type)12>, doris::ColumnValueRange<(doris::PrimitiveType)26>, 
doris::ColumnValueRange<(doris::PrimitiveType)20>, 
doris::ColumnValueRange<(doris::PrimitiveType)2>, 
doris::ColumnValueRange<(doris::PrimitiveType)19>, 
doris::ColumnValueRange<(doris::PrimitiveType)28>, 
doris::ColumnValueRange<(doris::PrimitiveType)29>, 
doris::ColumnValueRange<(doris::PrimitiveType)30>, 
doris::ColumnValueRange<(doris::PrimitiveType)35> > > > >*) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/vec/exec/format/table/paimon_reader.cpp:93
        3#  doris::vectorized::VFileScanner::_get_next_reader() at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/common/status.h:345
        4#  
doris::vectorized::VFileScanner::_get_block_impl(doris::RuntimeState*, 
doris::vectorized::Block*, bool*) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/common/status.h:449
        5#  doris::vectorized::VScanner::get_block(doris::RuntimeState*, 
doris::vectorized::Block*, bool*) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/vec/exec/scan/vscanner.cpp:0
        6#  
doris::vectorized::VScanner::get_block_after_projects(doris::RuntimeState*, 
doris::vectorized::Block*, bool*) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/vec/exec/scan/vscanner.cpp:86
        7#  
doris::vectorized::ScannerScheduler::_scanner_scan(std::shared_ptr<doris::vectorized::ScannerContext>,
 std::shared_ptr<doris::vectorized::ScanTask>) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/common/status.h:345
        8#  std::_Function_handler<void (), 
doris::vectorized::ScannerScheduler::submit(std::shared_ptr<doris::vectorized::ScannerContext>,
 std::shared_ptr<doris::vectorized::ScanTask>)::$_3>::_M_invoke(std::_Any_data 
const&) at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:701
        9#  doris::ThreadPool::dispatch_thread() at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/util/threadpool.cpp:0
        10# doris::Thread::supervise_thread(void*) at 
/var/local/ldb_toolchain/bin/../usr/include/pthread.h:562
        11# ?
        12# ?
   W20240517 17:53:26.865742 490701 status.h:380] meet error status: 
[INTERNAL_ERROR]failed to init reader for file hdfs://dummyPath, err: 
[INTERNAL_ERROR]ArrayIndexOutOfBoundsException: null
   
        0#  doris::JniUtil::GetJniExceptionMsg(JNIEnv_*, bool, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/util/jni-util.h:117
        1#  doris::vectorized::JniConnector::open(doris::RuntimeState*, 
doris::RuntimeProfile*) at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.h:187
        2#  
doris::vectorized::PaimonJniReader::init_reader(std::unordered_map<std::__cxx11::basic_string<char,
 std::char_traits<char>, std::allocator<char> >, 
std::variant<doris::ColumnValueRange<(doris::PrimitiveType)3>, 
doris::ColumnValueRange<(doris::PrimitiveType)4>, 
doris::ColumnValueRange<(doris::PrimitiveType)5>, 
doris::ColumnValueRange<(doris::PrimitiveType)6>, 
doris::ColumnValueRange<(doris::PrimitiveType)7>, 
doris::ColumnValueRange<(doris::PrimitiveType)15>, 
doris::ColumnValueRange<(doris::PrimitiveType)10>, 
doris::ColumnValueRange<(doris::PrimitiveType)23>, 
doris::ColumnValueRange<(doris::PrimitiveType)11>, 
doris::ColumnValueRange<(doris::PrimitiveType)25>, 
doris::ColumnValueRange<(doris::PrimitiveType)12>, 
doris::ColumnValueRange<(doris::PrimitiveType)26>, 
doris::ColumnValueRange<(doris::PrimitiveType)20>, 
doris::ColumnValueRange<(doris::PrimitiveType)2>, 
doris::ColumnValueRange<(doris::PrimitiveType)19>, 
doris::ColumnValueRange<(doris::PrimitiveType)28>, doris::ColumnValueR
 ange<(doris::PrimitiveType)29>, 
doris::ColumnValueRange<(doris::PrimitiveType)30>, 
doris::ColumnValueRange<(doris::PrimitiveType)35> >, 
std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > >, 
std::allocator<std::pair<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const, 
std::variant<doris::ColumnValueRange<(doris::PrimitiveType)3>, 
doris::ColumnValueRange<(doris::PrimitiveType)4>, 
doris::ColumnValueRange<(doris::PrimitiveType)5>, 
doris::ColumnValueRange<(doris::PrimitiveType)6>, 
doris::ColumnValueRange<(doris::PrimitiveType)7>, 
doris::ColumnValueRange<(doris::PrimitiveType)15>, 
doris::ColumnValueRange<(doris::PrimitiveType)10>, 
doris::ColumnValueRange<(doris::PrimitiveType)23>, 
doris::ColumnValueRange<(doris::PrimitiveType)11>, 
doris::ColumnValueRange<(doris::PrimitiveType)25>, 
doris::ColumnValueRange<(doris::Primitive
 Type)12>, doris::ColumnValueRange<(doris::PrimitiveType)26>, 
doris::ColumnValueRange<(doris::PrimitiveType)20>, 
doris::ColumnValueRange<(doris::PrimitiveType)2>, 
doris::ColumnValueRange<(doris::PrimitiveType)19>, 
doris::ColumnValueRange<(doris::PrimitiveType)28>, 
doris::ColumnValueRange<(doris::PrimitiveType)29>, 
doris::ColumnValueRange<(doris::PrimitiveType)30>, 
doris::ColumnValueRange<(doris::PrimitiveType)35> > > > >*) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/vec/exec/format/table/paimon_reader.cpp:93
        3#  doris::vectorized::VFileScanner::_get_next_reader() at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/common/status.h:345
        4#  
doris::vectorized::VFileScanner::_get_block_impl(doris::RuntimeState*, 
doris::vectorized::Block*, bool*) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/common/status.h:449
        5#  doris::vectorized::VScanner::get_block(doris::RuntimeState*, 
doris::vectorized::Block*, bool*) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/vec/exec/scan/vscanner.cpp:0
        6#  
doris::vectorized::VScanner::get_block_after_projects(doris::RuntimeState*, 
doris::vectorized::Block*, bool*) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/vec/exec/scan/vscanner.cpp:86
        7#  
doris::vectorized::ScannerScheduler::_scanner_scan(std::shared_ptr<doris::vectorized::ScannerContext>,
 std::shared_ptr<doris::vectorized::ScanTask>) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/common/status.h:345
        8#  std::_Function_handler<void (), 
doris::vectorized::ScannerScheduler::submit(std::shared_ptr<doris::vectorized::ScannerContext>,
 std::shared_ptr<doris::vectorized::ScanTask>)::$_3>::_M_invoke(std::_Any_data 
const&) at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:701
        9#  doris::ThreadPool::dispatch_thread() at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/util/threadpool.cpp:0
        10# doris::Thread::supervise_thread(void*) at 
/var/local/ldb_toolchain/bin/../usr/include/pthread.h:562
        11# ?
        12# ?
   
   
        0#  doris::vectorized::VFileScanner::_get_next_reader() at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.h:187
        1#  
doris::vectorized::VFileScanner::_get_block_impl(doris::RuntimeState*, 
doris::vectorized::Block*, bool*) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/common/status.h:449
        2#  doris::vectorized::VScanner::get_block(doris::RuntimeState*, 
doris::vectorized::Block*, bool*) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/vec/exec/scan/vscanner.cpp:0
        3#  
doris::vectorized::VScanner::get_block_after_projects(doris::RuntimeState*, 
doris::vectorized::Block*, bool*) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/vec/exec/scan/vscanner.cpp:86
        4#  
doris::vectorized::ScannerScheduler::_scanner_scan(std::shared_ptr<doris::vectorized::ScannerContext>,
 std::shared_ptr<doris::vectorized::ScanTask>) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/common/status.h:345
        5#  std::_Function_handler<void (), 
doris::vectorized::ScannerScheduler::submit(std::shared_ptr<doris::vectorized::ScannerContext>,
 std::shared_ptr<doris::vectorized::ScanTask>)::$_3>::_M_invoke(std::_Any_data 
const&) at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:701
        6#  doris::ThreadPool::dispatch_thread() at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/util/threadpool.cpp:0
        7#  doris::Thread::supervise_thread(void*) at 
/var/local/ldb_toolchain/bin/../usr/include/pthread.h:562
        8#  ?
        9#  ?
   W20240517 17:53:26.865760 490701 scanner_scheduler.cpp:270] Scan thread read 
VScanner failed: [INTERNAL_ERROR]failed to init reader for file 
hdfs://dummyPath, err: [INTERNAL_ERROR]ArrayIndexOutOfBoundsException: null
   
        0#  doris::JniUtil::GetJniExceptionMsg(JNIEnv_*, bool, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/util/jni-util.h:117
        1#  doris::vectorized::JniConnector::open(doris::RuntimeState*, 
doris::RuntimeProfile*) at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.h:187
        2#  
doris::vectorized::PaimonJniReader::init_reader(std::unordered_map<std::__cxx11::basic_string<char,
 std::char_traits<char>, std::allocator<char> >, 
std::variant<doris::ColumnValueRange<(doris::PrimitiveType)3>, 
doris::ColumnValueRange<(doris::PrimitiveType)4>, 
doris::ColumnValueRange<(doris::PrimitiveType)5>, 
doris::ColumnValueRange<(doris::PrimitiveType)6>, 
doris::ColumnValueRange<(doris::PrimitiveType)7>, 
doris::ColumnValueRange<(doris::PrimitiveType)15>, 
doris::ColumnValueRange<(doris::PrimitiveType)10>, 
doris::ColumnValueRange<(doris::PrimitiveType)23>, 
doris::ColumnValueRange<(doris::PrimitiveType)11>, 
doris::ColumnValueRange<(doris::PrimitiveType)25>, 
doris::ColumnValueRange<(doris::PrimitiveType)12>, 
doris::ColumnValueRange<(doris::PrimitiveType)26>, 
doris::ColumnValueRange<(doris::PrimitiveType)20>, 
doris::ColumnValueRange<(doris::PrimitiveType)2>, 
doris::ColumnValueRange<(doris::PrimitiveType)19>, 
doris::ColumnValueRange<(doris::PrimitiveType)28>, doris::ColumnValueR
 ange<(doris::PrimitiveType)29>, 
doris::ColumnValueRange<(doris::PrimitiveType)30>, 
doris::ColumnValueRange<(doris::PrimitiveType)35> >, 
std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > >, 
std::allocator<std::pair<std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const, 
std::variant<doris::ColumnValueRange<(doris::PrimitiveType)3>, 
doris::ColumnValueRange<(doris::PrimitiveType)4>, 
doris::ColumnValueRange<(doris::PrimitiveType)5>, 
doris::ColumnValueRange<(doris::PrimitiveType)6>, 
doris::ColumnValueRange<(doris::PrimitiveType)7>, 
doris::ColumnValueRange<(doris::PrimitiveType)15>, 
doris::ColumnValueRange<(doris::PrimitiveType)10>, 
doris::ColumnValueRange<(doris::PrimitiveType)23>, 
doris::ColumnValueRange<(doris::PrimitiveType)11>, 
doris::ColumnValueRange<(doris::PrimitiveType)25>, 
doris::ColumnValueRange<(doris::Primitive
 Type)12>, doris::ColumnValueRange<(doris::PrimitiveType)26>, 
doris::ColumnValueRange<(doris::PrimitiveType)20>, 
doris::ColumnValueRange<(doris::PrimitiveType)2>, 
doris::ColumnValueRange<(doris::PrimitiveType)19>, 
doris::ColumnValueRange<(doris::PrimitiveType)28>, 
doris::ColumnValueRange<(doris::PrimitiveType)29>, 
doris::ColumnValueRange<(doris::PrimitiveType)30>, 
doris::ColumnValueRange<(doris::PrimitiveType)35> > > > >*) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/vec/exec/format/table/paimon_reader.cpp:93
        3#  doris::vectorized::VFileScanner::_get_next_reader() at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/common/status.h:345
        4#  
doris::vectorized::VFileScanner::_get_block_impl(doris::RuntimeState*, 
doris::vectorized::Block*, bool*) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/common/status.h:449
        5#  doris::vectorized::VScanner::get_block(doris::RuntimeState*, 
doris::vectorized::Block*, bool*) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/vec/exec/scan/vscanner.cpp:0
        6#  
doris::vectorized::VScanner::get_block_after_projects(doris::RuntimeState*, 
doris::vectorized::Block*, bool*) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/vec/exec/scan/vscanner.cpp:86
        7#  
doris::vectorized::ScannerScheduler::_scanner_scan(std::shared_ptr<doris::vectorized::ScannerContext>,
 std::shared_ptr<doris::vectorized::ScanTask>) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/common/status.h:345
        8#  std::_Function_handler<void (), 
doris::vectorized::ScannerScheduler::submit(std::shared_ptr<doris::vectorized::ScannerContext>,
 std::shared_ptr<doris::vectorized::ScanTask>)::$_3>::_M_invoke(std::_Any_data 
const&) at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:701
        9#  doris::ThreadPool::dispatch_thread() at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/util/threadpool.cpp:0
        10# doris::Thread::supervise_thread(void*) at 
/var/local/ldb_toolchain/bin/../usr/include/pthread.h:562
        11# ?
        12# ?
   
   
        0#  doris::vectorized::VFileScanner::_get_next_reader() at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.h:187
        1#  
doris::vectorized::VFileScanner::_get_block_impl(doris::RuntimeState*, 
doris::vectorized::Block*, bool*) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/common/status.h:449
        2#  doris::vectorized::VScanner::get_block(doris::RuntimeState*, 
doris::vectorized::Block*, bool*) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/vec/exec/scan/vscanner.cpp:0
        3#  
doris::vectorized::VScanner::get_block_after_projects(doris::RuntimeState*, 
doris::vectorized::Block*, bool*) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/vec/exec/scan/vscanner.cpp:86
        4#  
doris::vectorized::ScannerScheduler::_scanner_scan(std::shared_ptr<doris::vectorized::ScannerContext>,
 std::shared_ptr<doris::vectorized::ScanTask>) at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/common/status.h:345
        5#  std::_Function_handler<void (), 
doris::vectorized::ScannerScheduler::submit(std::shared_ptr<doris::vectorized::ScannerContext>,
 std::shared_ptr<doris::vectorized::ScanTask>)::$_3>::_M_invoke(std::_Any_data 
const&) at 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:701
        6#  doris::ThreadPool::dispatch_thread() at 
/home/zcp/repo_center/doris_enterprise/doris/be/src/util/threadpool.cpp:0
        7#  doris::Thread::supervise_thread(void*) at 
/var/local/ldb_toolchain/bin/../usr/include/pthread.h:562
   ```
   
   ### What You Expected?
   
   Paimon catalog can be queried normally after synchronizing schema changes.
   
   ### How to Reproduce?
   
   create paimon catalog like:
   ```sql
   CREATE CATALOG `paimon` PROPERTIES (
   "type" = "paimon",
   "warehouse" = "hdfs://192.168.135.xxx:9000/paimon"
   );
   ```
   after a table `test_database.test1` from mysql add a column and synchronize 
to paimon by cdc action, refresh paimon catalog's metadata.
   ```sql
   REFRESH CATALOG paimon PROPERTIES("invalid_cache" = "true");
   ```
   query the table again,
   ```sql
   select * from paimon.test_database.test1;
   ```
   would report a error:
   ```log
   failed to init reader for file hdfs://dummyPath, err: 
[INTERNAL_ERROR]ArrayIndexOutOfBoundsException: null
   ```
   
   ### Anything Else?
   
   _No response_
   
   ### Are you willing to submit PR?
   
   - [ ] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of 
Conduct](https://www.apache.org/foundation/policies/conduct)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to