«Что случилось?»
«Ну... Вы знаете сервер, где находится страница управления?»
«Что с ним?»
«Сказали, что используется более 90% лимита оборудования»
«Что? С чего бы?»
«Это то, что я хочу узнать. Проклятие».
«Быстрее проверь это».
После того, как Пак Чольун отправился в серверное помещение, менеджер Чхве позвал Вонхо, Ёнхо и Сумин.
«Вы вчера что-нибудь трогали в серверной?»
«……»
Ёнхо и Сумин не знали, что сказать, поэтому просто молча стояли. Единственное, к чему они вчера прикасались в серверной, была ручка для записи в журнале регистрации. Они даже не трогали клавиатуру и просто смотрели в монитор до конца рабочего дня.
«Помощник менеджера Ким?»
Менеджер Чхве спросил Ким Вонхо.
«Разве не вы говорили, что исправите некоторые баги?»
«Я использовал кое-что... этого не было в условиях контракта на техническое обслуживание».
«Проблема возникла из-за этого?»
«Не было никаких проблем во время теста, который я проводил со стажерами...»
«Помощник Пак подтверждает проблему, поэтому, помощник Ким, тоже проверьте источники, которые вы загрузили вчера».
«Конечно».
«Ёнхо и мисс Сумин, тоже посмотрите соответствующие коды и поищите какие-нибудь проблемы. Сейчас!»
Вернувшись на свое место, Ёнхо открыл страницу управления на экране.
«Это из файла, который мы загрузили вчера».
Ёнхо посмотрел на окно багов. Там появились подробности.
Название: throw new Exception.
Подробнее: throw new Exception происходит в строке 735 в SalesAvgControl.class. Это намеренная ошибка программиста, поэтому упомянутые строки должны быть прокомментированы.
Решение: Комментирование строки 735
Ёнхо открыл нужный файл и с помощью окна багов посмотрел на строку 735.
«Что за черт? Там нет ничего. Как можно говорить, что это ошибка программиста...»
Ёнхо, открыв файл, который он писал локально, не мог ничего найти.
«Черт, ошибки есть и в самом окне багов?»
Ёнхо вдруг подумал, что это возможно, если баги возникнут в окне багов. И хотя оно до сих пор определяло ошибки с точностью до 100%, но это было возможно. Он не нашел ошибку в своем файле, просмотрев его много раз.
«В строке 735 точно ничего нет...»
Более того, строка была пустой. Однако даже когда он запустил снова, результат был таким же.
* Вздох * «Что, черт возьми, это за проблема?» Даже если это ошибка, почему используется более 90% от лимита оборудования?»
Это была целая куча всего, что он не понимал; Почему такая ошибка вдруг произошла и почему используется более 90% от лимита оборудования.
***
Позвонил помощник Пак, который был в серверной. Проблема была в системном журнале - чрезмерно увеличен размер файла системного журнала веб-сервера.
«Эй, почему размер файла стал таким большим?»
-Мы не знаем. Мы удалили этот файл, но размер стремительно увеличился сразу после удаления.
«Проклятие, это убивает меня».
- Сейчас я удалю файлы журнала, а пока все сотрудники компании подрядчика доделают свою работу на резервном сервере, так что будет лучше, если вы быстро выясните причину.
«Может, в протоколе было указано, где произошла ошибка?»
- Ох, я не рассказал вам об этом. Это похоже на ошибку, которая у нас возникла в минувшие выходные. Ничего не выводится, нет никакого протокола печати из оператора try-catch или информации, где произошла ошибка. В файле журнала одни пробелы.
«...Я хочу убить того, кто это сделал».
-Убьете кого-нибудь позже, решение проблемы на первом месте.
«Хорошо. Помощник менеджера Ким говорит, что он установил источник вчера, поэтому мы, вероятно, найдем проблему в нем. Так что побудьте там подольше».
-Да, менеджер.
Менеджер Чхве, закончив звонок, позвал Ким Вонхо.
«Помощник менеджера Ким, вы нашли что-нибудь?»
«Еще нет».
«Помощник менеджера Пак только что связался со мной. Видимо файлы журнала накапливаются и съедают аппаратное ограничение».
«Что он сказал о содержании ошибки?»
«По-видимому, нет никакого содержимого. Файлы пусты».
«Хм...»
Ким Вонхо поглаживал подбородок с не совсем понимающим видом.
«Кто редактировал код?»
«Мисс Сумин и г-н Ёнхо».
«Найди любые пробелы в отчете об ошибке throw new в источниках и отправь им обоим».
Строка, которая была в окне багов, мелькнула в голове Ёнхо, слышавшем разговор между менеджером Чхве и Ким Вонхо.
throw new Exception(“ “);
«Значит, окно багов показало правильно, так?»
Если файл журнала был пустым, значит, ошибка возникла из-за оператора throw new Exception, как и показало окно багов. Пробелы между двойными кавычками накапливались в лог-файле.
«Итак, throw new Exception означает, что программист сделал ошибку специально... это означает, что строка была добавлена к источнику».
Ёнхо проверил источник, который он загрузил в SVN. Он загрузил его перед отправкой Вонхо. Он узнал от помощника менеджера Со, что надо зафиксировать источники в SVN перед их загрузкой на коммерческий сервер.
Я не могу найти его, сколько бы ни смотрел...»
Но строки throw new Exception нигде не было.
Глава 19. Регулярный мониторинг (3)