первый день yandex-root-2015

0. проблемы вылезли с запуском виртуалки у двоих из трех членов нашей команды: в hyper-v почему-то диск виделся как fd0. работали с одной, запущеной в kvm, причем с virtio драйвером диска она так же стартовать не хотела. вход на виртуалку получить было несложно через init=/bin/sh

1. ssl

первая сложность — понять тот момент, что нужен ссл-сервер со своим сертификатом, а не тем, что приложен к заданию.
при подписывании своего сертификата могла возникнуть ошибка с тем, что не совпадают subj у ca и подписываемого сертификата, лечилось заменой string_mask в конфиге с utf8only на pkix.
так же в системе была установлена поломанная версия openssl, в связи с этим ни апач, ни нжинкс не стартовали, лечится установкой пакета из репозитория.
конфиг ссл-вхоста написать, думаю, может каждый.

2. MariaDB repair

сложностей не вызывает, поставить пакет из репозитория, добавить в skip-grant-tables режиме нужного пользователя, создать от него временную таблицу, подсунуть frm от этой таблицы в нужную.
во время проверки создается правило ната на ип 192.168…, достаточно добавить его, например, на lo интерфейс.

3. Binary

поставить mono и strace, запускать бинарник через strace и ставить нужные либы до победного.

4. Mongo

поставить mongodb и mongodb-tools, запустить монго с данными из задачи, сдампить его, после этого можно этот монго отключить (не знаю, возможно, можно было преобразовать его).
затем запустить 2 шарда в своих каталогах и на своих портах (мы использовали 10001 и 10002), запустить конфигдб и монгос, собрать кластер, сделать в нем бд, загрузить в нее дамп и создать шарденую коллекцию по ключу _id, далее достаточно дождаться отработки балансировщика.

5. Strange protocol

самая стремная задача 🙁
реально ничего особенного, работает по ПРОТОКОЛУ enet, который живет по адресу http://enet.bespin.org/, именно в этом протоколе надо было делать эхо-сервер, а не просто в udp.

6. File

файл цепляется через лупбек, это будет lvm-раздел с 2 btrfs subvolume, на втором искомый файл.

7. MariaDB tuning

достаточно создать ключи на колонки hits и size, проблема только в том, что /tmp подмонтирован в tmpfs, на которой по умолчанию места всего 256М, решается либо отмонтированием tmpfs, либо правкой переменной tmpdir.

8. HG

операция называется delete large file from history, делается через convert старого репа в новый с исключением 2.scm.gz, *.gz исключать нельзя, далее просто hg serve -d в каталоге нового репа.

9. Strange file

тут два слова: immutable file. sapienti sat.

 

в итоге заняли 22 место 🙁 надо было внимательнее читать дамп в strange protocol.