From d72a2c092e4e9082249ed24afb3dc7e4afede386 Mon Sep 17 00:00:00 2001 From: evgeny Date: Tue, 27 Oct 2026 12:28:12 +0100 Subject: [PATCH] Log avatar preparation generation and teardown state --- tools/chatgui/src/avatars/avatarmanager.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/chatgui/src/avatars/avatarmanager.cpp b/tools/chatgui/src/avatars/avatarmanager.cpp index e8fed358..15c3307a 100644 --- a/tools/chatgui/src/avatars/avatarmanager.cpp +++ b/tools/chatgui/src/avatars/avatarmanager.cpp @@ -38,6 +38,8 @@ AvatarManager::AvatarManager(DbManager* db, QObject* parent) : QObject(parent), } AvatarManager::~AvatarManager() { + DEBUG_DEBUG(DEBUG_CATEGORY_MEDIA, "avatar: manager destroying preparing=%d jobs=%d workers=%d", + m_preparing, int(m_jobs.size()), m_pool.activeThreadCount()); m_timer.stop(); s_manager = nullptr; m_pool.waitForDone(); for (auto id : m_jobs.keys()) { if (!gui_bridge_is_uasync_ready()) break; @@ -282,6 +284,8 @@ void AvatarManager::uploadDefault(const QString& source, quint64 server, const Q const QString directory = m_directory; const quint64 generation = ++m_generation; cancelUploads(); QStringList pinned; if (!m_defaultHash.isEmpty()) pinned << m_defaultHash; for (const auto& job : m_jobs) if (job.upload) pinned << job.ref.hash; + DEBUG_DEBUG(DEBUG_CATEGORY_MEDIA, "avatar: preparing generation=%llu server=%016llx source=%s", + (unsigned long long)generation, (unsigned long long)server, qPrintable(source)); m_pool.start(QRunnable::create([this, source, directory, server, generation, pinned, crop] { const auto result = AvatarCache::prepare(source, directory, crop); if (!result.image.isNull()) { auto keep = pinned; keep << result.hash; AvatarCache::prune(directory, keep); } @@ -321,6 +325,7 @@ void AvatarManager::cancelUploads() { void AvatarManager::clearDefault() { if (!m_ready || !gui_bridge_is_uasync_ready()) return; + DEBUG_DEBUG(DEBUG_CATEGORY_MEDIA, "avatar: clear default generation=%llu preparing=%d", (unsigned long long)m_generation, m_preparing); ++m_generation; m_preparing = false; cancelUploads(); m_defaultHash.clear(); m_defaultServer = 0; saveDefault(); for (const auto& ref : m_refs) if (ref.owner == m_db->myNodeId()) { Job job; job.ref = ref; job.ref.server = 0; job.ref.hash.clear(); job.upload = true; job.generation = m_generation;