TileDB icon indicating copy to clipboard operation
TileDB copied to clipboard

azure (external) test fails in 2.8.2

Open okanisis opened this issue 3 years ago • 5 comments

Building 2.8.2 on Arch Linux and Azure test fails with the following:

test 1
    Start 1: tiledb_unit

1: Test command: /build/tiledb/src/tiledb-2.8.2/build/tiledb/test/tiledb_unit "--durations=yes"
1: Test timeout computed to be: 10000000
1: [2022-05-03 13:57:59.152] [Process: 3985] [error] [Global] [TileDB::?] Error:: Create container failed on: azure://tiledb-139857970853312-1651611452138/
1: 
1: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1: tiledb_unit is a Catch v2.13.8 host application.
1: Run with -? for options
1: 
1: -------------------------------------------------------------------------------
1: Test Azure filesystem, file management
1: -------------------------------------------------------------------------------
1: /build/tiledb/src/tiledb-2.8.2/test/src/unit-azure.cc:132
1: ...............................................................................
1: 
1: /build/tiledb/src/tiledb-2.8.2/test/src/unit-azure.cc:117: FAILED:
1:   REQUIRE( azure_.create_container(AZURE_CONTAINER).ok() )
1: with expansion:
1:   false
1: 
1: [2022-05-03 13:58:08.157] [Process: 3985] [error] [Global] [TileDB::?] Error:: List blobs failed on: azure://tiledb-139857970853312-1651611452138/
1: /build/tiledb/src/tiledb-2.8.2/test/src/unit-azure.cc:84: FAILED:
1:   REQUIRE( azure_.is_empty_container(AZURE_CONTAINER, &is_empty).ok() )
1: with expansion:
1:   false
1: 
1: terminate called after throwing an instance of 'Catch::TestFailureException'
1: /build/tiledb/src/tiledb-2.8.2/test/src/unit-azure.cc:84: FAILED:
1:   {Unknown expression after the reported line}
1: due to a fatal error condition:
1:   SIGABRT - Abort (abnormal termination) signal
1: 
1: 0.000 s: Test Azure filesystem, file management
1: ===============================================================================
1: test cases:  1 | 1 failed
1: assertions: 12 | 9 passed | 3 failed
1: 
1/1 Test #1: tiledb_unit ......................Subprocess aborted***Exception:  36.07 sec

0% tests passed, 1 tests failed out of 1

Total Test time (real) =  36.07 sec

The following tests FAILED:
          1 - tiledb_unit (Subprocess aborted)
Errors while running CTest
Output from these tests are in: /build/tiledb/src/tiledb-2.8.2/build/tiledb/test/Testing/Temporary/LastTest.log
Use "--rerun-failed --output-on-failure" to re-run the failed cases verbosely.
make[7]: *** [test/CMakeFiles/check.dir/build.make:70: test/CMakeFiles/check] Error 8
make[7]: Target 'test/CMakeFiles/check.dir/build' not remade because of errors.
make[7]: Leaving directory '/build/tiledb/src/tiledb-2.8.2/build/tiledb'
make[6]: *** [CMakeFiles/Makefile2:4860: test/CMakeFiles/check.dir/all] Error 2
make[6]: Leaving directory '/build/tiledb/src/tiledb-2.8.2/build/tiledb'
make[5]: *** [CMakeFiles/Makefile2:4867: test/CMakeFiles/check.dir/rule] Error 2
make[5]: Target 'check' not remade because of errors.
make[5]: Leaving directory '/build/tiledb/src/tiledb-2.8.2/build/tiledb'
make[4]: *** [Makefile:2038: check] Error 2
make[4]: Leaving directory '/build/tiledb/src/tiledb-2.8.2/build/tiledb'
make[3]: *** [CMakeFiles/check.dir/build.make:70: CMakeFiles/check] Error 2
make[3]: Target 'CMakeFiles/check.dir/build' not remade because of errors.
make[3]: Leaving directory '/build/tiledb/src/tiledb-2.8.2/build'
make[2]: *** [CMakeFiles/Makefile2:253: CMakeFiles/check.dir/all] Error 2
make[2]: Leaving directory '/build/tiledb/src/tiledb-2.8.2/build'
make[1]: *** [CMakeFiles/Makefile2:260: CMakeFiles/check.dir/rule] Error 2
make[1]: Target 'check' not remade because of errors.
make[1]: Leaving directory '/build/tiledb/src/tiledb-2.8.2/build'
make: *** [Makefile:202: check] Error 2
make: Leaving directory '/build/tiledb/src/tiledb-2.8.2/build'

okanisis avatar May 03 '22 23:05 okanisis

