sadr0b0t / yashlang

PeerTube and YouTube player for Android with local playlists and whitelisted recommendations
GNU General Public License v3.0
51 stars 3 forks source link

Файл ".part" в каталоге с кэшэм не распознался как бесхозный, но при этом не ассоциирован с записью в базе данных #146

Open sadr0b0t opened 2 years ago

sadr0b0t commented 2 years ago

Поймал такую ситацию:

В файловой системе нашел файл .part, который (судя по id video) принадлежал к видео, потоки для которого были выкачаны (и файлы были на месте)

Два момента:

Ответ на первый вопрос - вполне возможно, сработала та самая ситация, которая в коде помечена как "todo" (если удаляем запущенный поток, например, чере меню "удалить все незавершенные", то не дожидаемся, пока они реально встанут на паузу - при определенном стечении обстоятельств можно удалить запись в бд, удалить файл с файловой системы, а потом все равно получить операцию write по старому имени - теоретические есть шанс, что это может пересоздать временный файл - но это не точно, нужно еще проверять)

Ответ на второй вопрос - нужно посмотреть алгоритм определения бесхозных файлов в коде. Сейчас там есть какое-то допущение по файлам, которые заканчиваются на ".part", нужно его пересмотреть.