Журналы Базеля для посмертного анализа: что вы делали, когда разбились? - PullRequest
1 голос
/ 05 ноября 2019

Предположим, вы используете bazel для управления сборками для большого и разнородного проекта (для чего он предназначен). Затем вы начинаете получать сообщения о сбоях в середине сборки. Возможно, они находятся на машинах разработчика, к которым у вас нет доступа, может быть, они находятся в переходных контейнерах CI, суть в том, что у вас нет надежного доступа к машине во время большинства сбоев.

Предположим,большинство этих сбоев - умирающий сервер Bazel. Возможно, это зависало при вызове grpc, возможно, это было исключение OOM кучи Java.

Как вы можете:

  1. включить хорошее ведение журнала по умолчанию (как для клиента Bazel, так и для него). сервер), с какими посмертными письмами можно эффективно выполнять?

  2. предоставляют журналы с метками времени, когда bazel начал выполнять действие по сборке или тестированию, и когда он завершил каждое действие (и, таким образом, смог найтикакие действия выполнялись во время сбоя и могут быть ошибочными?)

Любая помощь по включению хорошей регистрации по умолчанию для сборок Bazel приветствуется. Меня не интересуют такие вещи, как --subcommands или --verbose_failures, которые рассылают спам в stdout / stderr (так как большую часть времени это просто шум, скрывающий там более полезную информацию). Я также знаю о --explain, но обычно он выдает очень мало и почти ничего не имеет значения.

Я думаю, что мой вопрос может быть перефразирован: как я могу достичь того, что, вероятно, должен делать --explain

1 Ответ

0 голосов
/ 06 ноября 2019

- show_timestamps добавляет временные метки к выводу сборки.

- announce_rc отображает эффективные флаги из RC-файлов.

The BazelСерверный процесс также записывает логи, новые для каждого запуска сервера. Они многословны, но могут помочь в криминалистической экспертизе. $(bazel info output_base)/java.log - символическая ссылка, указывающая на последний журнал;bazel info server_log сообщает о цели этой символической ссылки. Вам нужен способ получить их из КИ, который, как я понимаю, может быть невозможен, но, возможно, нет.

...