ultrahd @ 15.10.19, 12:03
Никогда не видел, чтобы Маркет раздувался до 2 ГБ.
http://en.miui.com/thread-532086-1-1.html тут пишут даже о 8 гб из 16.
https://forum.xda-deve…g-com-android-t3557659 Еще одно.
Вот накидало файлов:
5 последних - абсолютно одинаковы по содержимому.
Это что-то похожее на apk. WinRAR говорит что ошибка контрольной суммы. 7-ZIP такого не говорит, но показывает AndroidManifest.xml нулевого размера.
Уже 629 МБ мусора. Когда оно сожрет оставшийся 1 ГБ, это только вопрос времени.
Я вот что нашел:
https://github.com/goo…1DeltaApplier.java#L70 File tempFile = File.createTempFile("gfbfv1", "old", tempDir);
try {
applyDeltaInternal(oldBlob, tempFile, deltaIn, newBlobOut);
} finally {
tempFile.delete();
}
Судя по всему, схема развития событий такова:
Это бинарный патчер гугла. Он берет старый файл, некие инструкции, что заменить в файле, чтобы получить новый файл и по ним, делает новый файл.
Типа чтоб много не качать.
Это в теории.
Что происходит в реале?
Маркет качает патч. Копирует апк в кеш, как временный файл. Применяет к нему патч. Либо патч выполняется криво, либо результаты кривые. В итоге процесс падает.
Строка tempFile.delete(); не выполняется. Файл остается.
Через некоторое время маркет запускается снова и снова пытается пропатчить файл.
И так до победного конца места на диске, либо пока новый патч не скачает, который нормально станет.
Естественно что маркет папку темпов при запуске не сканит, и мусор старый не убирает. Куда инженерам гугла до такого.
Их же софт не падает, поэтому мусора там не бывает.
Это даже безотносительно того что на unix можно удалить файл, когда он открыт и файл будет существовать, пока его не закроют.
И если процесс падает, то темповые файлы исчезают.
Учитывая что ошибка существует с незапамятных времен, либо о ней никто в гугл не писал, либо они не поняли в чем дело, либо всем пофиг.
Сообщение отредактировал Enyby - 16.10.19, 08:25