Skip to content

[FlightRPC][Release][ODBC] Building arrow_flight_sql_odbc_unsigned.dll is failing to build on 26.0.1 RC0 #55316

Closed

Description

@raulcd

Describe the bug, including details regarding any error messages, version, and platform.

It seems that the ODBC Windows Upload Unsigned DLL job is failing with the following:

  [331/333] Linking CXX shared library release\arrow_flight_sql_odbc.dll
  FAILED: [code=4294967295] release/arrow_flight_sql_odbc.dll release/arrow_flight_sql_odbc.lib 
  C:\Windows\system32\cmd.exe /C "cd . && "C:\Program Files\CMake\bin\cmake.exe" -E vs_link_dll --msvc-ver=1944 --intdir=src\arrow\flight\sql\odbc\CMakeFiles\arrow_flight_sql_odbc_shared.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100261~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100261~1.0\x64\mt.exe --manifests  -- C:\PROGRA~1\MICROS~2\2022\ENTERP~1\VC\Tools\MSVC\1444~1.352\bin\Hostx64\x64\link.exe /nologo @CMakeFiles\arrow_flight_sql_odbc_shared.rsp  /out:release\arrow_flight_sql_odbc.dll /implib:release\arrow_flight_sql_odbc.lib /pdb:release\arrow_flight_sql_odbc.pdb /dll /version:2600.1 /machine:x64  /NODEFAULTLIB:LIBCMT /INCREMENTAL:NO -Wl,--version-script=D:/a/arrow/arrow/cpp/src/arrow/symbols.map  /DEF:D:\a\arrow\arrow\cpp\src\arrow\flight\sql\odbc\odbc.def && C:\Windows\system32\cmd.exe /C "cd /D D:\a\arrow\arrow\build\cpp\src\arrow\flight\sql\odbc && D:\a\arrow\arrow\vcpkg\vcpkg.exe z-applocal --target-binary=D:/a/arrow/arrow/build/cpp/release/arrow_flight_sql_odbc.dll --installed-bin-dir=D:/a/arrow/arrow/build/cpp/vcpkg_installed/x64-windows-static-md/bin""
  LINK: command "C:\PROGRA~1\MICROS~2\2022\ENTERP~1\VC\Tools\MSVC\1444~1.352\bin\Hostx64\x64\link.exe /nologo @CMakeFiles\arrow_flight_sql_odbc_shared.rsp /out:release\arrow_flight_sql_odbc.dll /implib:release\arrow_flight_sql_odbc.lib /pdb:release\arrow_flight_sql_odbc.pdb /dll /version:2600.1 /machine:x64 /NODEFAULTLIB:LIBCMT /INCREMENTAL:NO -Wl,--version-script=D:/a/arrow/arrow/cpp/src/arrow/symbols.map /DEF:D:\a\arrow\arrow\cpp\src\arrow\flight\sql\odbc\odbc.def /MANIFEST:EMBED,ID=2" failed (exit code 1120) with the following output:
  LINK : warning LNK4044: unrecognized option '/Wl,--version-script=D:/a/arrow/arrow/cpp/src/arrow/symbols.map'; ignored
     Creating library release\arrow_flight_sql_odbc.lib and object release\arrow_flight_sql_odbc.exp
  arrow_flight_static.lib(Flight.pb.cc.obj) : error LNK2019: unresolved external symbol "class google::protobuf::internal::GlobalEmptyStringConstexpr const google::protobuf::internal::fixed_address_empty_string" (?fixed_address_empty_string@internal@protobuf@google@@3VGlobalEmptyStringConstexpr@123@B) referenced in function "private: static void * __cdecl arrow::flight::protocol::SchemaResult::PlacementNew_(void const *,void *,class google::protobuf::Arena *)" (?PlacementNew_@SchemaResult@protocol@flight@arrow@@CAPEAXPEBXPEAXPEAVArena@protobuf@google@@@Z)
  arrow_flight_static.lib(serialization_internal.cc.obj) : error LNK2001: unresolved external symbol "class google::protobuf::internal::GlobalEmptyStringConstexpr const google::protobuf::internal::fixed_address_empty_string" (?fixed_address_empty_string@internal@protobuf@google@@3VGlobalEmptyStringConstexpr@123@B)
  arrow_flight_sql_static.lib(protocol_internal.cc.obj) : error LNK2001: unresolved external symbol "class google::protobuf::internal::GlobalEmptyStringConstexpr const google::protobuf::internal::fixed_address_empty_string" (?fixed_address_empty_string@internal@protobuf@google@@3VGlobalEmptyStringConstexpr@123@B)
  release\arrow_flight_sql_odbc.dll : fatal error LNK1120: 1 unresolved externals
  [332/333] Linking CXX executable release\bin\arrow_odbc_spi_impl_cli.exe
  FAILED: [code=4294967295] release/bin/arrow_odbc_spi_impl_cli.exe 
  C:\Windows\system32\cmd.exe /C "cd . && "C:\Program Files\CMake\bin\cmake.exe" -E vs_link_exe --msvc-ver=1944 --intdir=src\arrow\flight\sql\odbc\odbc_impl\CMakeFiles\arrow_odbc_spi_impl_cli.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100261~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100261~1.0\x64\mt.exe --manifests  -- C:\PROGRA~1\MICROS~2\2022\ENTERP~1\VC\Tools\MSVC\1444~1.352\bin\Hostx64\x64\link.exe /nologo @CMakeFiles\arrow_odbc_spi_impl_cli.rsp  /out:release\bin\arrow_odbc_spi_impl_cli.exe /implib:release\arrow_odbc_spi_impl_cli.lib /pdb:release\bin\arrow_odbc_spi_impl_cli.pdb /version:0.0 /machine:x64  /NODEFAULTLIB:LIBCMT /INCREMENTAL:NO /subsystem:console && C:\Windows\system32\cmd.exe /C "cd /D D:\a\arrow\arrow\build\cpp\src\arrow\flight\sql\odbc\odbc_impl && D:\a\arrow\arrow\vcpkg\vcpkg.exe z-applocal --target-binary=D:/a/arrow/arrow/build/cpp/release/bin/arrow_odbc_spi_impl_cli.exe --installed-bin-dir=D:/a/arrow/arrow/build/cpp/vcpkg_installed/x64-windows-static-md/bin""
  LINK: command "C:\PROGRA~1\MICROS~2\2022\ENTERP~1\VC\Tools\MSVC\1444~1.352\bin\Hostx64\x64\link.exe /nologo @CMakeFiles\arrow_odbc_spi_impl_cli.rsp /out:release\bin\arrow_odbc_spi_impl_cli.exe /implib:release\arrow_odbc_spi_impl_cli.lib /pdb:release\bin\arrow_odbc_spi_impl_cli.pdb /version:0.0 /machine:x64 /NODEFAULTLIB:LIBCMT /INCREMENTAL:NO /subsystem:console /MANIFEST:EMBED,ID=1" failed (exit code 1120) with the following output:
  arrow_flight_sql_static.lib(protocol_internal.cc.obj) : error LNK2019: unresolved external symbol "class google::protobuf::internal::GlobalEmptyStringConstexpr const google::protobuf::internal::fixed_address_empty_string" (?fixed_address_empty_string@internal@protobuf@google@@3VGlobalEmptyStringConstexpr@123@B) referenced in function "private: static void * __cdecl arrow::flight::protocol::sql::CommandStatementIngest::PlacementNew_(void const *,void *,class google::protobuf::Arena *)" (?PlacementNew_@CommandStatementIngest@sql@protocol@flight@arrow@@CAPEAXPEBXPEAXPEAVArena@protobuf@google@@@Z)
  arrow_flight_static.lib(serialization_internal.cc.obj) : error LNK2001: unresolved external symbol "class google::protobuf::internal::GlobalEmptyStringConstexpr const google::protobuf::internal::fixed_address_empty_string" (?fixed_address_empty_string@internal@protobuf@google@@3VGlobalEmptyStringConstexpr@123@B)
  arrow_flight_static.lib(Flight.pb.cc.obj) : error LNK2001: unresolved external symbol "class google::protobuf::internal::GlobalEmptyStringConstexpr const google::protobuf::internal::fixed_address_empty_string" (?fixed_address_empty_string@internal@protobuf@google@@3VGlobalEmptyStringConstexpr@123@B)
  release\bin\arrow_odbc_spi_impl_cli.exe : fatal error LNK1120: 1 unresolved externals
  ninja: build stopped: subcommand failed.

