Очень крутой баг. Я переносил работу с пользовательскими файлами (localstorage.cpp) в другой модуль и вроде всё перенёс, куча изменений, тестирую.
Проверил логаут и логин обратно. Вроде работает. Завершаю через некоторое время приложение — а оно висит в дебаггере, не завершается.
Подождал немного, прерываю — висит в ожидании завершения потока. Нашёл поток — висит в QDir::removeRecursively.
Оказывается чистка юзерской папки в tdata (всяких его мусорно-файлов) при логауте осталась в старом модуле, и туда передавалась пустая строка(!)
И видимо (!) он стал рекурсивно сносить вообще всё на диске C:\, потому что:
(а) делал это так долго (и не закончил)
(б) мне реально даже не посмотреть, потому что он не открывает в дебагере сорцы фреймов бектрейса из Qt — посмотрел, он как минимум зачистил мне C:\Telegram\Libraries, снёс оттуда все собранные зависимости, включая Qt, остался один zlib и webrtc, который я когда-то чекаутил, об который он споткнулся видимо, там 12 гб мелких файлов 🙈
Вот эта жесть. Можно считать анекдот про rm -rf в реальности.
И я даже плохо представляю, что ещё он снёс, кроме Libraries.
Это настоящий Джон Престон?