Skip to content

Commit e921422

Browse files
authored
Fix deadlock error from C++ 20
* Fix ODBC deadlock issue `absl::SetMutexDeadlockDetectionMode(absl::OnDeadlockCycle::kIgnore);` fixes ODBC deadlock issue. We turn off the detection as the deadlock originated from upstream projects. * Fix ODBC Extra slow CI issue Attempt to resolve caching issue with ODBC CI Add write permission to store vcpkg cache Check nuget paths in Ruby Glib and ODBC Run vcpkg install after vcpkg is set in GLib Enable vcpkg verbose in GLib * confirmed `vcpkg install` command returns 403 error Add ARROW_HOME Remove `ARROW_SIMD_LEVEL` as it is not required for ODBC. Remove debug msgs Cannot get vcpkg in cpp_build to show debug messages Move location of `packages: write` Attempt to add `ARROW_DEPENDENCY_USE_SHARED - off` Revert "Move location of `packages: write`" This reverts commit b62e04e. Revert "Attempt to add `ARROW_DEPENDENCY_USE_SHARED - off`" This reverts commit 5fdf425. Add GLib MSVC build to C++ Extra TEMP disable ODBC build Disable cmake and enable build Re-enable cmake 4.1.2 and use install_vcpkg.sh to install vcpkg Clean up test changes Push after previous run is complete. Revert "Re-enable cmake 4.1.2 and use install_vcpkg.sh to install vcpkg" This reverts commit dfea377. Trigger CI Apply Kou's suggestion for nuget timeout
1 parent b1aa2f0 commit e921422

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

.github/workflows/cpp_extra.yml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -337,19 +337,22 @@ jobs:
337337
if: >-
338338
needs.check-labels.outputs.force == 'true' ||
339339
contains(fromJSON(needs.check-labels.outputs.ci-extra-labels || '[]'), 'CI: Extra') ||
340-
contains(fromJSON(needs.check-labels.outputs.ci-extra-labels || '[]'), 'CI: Extra: C++')
340+
contains(fromJSON(needs.check-labels.outputs.ci-extra-labels || '[]'), 'CI: Extra: C++') ||
341+
contains(join(github.event.pull_request.changed_files, ' '), 'cpp/src/arrow/flight/sql/odbc/')
341342
timeout-minutes: 240
343+
permissions:
344+
packages: write
342345
env:
343346
ARROW_BUILD_SHARED: ON
344347
ARROW_BUILD_STATIC: OFF
345348
ARROW_BUILD_TESTS: ON
346349
ARROW_BUILD_TYPE: release
347350
ARROW_DEPENDENCY_SOURCE: VCPKG
348351
ARROW_FLIGHT_SQL_ODBC: ON
349-
ARROW_SIMD_LEVEL: AVX2
352+
ARROW_HOME: /usr
350353
CMAKE_GENERATOR: Ninja
351354
CMAKE_INSTALL_PREFIX: /usr
352-
VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite'
355+
VCPKG_BINARY_SOURCES: 'clear;nugettimeout,600;nuget,GitHub,readwrite'
353356
VCPKG_DEFAULT_TRIPLET: x64-windows
354357
steps:
355358
- name: Disable Crash Dialogs
@@ -368,10 +371,6 @@ jobs:
368371
- name: Download Timezone Database
369372
shell: bash
370373
run: ci/scripts/download_tz_database.sh
371-
- name: Install cmake
372-
shell: bash
373-
run: |
374-
ci/scripts/install_cmake.sh 4.1.2 /usr
375374
- name: Install ccache
376375
shell: bash
377376
run: |

cpp/src/arrow/flight/sql/odbc/odbc_impl/flight_sql_driver.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
// specific language governing permissions and limitations
1616
// under the License.
1717

18+
#include <absl/synchronization/mutex.h>
19+
1820
#include "arrow/flight/sql/odbc/odbc_impl/flight_sql_driver.h"
1921

2022
#include "arrow/compute/api.h"
@@ -37,6 +39,8 @@ FlightSqlDriver::FlightSqlDriver()
3739
RegisterComputeKernels();
3840
// Register log after compute kernels check to avoid segfaults
3941
RegisterLog();
42+
// GH-48637: Disable Absl Deadlock detection from upstream projects
43+
absl::SetMutexDeadlockDetectionMode(absl::OnDeadlockCycle::kIgnore);
4044
}
4145

4246
FlightSqlDriver::~FlightSqlDriver() {

0 commit comments

Comments
 (0)