This is failing for RC0 on 26.0.1. None of the ODBC jobs are currently failing on main so I am unsure whether this is tested on nightlies or I've missed a commit for the RC for 26.0.1 release.

Component(s)

Release, FlightRPC

Activity

  1. changed the title [-][Release][ODBC] Building arrow_flight_sql_odbc_unsigned.dll is failing to build on 26.0.1 RC0[/-] [+][FlightRPC][Release][ODBC] Building arrow_flight_sql_odbc_unsigned.dll is failing to build on 26.0.1 RC0[/+] on Oct 29, 2026
  2. raulcd commented on Oct 29, 2026

    @raulcd
    MemberAuthor

    cc @amoeba @alinaliBQ I think this is currently a blocker on the release :(
    @kou FYI

  3. added this to the 26.0.1 milestone on Oct 29, 2026
  4. amoeba commented on Oct 29, 2026

    @amoeba
    Member

    Can we try this patch?

    diff --git a/.github/actions/odbc-windows/action.yml b/.github/actions/odbc-windows/action.yml
    index 6094173319..f072a3ce84 100644
    --- a/.github/actions/odbc-windows/action.yml
    +++ b/.github/actions/odbc-windows/action.yml
    @@ -54,22 +54,26 @@ runs:
             path: ${{ steps.ccache-info.outputs.cache-dir }}
             key: cpp-odbc-ccache-windows-x64-${{ hashFiles('cpp/**') }}
             restore-keys: cpp-odbc-ccache-windows-x64-
    -    - name: Checkout vcpkg
    -      uses: actions/checkout@v6
    -      with:
    -        persist-credentials: false
    -        fetch-depth: 0
    -        path: vcpkg
    -        repository: microsoft/vcpkg
    -    - name: Bootstrap vcpkg
    -      shell: pwsh
    +    - name: Install vcpkg
    +      shell: bash
           run: |
    -        vcpkg\bootstrap-vcpkg.bat
    -        $VCPKG_ROOT = $(Resolve-Path -LiteralPath "vcpkg").ToString()
    -        Write-Output ${VCPKG_ROOT} | `
    -          Out-File -FilePath ${Env:GITHUB_PATH} -Encoding utf8 -Append
    -        Write-Output "VCPKG_ROOT=${VCPKG_ROOT}" | `
    -          Out-File -FilePath ${Env:GITHUB_ENV} -Encoding utf8 -Append
    +        # GH-55316: Use the vcpkg version pinned in .env and apply
    +        # ci/vcpkg/ports.patch like other vcpkg based builds do.
    +        ci/scripts/install_vcpkg.sh vcpkg
    +        VCPKG_ROOT=$(cygpath --windows "$(pwd)/vcpkg")
    +        echo "${VCPKG_ROOT}" >> "${GITHUB_PATH}"
    +        echo "VCPKG_ROOT=${VCPKG_ROOT}" >> "${GITHUB_ENV}"
    +        # We use manifest mode with builtin-baseline. vcpkg resolves
    +        # ports from its versions database in manifest mode, so local
    +        # changes by ports.patch are ignored unless the patched ports
    +        # are used as overlay ports.
    +        vcpkg_ports_dir=$(cygpath --mixed "$(pwd)/vcpkg/ports")
    +        overlay_ports=()
    +        for port in $(sed -n -E 's,^diff --git a/ports/([^/]+)/.*,\1,p' \
    +                        ci/vcpkg/ports.patch | sort -u); do
    +          overlay_ports+=("${vcpkg_ports_dir}/${port}")
    +        done
    +        echo "VCPKG_OVERLAY_PORTS=$(IFS=';'; echo "${overlay_ports[*]}")" >> "${GITHUB_ENV}"
         - name: Setup NuGet credentials for vcpkg caching
           shell: bash
           run: |

    I sent Opus 5.5 at this and it pointed out the ODBC job's uses vcpkg differently.

  5. amoeba commented on Oct 29, 2026

    @amoeba
    Member

    Testing in a PR against main here: #55317 but I'll leave it to you to add commits on the maint branch.

  6. raulcd commented on Oct 29, 2026

    @raulcd
    MemberAuthor

    Testing in a PR against main here: #55317 but I'll leave it to you to add commits on the maint branch.

    Sure, let's validate on a PR and I can cherry-pick and create a new RC1 once is fixed and merged. Thanks for the quick investiagtion @amoeba

  7. amoeba commented on Oct 29, 2026

    @amoeba
    Member

    I've got a direct workflow run of the ODBC Windows Upload Unsigned DLL step running on my fork now too: https://github.com/amoeba/arrow/actions/runs/40915269876/job/123593711269.

  8. added a commit that references this issue on Oct 30, 2026
  9. raulcd commented on Oct 30, 2026

    @raulcd
    MemberAuthor

    Issue resolved by pull request 55317
    #55317

  10. added a commit that references this issue on Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions