From 541f15bd6889eef42084dfcd4ce7ea8fc0a9c512 Mon Sep 17 00:00:00 2001 From: Arseny Smirnov Date: Tue, 9 Jun 2020 17:04:47 +0300 Subject: [PATCH] files: better debug message in 'Cycle in database' error GitOrigin-RevId: 8817236d9a4a628468663c68f48f8990a2317f96 --- td/telegram/files/FileDb.cpp | 9 +++++---- td/telegram/files/FileDbId.h | 4 ++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/td/telegram/files/FileDb.cpp b/td/telegram/files/FileDb.cpp index e862f397b..fd8ba43cc 100644 --- a/td/telegram/files/FileDb.cpp +++ b/td/telegram/files/FileDb.cpp @@ -77,7 +77,7 @@ class FileDb : public FileDbInterface { } void load_file_data(const string &key, Promise promise) { - promise.set_result(load_file_data_impl(actor_id(this), file_pmc(), key)); + promise.set_result(load_file_data_impl(actor_id(this), file_pmc(), key, current_pmc_id_)); } void clear_file_data(FileDbId id, const string &remote_key, const string &local_key, const string &generate_key) { @@ -194,7 +194,7 @@ class FileDb : public FileDbInterface { } Result get_file_data_sync_impl(string key) override { - return load_file_data_impl(file_db_actor_.get(), file_kv_safe_->get(), key); + return load_file_data_impl(file_db_actor_.get(), file_kv_safe_->get(), key, current_pmc_id_); } void clear_file_data(FileDbId id, const FileData &file_data) override { @@ -247,7 +247,7 @@ class FileDb : public FileDbInterface { std::shared_ptr file_kv_safe_; static Result load_file_data_impl(ActorId file_db_actor_id, SqliteKeyValue &pmc, - const string &key) { + const string &key, FileDbId current_pmc_id) { //LOG(DEBUG) << "Load by key " << format::as_hex_dump<4>(Slice(key)); TRY_RESULT(id, get_id(pmc, key)); @@ -256,7 +256,8 @@ class FileDb : public FileDbInterface { int attempt_count = 0; while (true) { if (attempt_count > 100) { - LOG(FATAL) << "Cycle in file database?"; + LOG(FATAL) << "Cycle in file database? current_pmc_id=" << current_pmc_id << " key=" << key + << " links=" << td::format::as_array(ids); } attempt_count++; diff --git a/td/telegram/files/FileDbId.h b/td/telegram/files/FileDbId.h index bd4fb8094..3f9c8ced3 100644 --- a/td/telegram/files/FileDbId.h +++ b/td/telegram/files/FileDbId.h @@ -51,4 +51,8 @@ class FileDbId { } }; +inline StringBuilder &operator<<(StringBuilder &sb, const FileDbId &id) { + return sb << "FileDbId{" << id.get() << "}"; +} + } // namespace td