Текущий код не восстанавливает состояние файловых блокировок после переустановки соединения. Так же есть такая ошибка: https://bugzilla.samba.org/show_bug.cgi?id=8764.
Создал патч, исправляющий вышеуказанную ошибку https://bugzilla.samba.org/show_bug.cgi?id=8764.
Работал над задачей: 1) Переписал вышеуказанный патч. 2) Начал работать над подготовкой инфраструктуры для более удобного последующего использования в коде переустановки соединения + SMB2.
Работал над подготовкой инфраструктуры.
(В ответ на comment #1) > Создал патч, исправляющий вышеуказанную ошибку > https://bugzilla.samba.org/show_bug.cgi?id=8764. Поправил, протестировал и отправил вторую версию патча в рассылку.
(В ответ на comment #4) > (В ответ на comment #1) > > Создал патч, исправляющий вышеуказанную ошибку > > https://bugzilla.samba.org/show_bug.cgi?id=8764. > Поправил, протестировал и отправил вторую версию патча в рассылку. Исправил комментарий, добавил тэги и отправил итоговую версию патча в рассылку.
Исправил ошибку в lock патчах. Добавил более подробное описание, протестировал и отправил.
(В ответ на comment #6) > Исправил ошибку в lock патчах. Добавил более подробное описание, протестировал > и отправил. Нашёл ещё одну неточность. Исправил.
(В ответ на comment #7) > (В ответ на comment #6) > > Исправил ошибку в lock патчах. Добавил более подробное описание, протестировал > > и отправил. > > Нашёл ещё одну неточность. Исправил. Поправил один из патчей. Второй получил Acked-by. Остальные три решено было отложить до перехода кода на новую инфраструктуру выбора протоколо-зависимых вызовов.
Работал над поддержкой файловых блокировок протоколом SMB2. Выяснил, что в этой версии протокола сервер ассоциирует блокировку только с файловым идентификатором, а проверка конфликтов между разными процессами, использующими один и тот же файловый дескриптор, ложится на плечи клиента. Добавил к существующему коду функционал отправки блокировок порциями в случае сброса оплока. Отправил в рассылку.
Работал над проблемой операций чтения/записи несколькими процессами с одним файловым дескриптором при наличии файловых блокировок - текущая реализация не проверяет конфликтующие блокировки локально. Разработал вариант решения. Тестировал. Далее планирую провести более масштабное тестирование.
Тестировал и подготавливал патчи.
Тестировал, подготавливал патчи - отослал в рассылку.
Исправил проблему deadlock'а в патчах, протестировал, отправил в рассылку.
Релизовал восстановление блокировок после разрыва соединения. Обнаружил и исправил ошибку в коде установки блокировок в случае наличия препятствующей блокировки. Исправил ошибку записи после установки блокировки на чтение в случае наличия оплока на чтение. Рабочая ветка for-next.
Тестировал патчи.
Подготовил и отправил патчи.
Патчи получили review. Продолжил работать над проблемой целостности данных при использовании кэша блокировок и кэша данных.
Работал над патчами, исправляющими вышеописанную проблему. Отправил в рассылку вторую версию серии.
Общался с Стивом, тестировал пачти при использовании SMB2.0 протокола.
Немного переосмыслил текущую реализацию последнего патча - обнаружил гонки за данными. Отправил новую версию патча в рассылку.
Продолжил работу над патчами. Отправил новую версию в рассылку.
Патчи приняты. Закрываю.