TileDB icon indicating copy to clipboard operation
TileDB copied to clipboard

BufferLRUCache method test is failing in tiledb

Open okanisis opened this issue 3 years ago • 5 comments

Building in a clean chroot on Arch Linux (64-bit) with TileDB 2.7.1.

When running the tests with make -C build -k check I get the following:

0.000 s: Unit-test class BufferLRUCache
0.000 s: BufferLRUCache item invalidation
0.000 s: BufferLRUCache of 0 capacity
/usr/include/c++/11.2.0/bits/stl_vector.h:1045: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = unsigned char; _Alloc = std::allocator<unsigned char>; std::vector<_Tp, _Alloc>::reference = unsigned char&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__n < this->size()' failed.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tiledb_unit is a Catch v2.13.8 host application.
Run with -? for options

-------------------------------------------------------------------------------
TileMetadata: fixed data type tile - FixedTypesUnderTest - 0
-------------------------------------------------------------------------------
/build/tiledb/src/tiledb-2.7.1/test/src/unit-tile-metadata.cc:432
...............................................................................

/build/tiledb/src/tiledb-2.7.1/test/src/unit-tile-metadata.cc:281: FAILED:
  {Unknown expression after the reported line}
due to a fatal error condition:
  SIGABRT - Abort (abnormal termination) signal

0.000 s: TileMetadata: fixed data type tile - FixedTypesUnderTest - 0
===============================================================================
test cases:     371 |     370 passed | 1 failed
assertions: 3681187 | 3681186 passed | 1 failed

<end of output>
Test time =  82.68 sec
----------------------------------------------------------
Test Failed.
"tiledb_unit" end time: Mar 19 10:33 MST
"tiledb_unit" time elapsed: 00:01:22
----------------------------------------------------------

End testing: Mar 19 10:33 MST

My build configuration:

cmake -B build \
        -DCMAKE_BUILD_TYPE='None' \
        -DCMAKE_INSTALL_PREFIX="/usr" \
        -DTILEDB_TOOLS='ON' \
        -Wno-dev
make -C build

okanisis avatar Mar 19 '22 17:03 okanisis

@okanisis thank you for reporting this. I'm not able to reproduce this failure on my setup. Could you provide a few more details to help us track this down? What compiler and compiler version are you using for Arch? Can you also clarify your architecture? Are you on intel/AMD x86_64 or perhaps an arm aarch64? These details will let us better reproduce the failure.

Shelnutt2 avatar Mar 21 '22 12:03 Shelnutt2

@Shelnutt2

What compiler and compiler version are you using for Arch?

I'm using cmake 3.22.3 with gcc 11.2.0

ldd reports:

% ldd /usr/lib/libtiledb.so
        linux-vdso.so.1 (0x00007f910c506000)
        libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x00007f910bf25000)
        liblz4.so.1 => /usr/lib/liblz4.so.1 (0x00007f910bf02000)
        libspdlog.so.1 => /usr/lib/libspdlog.so.1 (0x00007f910bea2000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00007f910be88000)
        libzstd.so.1 => /usr/lib/libzstd.so.1 (0x00007f910bdd9000)
        libcrypto.so.1.1 => /usr/lib/libcrypto.so.1.1 (0x00007f910baf8000)
        libfmt.so.8 => /usr/lib/libfmt.so.8 (0x00007f910bad5000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f910b8af000)
        libm.so.6 => /usr/lib/libm.so.6 (0x00007f910b7c7000)
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f910b7ac000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007f910b5a2000)
        libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f910b59d000)
        /usr/lib64/ld-linux-x86-64.so.2 (0x00007f910c508000)

Can you also clarify your architecture? Are you on intel/AMD x86_64 or perhaps an arm aarch64?

Using intel x86_64.

% uname -a
Linux cryptsus 5.16.15-arch1-1 #1 SMP PREEMPT Thu, 17 Mar 2022 00:30:09 +0000 x86_64 GNU/Linux

okanisis avatar Mar 21 '22 22:03 okanisis

@okanisis thank you for the additional details. We've tracked down the issue to the CMAKE_BUILD_TYPE you are setting to 'None'. If you change the build type to a valid one, such as Release, this particular unit test will pass.

We will get the fix to properly handle any cmake build types that are unrecognized for this particular test soon.

Shelnutt2 avatar Mar 23 '22 03:03 Shelnutt2

We've tracked down the issue to the CMAKE_BUILD_TYPE you are setting to 'None'. If you change the build type to a valid one, such as Release, this particular unit test will pass.

Ok thanks! I missed that part and initially start packages following the guidelines from https://wiki.archlinux.org/title/CMake_package_guidelines#CMake_undesired_behaviors regarding optimizations and the 'Release' build. But it's not usually an issue and will make the change from my end too.

Preparing a GIS repository with chroot'd pre-built packages and TileDB is in there =)

okanisis avatar Mar 23 '22 19:03 okanisis

Please do not hesitate if you run into any other issues in getting your packages prebuilt.

If you'd like to enable all options for TileDB I recommend adding the following cmake options: -DTILEDB_S3=ON -DTILEDB_AZURE=ON -DTILEDB_GCS=ON -DTILEDB_SERIALIZATION=ON

Shelnutt2 avatar Mar 24 '22 01:03 Shelnutt2

I believe this is resolved, please ping if needed.

ihnorton avatar Dec 01 '22 13:12 ihnorton