GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||||
GeezerVison is showing github.com — Ray integration tests are broken on master: list-typed features lose object dtype and Ray materialization writes nothing to the online store · Issue #6912 · feast-dev/feast Closed DescriptionProblemThe Example run: https://github.com/feast-dev/feast/actions/runs/36757976337/job/110032974407 (on PR #6909, which only touches The same job is failing on unrelated branches on the same day, which confirms it is a master-level breakage rather than a per-PR regression:
All failures are on the single Failure 1 — list-typed features lose
|
| feature_dtype | has_empty_list |
|---|---|
| int32 | True / False |
| int64 | True / False |
| float | True / False |
| bool | True / False |
| datetime | True / False |
feature_is_list=False cases pass. So get_historical_features() on the Ray offline store now returns list columns as a native Arrow/pandas list dtype instead of object.
sdk/python/tests/integration/offline_store/test_universal_materialization.py::test_universal_materialization_consistency (both True and False parametrizations)
sdk/python/tests/integration/offline_store/test_universal_materialization.py:39: in test_universal_materialization_consistency
validate_offline_online_store_consistency(fs, driver_stats_fv, split_dt)
sdk/python/tests/utils/e2e_test_validation.py:52: in validate_offline_online_store_consistency
_check_offline_and_online_features(
sdk/python/tests/utils/e2e_test_validation.py:162: in _check_offline_and_online_features
assert not df.to_dict(orient="list")[f"{fv.name}__value"] or math.isnan(
E TypeError: must be real number, not NoneType
The online read returns None, i.e. the Ray compute engine materialization did not land rows in the sqlite online store. The TypeError is a secondary symptom — e2e_test_validation.py:162 also doesn't guard against None before calling math.isnan, so the real assertion never gets a chance to report.
pixi -e ray-tests)Given the dtype nature of failure 1, a recent Ray / pyarrow / pandas bump in the ray-tests pixi environment is the most likely trigger.
integration-test-ray is green on master so it is a meaningful signal on PRs.
object dtype (or update the universal type contract deliberately, if the new dtype is intended)._check_offline_and_online_features in sdk/python/tests/utils/e2e_test_validation.py:162 to handle None so a missing online value fails with a clear assertion instead of a TypeError.