Портит файл при копировании

Здесь можно сообщить о найденных багах в Far.
25080206
Posts: 7
Joined: Thu 14 Jan, 2016 06:53

Портит файл при копировании

Post by 25080206 » Thu 14 Jan, 2016 07:10

Хочу помочь проекту!
Итак, столкнулся с опасной проблемой... Заметил случайно. При копировании одного файла, копирование происходит подозрительно быстро (файл 4 гигабайта, должен копироваться не меньше 15 секунд, а тут примерно за секунду), без ошибок, после копирования файлы НЕ ИДЕНТИЧНЫ, Advanced compare при сравнении по контенту. Т.е. копия бита, а юзер никак не узнает об этом.
Windows 7 x64, FAR 3.0 build 4242 x64.
После обновления до актуальной версии 3.0 build 4505 x64 проблема сохраняется.
Стандартным эксплорером файл копируется нормально, также файл нормально копируется ФАРом при включенной опции "Use system copy routine"...
Баг опасный и повторяется стабильно, но я не особый специалист - хочу помочь проекту, могу предоставить доступ к компьютеру через teamviewer - если кто знающий подключится и исследует проблему, отчего так происходит... будет весьма неплохо.
Извиняюсь за сумбур, но косячок действительно неприятный, потенциальная потеря данных, пусть и случайный, но вдруг еще когда такое повторится, особенно, при переносе, а не копировании. Не утверждаю, что это глюк FAR'а - может быть, причина и не в нем, но файл при копировании "бьется" и никакого предупреждения о том, что копирование прошло неуспешно, нет.

2useven10
Posts: 3890
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 162 times

Портит файл при копировании

Post by 2useven10 » Thu 14 Jan, 2016 08:06

Какие флаги у файла выствлены (Ctrl-A на файле) ?

25080206
Posts: 7
Joined: Thu 14 Jan, 2016 06:53

Портит файл при копировании

Post by 25080206 » Thu 14 Jan, 2016 09:16

2useven10 wrote:Какие флаги у файла выствлены (Ctrl-A на файле) ?

Code: Select all

╔═══════════════════════════ Attributes ═══════════════════════════╗
║                    Change file attributes for                    ║
║   [TechTools.net] Microsoft Windows 10 5in1 November (x64).iso   ║
╟──────────────────────────────────────────────────────────────────╢
║ Owner:       BUILTIN\Administrators                              ║
╟──────────────────────────────────────────────────────────────────╢
║ [x] Read only                   [x] Sparse                       ║
║ [x] Archive                     [ ] Temporary                    ║
║ [ ] Hidden                      [ ] Offline                      ║
║ [ ] System                      [ ] Reparse point                ║
║ [x] Compressed                  [ ] Virtual                      ║
║ [ ] Encrypted                   [ ] Integrity stream             ║
║ [ ] Not indexed                 [ ] No scrub data                ║
╟──────────────────────────────────────────────────────────────────╢
║                                         MM/DD/YYYYY hh:mm:ss.ms  ║
║ Last write time:                        01/14/2016  08:38:48.268 ║
║ Creation time:                          01/13/2016  13:12:18.356 ║
║ Last access time:                       01/14/2016  11:20:38.004 ║
║ Change time:                            01/14/2016  10:09:28.028 ║
║                [ Original ] [ Current ] [ Blank ]                ║
╟──────────────────────────────────────────────────────────────────╢
║             { Set } [ System properties ] [ Cancel ]             ║
╚══════════════════════════════════════════════════════════════════╝

25080206
Posts: 7
Joined: Thu 14 Jan, 2016 06:53

Портит файл при копировании

Post by 25080206 » Thu 14 Jan, 2016 09:17

Если есть способ включить подробное логирование или еще что-то диагностическое - говорите как, сделаю.

2useven10
Posts: 3890
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 162 times

Портит файл при копировании

Post by 2useven10 » Thu 14 Jan, 2016 12:19

Что использовали, чтобы сделать файл разреженным ([x] Sparse) ?

User avatar
HaRT
Moderator
Posts: 8832
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 86 times
Been thanked: 151 times

Портит файл при копировании

Post by HaRT » Thu 14 Jan, 2016 13:50

