vitalybuka commented on pull request #11633: URL: https://github.com/apache/arrow/pull/11633#issuecomment-962479084
> > This is an error when there are cross-compilation units on static initializated variables where there is no guaranteed order. > > It seems those variables are private, no? So I wonder what the issue is. It's unrelated to private, it's about initialization order. Constructor of global in one module uses a global from another module, which is not constructed yet. More details https://github.com/google/sanitizers/wiki/AddressSanitizerInitializationOrderFiasco. One of the reports is here https://issues.apache.org/jira/browse/ARROW-14622 I added this into commit: ``` https://github.com/google/sanitizers/wiki/AddressSanitizerInitializationOrderFiasco The check is disabled by default and can be enabled with check_initialization_order=1:strict_init_order=1 Clang 13 has a bug in this feature, 12 and before or build from the HEAD should work. Example: cmake -DCMAKE_C_COMPILER=<CLANG_BUILD_DIR>/bin/clang \ -DCMAKE_CXX_COMPILER=<CLANG_BUILD_DIR>/bin/clang++ \ -DARROW_COMPUTE=ON -DCMAKE_BUILD_TYPE=Debug -DARROW_BUILD_TESTS=ON \ -DARROW_USE_ASAN=ON -GNinja .. ASAN_OPTIONS=check_initialization_order=1:strict_init_order=1 ninja unittest ``` -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
