Skip to content

Conversation

@alinaliBQ
Copy link

Fix deadlock issue in C++ 20 by disabling deadlock detection. See apache#48714 for discussion and more context; Arrow doesn't use Absl directly, so the potential deadlock error is from upstream projects and not Arrow itself.

Fix slow CI time by resolving cache issues.

`absl::SetMutexDeadlockDetectionMode(absl::OnDeadlockCycle::kIgnore);` fixes ODBC deadlock issue. We turn off the detection as the deadlock originated from upstream projects.
Comment on lines +351 to 354
ARROW_HOME: /usr
CMAKE_GENERATOR: Ninja
CMAKE_INSTALL_PREFIX: /usr
Copy link
Author

@alinaliBQ alinaliBQ Jan 5, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ARROW_HOME and CMAKE_INSTALL_PREFIX should match, so I fixed it

Comment on lines 41 to 44
RegisterLog();
// GH-48637: Disable Absl Deadlock detection from upstream projects
absl::SetMutexDeadlockDetectionMode(absl::OnDeadlockCycle::kIgnore);
}
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The potential deadlock errors started appearing after C++ 20 is enabled. I don't know the root cause, but this line disables the deadlock detection and resolves the issue. Arrow community has confirmed that absl is not used directly in Arrow project, so the error likely came from gRPC.

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
@alinaliBQ alinaliBQ force-pushed the fix-deadlock-issue-cxx20 branch from 1ef3c39 to 53fea11 Compare January 6, 2026 19:11
@alinaliBQ alinaliBQ merged commit e921422 into apache-odbc Jan 6, 2026
12 of 20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants