Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Активные темы » Баг с pending delete (win 7)

Модерирует : KLASS, IFkO

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

danetz

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привествую, форумчане
 
Наткнулся на баг, и душа перфекциониста стала не спокойна)
 
От владельцев семерки хочу подверждения - наблюдаетсли баг у вас.
Вопрос к продвинутым пользователям - как выловить причину.
 
Итак, дело в том что файлы запущеные с помощью GUI некторое время заняты и их невозможно ни перезаписать ни удалить.
 
Я всерьез заинтересовался и написал следующий батник
echo exit >c:\1.bat
explorer c:\1.bat
::cmd /c notepad c:\1.bat & timeout 1 & taskkill /f /q notepad.exe
set beg=%time%
del /f /q c:\1.bat
:1
echo trying delete
if exist c:\1.bat goto 1
set end=%time%
cls
echo begin time %beg%
echo    end time %end%
pause
 
 
 
Добавлено:
у меня разница между удалением и созданием файла ровно минута.
 
Ковырялся в процесс мониторе руссиновичка - увидел что файлы в состоянии delete pending
 
Уже всю голову изломал
 
Добавлено:
там закомментрирована строчка с ноутпадом. это я всякие варианты пробовал. В общем если обращаться ноутпадом то все окей. Дело в проводнике винды. Даже если процесс проводника прибить после обращения - все равно файл держит что-то
В безопасном режиме все окей.

Всего записей: 400 | Зарегистр. 25-02-2012 | Отправлено: 23:17 15-11-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
danetz
https://stackoverflow.com/questions/29891930/after-executing-file-delete-the-file-remains-in-delete-pending

Цитата:
Windows allows a process to delete a file, even though it is still opened by another process (e.g. Windows indexing service or Antivirus). It gets internally marked as "delete pending". The file does not actually get removed from the file system, it is still there after the File.Delete call. Anybody that tries to open the file after that gets an access denied error. The file doesn't actually get removed until the last handle to the file object gets closed.

 

Цитата:
все равно файл держит что-то

посмотрите что открыло файл. с помощью Crystal Rich LockHunter, к примеру.

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 00:43 16-11-2020 | Исправлено: Mavrikii, 00:46 16-11-2020
danetz

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
не, анлокер - это было бы просто, я сразу проверил, да и процесс монитор бы показал.
 
В скрипте страння строчка открытия бат файла эксплорером. Но для меня это дает тот же баг, что запуск файла вручную, я просто упросил себе тесты.
 
 
Добавлено:
Случайная зацепка привела меня к решению. Не факт что у кого - то проблема эта есть, но случай интересный.
 
В общем, тыкался-мыкался я, пока рандомно не прописал в скрипте место куда ложится файл - темповскую папку. В темповской все сохраняется и работает! Это уже серьезная зацепка.
Дальше - проще. Мой батник - натравка монитра на имя 1.bat и тупое сравнение по строчкам в логах. Строчки там разные, сразу убираем саксессы, нам не интересны хорошие события.
 
И нужное событие я нашел не в логе "плохого" случая. Там как раз сразу после ошибок FILE LOCKED WITH ONLY READERS идут пендинг ошибки. Я обратил внимание что есть в хорошем. А именно строчка NAME NOT FOUND, где в разделе путь стояло HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers\C:\Temp\1.bat
Знакомое название службы, которую я всю жизнь отключал - информация о совместимости приложений. Бесполезная хрень, которая в стародавние времена бесила своими услужливыми окнами с вопросами, но думаю - чем черт не шутит. Запустил службу - и заработало.
 

Всего записей: 400 | Зарегистр. 25-02-2012 | Отправлено: 02:21 16-11-2020
SlavaB

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
danetz
Вероятно, Вы эту службу неправильно отключали. Нужно отключать через политики:
 
gpedit.msc > Конфигурация компьютера > Административные шаблоны >
Компоненты Windows > Совместимость приложений >
включить "Отключение обработчика совместимости приложений" и
"Отключение помощника по совместимости программ".
После перезагрузки в свойствах файлов исчезнет вкладка "Совместимость".

Всего записей: 1277 | Зарегистр. 22-07-2003 | Отправлено: 17:01 17-11-2020 | Исправлено: SlavaB, 17:02 17-11-2020
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Активные темы » Баг с pending delete (win 7)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru