diff --git a/deps/oblib/src/CMakeLists.txt b/deps/oblib/src/CMakeLists.txt index 2661cb453..f1d73c97d 100644 --- a/deps/oblib/src/CMakeLists.txt +++ b/deps/oblib/src/CMakeLists.txt @@ -349,7 +349,7 @@ else() $<$>:${_LIB_PATH}/libarrow.a> $<$>:${_LIB_PATH}/libparquet.a> $<$>,$>>:${_LIB_PATH}/libarrow_bundled_dependencies.a> - $<$>,$>:-L/opt/homebrew/lib -lutf8proc -lthrift -lre2 -lbrotlicommon -lbrotlienc -lbrotlidec -lbz2 -llz4 -lzstd> + $<$>,$>:-L/opt/homebrew/lib -lutf8proc -lthrift -lre2 -lbrotlicommon -lbrotlienc -lbrotlidec -lbz2 -llz4 -lzstd -lsnappy> $<$:-L${DEP_DIR}/var/usr/lib64 -L${DEP_DIR}/var/usr/lib -L${DEP_3RD_DIR}/usr/lib -L${DEP_3RD_DIR}/usr/lib64> ${LIBAIO_LINK_OPTION} $<$>:-lpthread> -ldl $<$:-llog> diff --git a/src/share/io/ob_io_struct.cpp b/src/share/io/ob_io_struct.cpp index c0c4ade6b..6dcfb4da0 100644 --- a/src/share/io/ob_io_struct.cpp +++ b/src/share/io/ob_io_struct.cpp @@ -21,6 +21,10 @@ #include "observer/ob_server.h" #include "common/storage/ob_fd_simulator.h" +#if defined(__APPLE__) +#define OB_SKIP_BLOCKING_AIO_DETECT_READ +#endif + #ifdef _WIN32 @@ -2233,9 +2237,16 @@ int ObIOFaultDetector::set_detect_task_io_info_( bool ObIOFaultDetector::is_supported_detect_read_(const uint64_t tenant_id, const ObIOFd &fd) { +#ifdef OB_SKIP_BLOCKING_AIO_DETECT_READ + UNUSED(tenant_id); + UNUSED(fd); + // macOS AIO emulation runs pread/pwrite inside io_submit, so detect IO can block. + return false; +#else bool bret = true; int ret = OB_SUCCESS; return bret; +#endif } void ObIOFaultDetector::record_io_timeout(const ObIOResult &result, const ObIORequest &req)