25080206 wrote: файл 4 гигабайта, должен копироваться не меньше 15 секунд, а тут примерно за секунду
Если я правильно понимаю, что такое разреженный (sparse) файл, то такая быстрота не обязательно свидетельствует об ошибке.
25080206 wrote: файлы НЕ ИДЕНТИЧНЫ, Advanced compare при сравнении по контенту
В принципе ошибка может быть в плагине при обработке разреженных файлов. У Вас там настроено полное или выборочное сравнение контента?
И что говорят другие средства сравнения, хоть тот же fc.exe /b?
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
DrKnS
Posts: 5338
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 217 times

Портит файл при копировании

Post by DrKnS » Thu 14 Jan, 2016 19:35

2useven10 wrote: Что использовали, чтобы сделать файл разреженным ([x] Sparse) ?
Рискну предположить, что, судя по характерному названию файла, какой-нибудь µTorrent.

Фар копирует разреженные файлы с оптимизацией - копируются только реально занятые участки, так что проблема потенциально возможна, да.
Доступ к вашему компьютеру без установленной там студии имеет очень мало смысла, а просить вас выложить файл с интеллектуальной собственностью третьих лиц как-то не кошерно.
Выполните у себя там команду fsutil sparse queryrange "[TechTools.net] Microsoft Windows 10 5in1 November (x64).iso" > ranges.txt и приложите полученный ranges.txt сюда, вместе с точным размером файла, попробуем повторить.

И да, как уже посоветовали, fc.exe /b и, если будут различия, напишите, с какого адреса они начинаются.

25080206
Posts: 7
Joined: Thu 14 Jan, 2016 06:53

Портит файл при копировании

Post by 25080206 » Fri 15 Jan, 2016 05:17

Ничего не делал специально для этого - файл таким "упал" с торрентов, был создан в процессе работы uTorrent 3.4.5 build 41372.

Здесь наблюдается именно "болезненная" быстрота - копируется некоторое количество данных из начала файла и далее нули.

fc /b говорит:

Code: Select all

Comparing files D:\FAR_BUG\BAD\[TechTools.net] Microsoft Windows 10 5in1 November (x64).iso and D:\FAR_BUG\OK\[TECHTOOLS.NET] MICROSOFT WINDOWS 10 5IN1 NOVEMBER (X64).ISO
04E70000: 00 89
04E70001: 00 18
04E70002: 00 A6
04E70003: 00 35
04E70004: 00 23
04E70005: 00 B2
04E70006: 00 EE
04E70007: 00 12
04E70008: 00 17
04E70009: 00 04
04E7000A: 00 B3
04E7000B: 00 E9
04E7000C: 00 56
04E7000D: 00 66
04E7000E: 00 6D
04E7000F: 00 5A
04E70010: 00 45
04E70011: 00 C9
04E70012: 00 0A
04E70013: 00 3A
04E70014: 00 8A
04E70015: 00 7D
04E70016: 00 67
04E70017: 00 5B
04E70018: 00 AA
04E70019: 00 6A
04E7001A: 00 DE
04E7001B: 00 F8
04E7001C: 00 C1
04E7001D: 00 A4
04E7001E: 00 6A
04E7001F: 00 A0
04E70020: 00 11
04E70021: 00 1A
04E70022: 00 3F
04E70023: 00 A5
04E70024: 00 49
04E70025: 00 1B
04E70026: 00 DF
04E70027: 00 2B
04E70028: 00 5A
04E70029: 00 E9
04E7002A: 00 0C
04E7002B: 00 94
04E7002C: 00 6D
04E7002D: 00 9D
04E7002E: 00 40

25080206
Posts: 7
Joined: Thu 14 Jan, 2016 06:53

Портит файл при копировании

Post by 25080206 » Fri 15 Jan, 2016 05:54

Про интеллектуальную собственность - это дистрибутив винды без лекарства - почти такой же они дают сами бесплатно-триально, вот активатор ата-та (если кому-то не пофиг), но оный по другой ссылке :-)

fsutil sparse queryrange "[TechTools.net] Microsoft Windows 10 5in1 November (x64).iso" > ranges.txt

Code: Select all

D:\FAR_bug\ranges.txt
sparse range: [0] [65536]
sparse range: [524288] [1507328]
sparse range: [2555904] [2031616]
sparse range: [4784128] [1835008]
sparse range: [7077888] [2359296]
sparse range: [9633792] [4367581184]
sparse range: [4377804800] [917504]
sparse range: [4379246592] [13721600]
Начиная с 04E70000 пошли нули...

