FAQ:StarRocks における Hadoop 3.4.3 Wildfly Native SSL ライブラリ問題
背景
StarRocks は、同梱する Hadoop 依存関係を 3.4.2 から 3.4.3 にアップグレードしました(PR #69503)。Hadoop 3.4.3 には HADOOP-19719 が含まれており、OpenSSL 3.0 への対応のために Wildfly OpenSSL バインディングが 2.1.4.Final から 2.2.5.Final に更新されています。しかし、新しいネイティブライブラリ(libwfssl.so)は GLIBC 2.34+ を前提にビルドされており、古い Linux ディストリビューションでは互換性の問題が発生します。
影響を受ける StarRocks バージョン: 4.1.0+、4.0.7+、3.5.14+
典型的な症状
この問題が発生すると、CN/BE ノードが SSL コンテキスト初期化時に SIGSEGV(セグメンテーションフォルト) でクラッシュすることがあります。FE では以下のようなエラーが報告されます:
SQL Error [1064] [42000]: Access storage error. Error message: failed to get file schema:
A error occurred: errorCode=2001 errorMessage:Channel inactive error!
GitHub Issue #70478 では、FILES() 関数を使用して Azure Data Lake 上の Parquet ファイルをクエリした際にこの問題が発生しています。
*** SIGSEGV (@0x0) received by PID (TID 0x...) ***
@ 0x7b9b67093453 SSL_CTX_new_ex
@ 0x7b9b6a09d95a Java_org_wildfly_openssl_SSLImpl_makeSSLContext0
@ 0x7b9a68544be1 (unknown)
原因は、Wildfly の JNI 呼び出し Java_org_wildfly_openssl_SSLImpl_makeSSLContext0 が OpenSSL のネイティブコードを実行する際、同梱された libwfssl.so とシステムの OpenSSL との間で ABI/ランタイムの不整合が発生し、クラッシュするためです。