Hi @okanisis, thanks for opening the issue. I have a few questions:

  • Would you mind to share the cmake or bootstrap line you used? (or link the arch package spec)
  • Are you building the Azure SDK within the TileDB superbuild, or separately? If the former, does the version match the one in our azure ExternalProject
  • Finally: running the Azure tests locally requires that the Azurite emulator is running. See this script and the usage example in our CI scripts (making a note to add a test/README.md to collect this information)

ihnorton avatar May 04 '22 11:05 ihnorton

Hi @okanisis, thanks for opening the issue. I have a few questions:

  • Would you mind to share the cmake or bootstrap line you used? (or link the arch package spec) Here's my PKGBUILD:
# Maintainer: okanisis <[email protected]>
pkgname=tiledb
pkgver=2.8.2
pkgrel=1
pkgdesc="A powerful engine for storing and accessing dense and sparse multi-dimensional arrays, which can help you model any complex data efficiently."
arch=('x86_64')
url="https://tiledb.com/"
license=('MIT')
groups=('indigenis')
depends=('openssl' 'zstd' 'fmt' 'bzip2' 'spdlog' 'aws-sdk-cpp')
makedepends=('cmake' 'catch2' 'doxygen' 'clang' 'git')
source=("$pkgname-$pkgver.tar.gz::https://github.com/TileDB-Inc/TileDB/archive/refs/tags/${pkgver}.tar.gz"
        "LICENSE::https://raw.githubusercontent.com/TileDB-Inc/TileDB/dev/LICENSE")
sha256sums=('9c258258b3fe0b6d0d35c234d4422e7de6cb43f6ce767134f7d7aefbcda15b81'
            '4c7ff1be915106b4a986c6a82e201032d97bb23f8eb89b2bfc2bfc364c79f936')

prepare() {
    mv "TileDB-${pkgver}" "${pkgname}-${pkgver}"
}
# uses a combination of make and cmake...
# https://docs.tiledb.com/main/how-to/installation/building-from-source/c-cpp

build() {
    cd "${pkgname}-${pkgver}"
    cmake -B build \
        -DCMAKE_BUILD_TYPE='Release' \
        -DCMAKE_INSTALL_PREFIX="/usr" \
        -DCMAKE_INSTALL_BINDIR='bin' \
        -DCMAKE_INSTALL_DOCDIR='doc' \
        -DTILEDB_TOOLS='ON' \
        -DTILEDB_S3='ON' \
        -DTILEDB_AZURE='ON' \
        -DTILEDB_GCS='ON' \
        -DTILEDB_SERIALIZATION='ON' \
        -DTILEDB_VERBOSE='ON' \
        -Wno-dev
    make -C build
    make -C build doc
# TODO: https://github.com/TileDB-Inc/TileDB/tree/dev/examples/cmake_project#readme
#    make -C build examples
}

check() {
        cd "$pkgname-$pkgver"
        make -C build -k check
}

package() {
    cd "${pkgname}-${pkgver}"
    make DESTDIR="${pkgdir}/" -C build install-tiledb

    # fix for missing bin dir and resulting tiledb tool
    # cause -DCMAKE_INSTALL_BINDIR=bin doesn't work...
    install -Dm755 "${srcdir}/${pkgname}-${pkgver}/build/tiledb/tools/tiledb" "${pkgdir}/usr/bin/tiledb"

    install -Dm644 "${srcdir}"/LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
  • Are you building the Azure SDK within the TileDB superbuild, or separately? If the former, does the version match the one in our azure ExternalProject I think its within the superbuild cause the only external dependency I could find readily available was for the AWSSDK so gcssdk and azuresdk are building and downloading during build time.
  • Finally: running the Azure tests locally requires that the Azurite emulator is running. See this script and the usage example in our CI scripts (making a note to add a test/README.md to collect this information)

ah ok, i'm not familiar with azure and will see how to integrate something similar on my end.

okanisis avatar May 04 '22 17:05 okanisis

ah ok, i'm not familiar with azure and will see how to integrate something similar on my end.

Just to note: the azure tests are probably failing first, but the others (S3, GCS) will fail as well without the corresponding emulators. Not sure what the policy is for testing deps like this on Arch, but if it helps you can run most of the tests like this: ./test/tiledb_unit -v normal --vfs=native "~[gcs]" "~[s3]" "~[azure]" and it should pass without any of the emulators.

ihnorton avatar May 05 '22 02:05 ihnorton

I can't seem to get the tiledb_unit executable generated during build. suggestions for that? gonna test it out

okanisis avatar May 05 '22 18:05 okanisis

Try make -C tiledb tiledb_unit from the top-level build directory.

ihnorton avatar May 05 '22 18:05 ihnorton

Please ping if needed to reopen.

ihnorton avatar Feb 15 '23 18:02 ihnorton