Ладно, ладно, не сдох! Локально сломался 👀
Это я просто под эмоциями до сих пор от этого случая 👿 А ведь при такой программе (которая позволяет хранить файлы и работать с ними разным людям) этот кейс должен быть в составе основных проверок. Но обо всем по порядку.
Мне нужна была картинка из книги. Я их обычно беру из папки «Катя и эмоции», куда мы с художницей в своё время нарезали персонажей из книги:
И так как делалось это всё в рамках первой книги, то и картинки эти до сих пор там лежат. Так что я открываю яндекс-диск, папку с книгами, а там... Первой книги нет 😕
Знаете, сразу такой мороз по коже — куда делась книга?? Как так вообще, это ж облако! Я же не трогала, я не могу её просто взять и потерять, правда же, правда?? Конечно, сама книга давно закончена и мне не супер-нужны исходники текста, но ведь там и картинки все!
Открыла веб-версию яндекса и читаю там:
Виктория переместил папку «1. Книга для новичков» в папку «0. Статьи»
Ага, Вика (художница) просто случайно её подвинула... Ну и ладно! Зашла в «0. Статьи» и сделала move через правую кнопку мыши — вернула книгу туда, где она была раньше. И Вике написала, мол, смотри, я всё вернула.
Но тут что-то пошло не так... Оказалось, Вика её тоже вернула!
- Это у меня рука дрогнула в боковым меню😭 Но она должна была вернуться на место.
- Ну я её вернула)
- Хм. Я ее тоже вернула, видимо только у себя. У меня она не успела перекинуться.
- А, ну видимо поэтому и у меня не успела, правда теперь я хз что делать, видимо ждать синхронизации у обеих
- У тебя сейчас папка на месте?
Проверяю: да, папка на месте, но есть ошибка синхронизации:
Дальше мы попробовали стандартные действия типа:
- перезапустить яндекс-диск пару раз (фиг там)
- почистить его корзину (хотя это то тут при чем??) и снова перезапустить...
Здравствуйте, Ольга!Мы можем сообщить информацию об аккаунте только его владельцу.Чтобы мы смогли помочь, пожалуйста, свяжитесь с нами через Яндекс Почту аккаунта, в котором наблюдается проблема при синхронизации. Для связи подойдут адреса с доменами @yandex.ru, @ya.ru или с красивым доменом из платного тарифа.В сообщении укажите номер вашего обращения: ...
Серьезно?? Владельцу?? То есть логи у меня забирать можно и "без проверки владелец-нет", а ответ как ошибку починить, это с яндекса напишите? И что ещё за информация об аккаунте? На кой мне информация об аккаунте, вы мне шаги исправления синхронизации дайте, и всё!
Пришлось написать с яндекс-почты, и было это 12 ноября. Они лишь сказали "если есть что добавить, давайте, передам в техотдел" и испарились.
Мы с Викой обсуждали возможные правки — она сохранила себе на комп локально эту папку и предлагала перезалить. Но, так как исходный владелец папки — я, лучше это сделать мне. Попробовала скопировать эту папку прямо в яндексе, но облом:
Так что в итоге спустя несколько дней тишины от поддержки Вика положила свою локальную папку с постфиксом «-1»: «1. Книга для новичков-1», а старую папку (которая выдавала ошибку синхронизации) удалила. И вот, наконец! После перезапуска диска настала красота, всё зеленое:
Ура!
Как можно было найти эту ошибку на этапе тестирования
Исходно имеем основную фичу программы диска: возможность совместного редактирования файлов.
Это значит, что надо проверить, как отрабатывает синхронизация в случае параллельного использования:
- Внесли изменения в файл параллельно: одинаковые / разные.
- Потрогали сам файл, и тут вариантики:
- Переместили в одно и то же новое место / в разные — один файл или несколько (класс эквивалентности «один-много»), то есть папку сразу
- Один переместил, второй удалил — аналогично, один файл / папку.
При перемещении надо как раз проверять, когда первый поток уже отработал, но сихронизация ещё не закончилась, когда выполняем второе действие. Проверять на пустом файлике смысла нет, он переместится и синхронизируется моментально. Поэтому для такой проверки нужно взять тяжелый файл, или папку на несколько Гб.
То есть если выписать в виде мини-чеклиста:
Файл
- Есть ворд-файл. Один человек внес правки, синхронизировал. Второй откатил их (вернул в предыдущее состояние)
- Есть ворд-файл небольшого веса. Один человек внес правки, ещё не синхронизировал. Второй тоже внес правки те же самые. Потом оба сохраняют (один успеет синхронизировать раньше второго)
- Есть ворд-файл небольшого веса. Один человек внес правки, ещё не синхронизировал. Второй тоже внес правки, но другие. Потом оба сохраняют (один успеет синхронизировать раньше второго)
- Есть тяжелый ворд-файл и медленный интернет. Один человек внес правки, начал синхронизацию. Пока она не закончилась, второй внес те же правки.
- Есть тяжелый ворд-файл и медленный интернет. Один человек внес правки, начал синхронизацию. Пока она не закончилась, второй внес другие правки.
- Есть тяжелый ворд-файл и медленный интернет. Один человек снес файл, начал синхронизацию. Пока она не закончилась, второй внес правки в файл.
Папка
- Есть тяжелая папка (8 гб), подвинул один человек, параллельно (первая синхронизация ещё не закончилась) второй сделал то же самое.
- Есть тяжелая папка (8 гб), подвинул один человек, параллельно (первая синхронизация ещё не закончилась) второй подвинул в другое место.
- Есть тяжелая папка (8 гб), один удалил, параллельно (первая синхронизация ещё не закончилась) второй подвинул.
Исследовательские туры, которые бы могли помочь найти проблему:
- Тур «Второй бесплатно». The TOGOF Tour — это как раз про «запустить несколько копий программы»
- Тур, отмененный из-за дождя. The Rained-Out Tour — а это про отмену действия, по сути Вика отменила своё действие переноса, и я сделала то же самое, но в параллель.
Выводы
Если ваше приложение умеет работать «в параллель», это обязательно нужно проверить! Особенно одновременную работу с одной и той же сущностью. Пробуйте:
- Делать одинаковые действия в параллель / разные.
- Одним действием изменять, вторым удалять.
И пусть баги совсместного использования ловите вы, а не пользователи =)
PS — добавила пост в:
- общую копилку багов.
- Тур «Второй бесплатно». The TOGOF Tour
- Тур, отмененный из-за дождя. The Rained-Out Tour





Комментариев нет:
Отправить комментарий