А вообще вот архивчик на облаке - пароль 123qwerty прикрывает чужую интеллектуальную собственность от косых взглядов - https://cloud.mail.ru/public/5gnw/B2yWHKnZo

И пруфвидео с экрана, как это все выглядит - https://youtu.be/fFy6404eMfk

Загрузка в процессе, смотрите через полчасика.

User avatar
DrKnS
Posts: 5338
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 217 times

Портит файл при копировании

Post by DrKnS » Fri 15 Jan, 2016 09:08

Исправлено в 4510.

25080206
Posts: 7
Joined: Thu 14 Jan, 2016 06:53

Портит файл при копировании

Post by 25080206 » Fri 15 Jan, 2016 09:40

Всегда рад помочь! :-)

25080206
Posts: 7
Joined: Thu 14 Jan, 2016 06:53

Портит файл при копировании

Post by 25080206 » Fri 15 Jan, 2016 10:15

Спасибо, баг задавлен!

Nicko
Posts: 4
Joined: Sat 27 Jul, 2019 14:19

Портит файл при копировании

Post by Nicko » Sat 27 Jul, 2019 15:08

Решил проверить, как работают распределённые файлы и вот что вышло:

1) Отформатировал разделы в NTFS и ReFS
2) Отключил в uTorrent "Распределять все файлы"
3) Начал закачку торрента и тут же нажал СТОП
4) В uTorrent была видна тоненькая полосочка в графике загрузки, пересчитал хэш - пропала
5) скопировал файл FARом на другой диск
5) запустил fsutil sparse queryflag на оба файла - показало пустую область на всю длину файла
6) запустил fc /b - показывает, что файлы различаются, сравнение Total Commander'ом тоже показало, что файлы различаются

Дубль два
1) Начал закачку торрента и тут же нажал СТОП
2) скопировал файл FARом на другой диск
3) запустил fsutil sparse queryflag на оба файла - показало в оригинале Выделенный диапазон [1]: Смещение: 0x1dc9000 Длина: 0x2d000, в копии Выделенный диапазон [1]: Смещение: 0x1dc0000 Длина: 0x40000

Может кто-нибудь пояснить, как так получается?

Nicko
Posts: 4
Joined: Sat 27 Jul, 2019 14:19

Портит файл при копировании

Post by Nicko » Sat 27 Jul, 2019 15:24

Ещё детали:

1) Система - Windows 10 1903 x64
2) FAR - 3.0.5400 x64, запущен под администратором

3) Если в uTorrent выбрать "Загружать в..." и указать другой диск - файлы становятся обычными, а не распределёнными
4) Если запустить "Оптимизация дисков" Windows и попробовать оптимизировать этот диск, пишет "Требуется оптимизация (Фрагментировано: 24%), и это при том, что диск пустой, NTFS и на нём лишь один скопированный файл

Nicko
Posts: 4
Joined: Sat 27 Jul, 2019 14:19

Портит файл при копировании

Post by Nicko » Sat 27 Jul, 2019 15:40

Жаль, что на этом форуме нельзя (или я не нашёл как) редактировать сообщения.

1) Дефрагментатор вообще не дружит с распределёнными файлами, а не только плохо скопированными.

2) В Total Commander была поддержка распределённых файлов, но много лет назад автор отказался от собственных функций копирования и стал использовать CopyFileEx. Не смотря на это, в HELPе TC указано, что:
Use default method only
The default built in copy method (via ReadFile/WriteFile) is relatively slow, but also reliable.
3) Попробовал проделать все операции с файлом размера 5 Гбайт, а не 20-40 Мбайт, и ничего подобного смоделировать не мог. Возможно, что это связано с размерам блока самого торрента и работой uTorrent.

User avatar
DrKnS
Posts: 5338
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 217 times

Портит файл при копировании

Post by DrKnS » Sat 27 Jul, 2019 18:50

Nicko, если вы считаете, что копирование sparse-файлов работает неправильно, приведите минимальный пример, воспроизводящий проблему.
Без торрентов, дефрагментаторов, оптимизаторов и экскурсов в историю более других менеджеров.

Post Reply

Return to “Глюки и баги”