Bug Report
On current main , the file-per-key backend cannot complete FileStorage::Init() when MOONCAKE_OFFLOAD_ENABLE_EVICTION=false.
The call order is:
storage_backend_->Init()
FileStorage::IsEnableOffloading()
storage_backend_->ScanMeta()
For StorageBackendAdaptor, IsEnableOffloading() returns INTERNAL_ERROR while meta_scanned_ is false when eviction is disabled. The first metadata scan is later in FileStorage::Init(), so initialization returns before it can ever establish the counters required by IsEnableOffloading().
The adaptor unit test already documents that ScanMeta() must run before IsEnableOffloading() in this configuration, but the production initialization path does the reverse.
Expected behavior
File-per-key storage should initialize successfully with eviction disabled, reconstruct existing usage before enabling new offloads, and register recovered LOCAL_DISK metadata with the master.
Before submitting...
Bug Report
On current
main, the file-per-key backend cannot completeFileStorage::Init()whenMOONCAKE_OFFLOAD_ENABLE_EVICTION=false.The call order is:
storage_backend_->Init()FileStorage::IsEnableOffloading()storage_backend_->ScanMeta()For
StorageBackendAdaptor,IsEnableOffloading()returnsINTERNAL_ERRORwhilemeta_scanned_is false when eviction is disabled. The first metadata scan is later inFileStorage::Init(), so initialization returns before it can ever establish the counters required byIsEnableOffloading().The adaptor unit test already documents that
ScanMeta()must run beforeIsEnableOffloading()in this configuration, but the production initialization path does the reverse.Expected behavior
File-per-key storage should initialize successfully with eviction disabled, reconstruct existing usage before enabling new offloads, and register recovered LOCAL_DISK metadata with the master.
Before submitting...