diff --git a/tensorflow/lite/delegates/xnnpack/weight_cache.cc b/tensorflow/lite/delegates/xnnpack/weight_cache.cc index d92060ad235..4ceb2df985c 100644 --- a/tensorflow/lite/delegates/xnnpack/weight_cache.cc +++ b/tensorflow/lite/delegates/xnnpack/weight_cache.cc @@ -120,12 +120,17 @@ bool WeightCacheBuilder::Start(const char* path, const FileDescriptor& fd) { XNNPackCacheHeader header{XNNPackCacheHeader::kInvalidHeader}; header.buffer_list_offset = sizeof(header); - XNNPACK_RETURN_CHECK(fd_.Truncate(0), "could not truncate weight cache"); + XNNPACK_RETURN_CHECK(fd_.Truncate(0), "could not truncate weight cache."); + XNNPACK_RETURN_CHECK(fd_.SetPos(0) == 0, "couldn't move to file start."); XNNPACK_RETURN_CHECK(fd_.Write(&header, sizeof(header)), "could not write initial cache header in %s: %s.", file_path_.c_str(), strerror(errno)); schema_.base_offset = Align(sizeof(header), kMinAlignment); + + XNNPACK_RETURN_CHECK(StartBuildStep(), "failed to start initial write step."); + XNNPACK_RETURN_CHECK(StopBuildStep(), "failed to write initial step."); + return true; }