man-group / ArcticDB

ArcticDB is a high performance, serverless DataFrame database built for the Python Data Science ecosystem.
http://arcticdb.io
Other
1.46k stars 93 forks source link

Flaky `test_filter_numeric_isnotin_signed` #1546

Closed IvoDD closed 1 month ago

IvoDD commented 5 months ago

Describe the bug

The test_filter_numeric_isnotin_signed has flaked on the conde build here.

Pasting logs below:

version_store = NativeVersionStore: Library: test_filter_numeric_isnotin_si.80_2024-05-01T13_07_13_506219, Primary Storage: lmdb_storage.
symbol = 'test_filter_numeric_isnotin'
df =               a    b
0  9.007199e+15  0.0
arctic_query = <arcticdb.version_store.processing.QueryBuilder object at 0x14a4b6650>
pandas_query = 'a not in [9007199254740993]', dynamic_strings = True

    def generic_dynamic_filter_test(version_store, symbol, df, arctic_query, pandas_query, dynamic_strings=True):
        version_store.delete(symbol)
        expected, slices = make_dynamic(df)
        for df_slice in slices:
            version_store.append(symbol, df_slice, write_if_missing=True)

        try:
            expected = expected.query(pandas_query)
            received = version_store.read(symbol, query_builder=arctic_query).data
            expected = regularize_dataframe(expected)
            received = regularize_dataframe(received)
            if not len(expected) == 0 and len(received) == 0:
                if not np.array_equal(expected, received):
                    print("Original dataframe\n{}".format(expected))
                    print("Pandas query\n{}".format(pandas_query))
                    print("Expected\n{}".format(expected))
                    print("Received\n{}".format(received))
>                   assert False
E                   assert False
E                   Falsifying example: test_filter_numeric_isnotin_signed(
E                       lmdb_version_store_dynamic_schema=NativeVersionStore: Library: test_filter_numeric_isnotin_si.80_2024-05-01T13_07_13_506219, Primary Storage: lmdb_storage.,
E                       df=
E                                         a    b
E                           0  9.007199e+15  0.0
E                       ,
E                       vals=frozenset({int64(9007199254740993)}),
E                   )
E                   
E                   You can reproduce this example by temporarily adding @reproduce_failure('6.72.4', b'AXicY2RgYGZgYFBgQABGsAhUiJEBAAU5AEo=') as a decorator on your test case

Steps/Code to Reproduce

Rerun the test.

Expected Results

Test always succeeds.

OS, Python Version and ArcticDB Version

Conda mac OS (from CI)

Backend storage used

No response

Additional Context

No response

phoebusm commented 3 months ago

Happened in pypi linux build as well:

=========================== short test summary info ============================
FAILED tests/unit/arcticdb/version_store/test_filtering_dynamic.py::test_filter_numeric_isnotin_signed[EncodingVersion.V2] - assert False
Falsifying example: test_filter_numeric_isnotin_signed(
    lmdb_version_store_dynamic_schema=NativeVersionStore: Library: test_filter_numeric_isnotin_si.876_2024-07-03T09_40_50_711623_v2, Primary Storage: lmdb_storage.,
    df=
                      a    b
        0  9.007199e+15  0.0
    ,
    vals=frozenset({int64(9007199254740993)}),
)

You can reproduce this example by temporarily adding @reproduce_failure('6.72.4', b'AXicY2RgYGZgYFBgQABGsAhUiJEBAAU5AEo=') as a decorator on your test case