Bug 48049 - Нечитаемое имя файла-протокола e4rat, нет возможности использовать e4rat-preload
Summary: Нечитаемое имя файла-протокола e4rat, нет возможности использовать e4rat-preload
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: e4rat (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Vitaly Lipatov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-10-17 23:11 MSK by nd100
Modified: 2023-10-20 16:26 MSK (History)
1 user (show)

See Also:


Attachments
Наименование протокола по результатам работы e4rat-collect (68.83 KB, image/png)
2023-10-17 23:11 MSK, nd100
no flags Details
Архив с исправлением ошибки и описанием подробностей и особенностей (912.53 KB, application/gzip)
2023-10-20 16:25 MSK, nd100
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description nd100 2023-10-17 23:11:47 MSK
Created attachment 14809 [details]
Наименование протокола по результатам работы e4rat-collect

После запуска e4rat-collect файл потоколола загрузки операционной системы, по умолчанию ожидающийся по пути /var/lib/e4rat/startup.log, не создается.

Сам запуск e4rat-collect осуществляется, программа успешно работает после запуска операционной системы 2 минуты, как полагается по умолчанию. Протокол, в общем-то, тоже создается. Но!!! Создается он в корне, т.е. по пути "/", название протокола состоит из нечитаемых символов, т.е. не букв, а каки-то служебных символов таблицы кодировки.

В результате, если файл переименовать, во что-либо читаемое - его можно использовать для инструмента e4rat-realloc из пакета e4rat, но нельзя использовать для следующего за e4rat-realloc инструментом e4rat-preload, т.к. при попытке его использования он не может прочесть файл протокола, т.к. ищется протокол непонятно где и непонятно, под каким именем. А именно под каким-то произвольным от запуска к запуску.

Т.е. такое ощущение, что e4rat-collect и e4rat-preload имеют какую-то одну общую ошибку при чтении данных о наименовании файла-протокола загрузки операционной системы.

Наименование этого файла и его расположение могут как быть заданными в конфигурационном файле /etc/e4rat.conf, так и использоваться значения по умолчанимю, если в этом конфигурационном файле ничего особого не задано.

Указание любого наименования и пути на проявление ошибки не влияет - файл используется с рандобным именем как для e4rat-collect, так и для e4rat-preload.

Используется e4rat версии 0.2.3-alt8:p10+294638.200.2.1@1644917838 из репозитория p10 альта.   

Запуск e4rat-collect осуществляется путем добавления "init=/usr/sbin/e4rat-collect" к параметрам ядра в строке GRUB.
Запуск e4rat-preload - аналогично.

На приложенном скриншоте показано наименование файла, который автоматически создался силами e4rat-collect.

При попытке запуска e4rat-preload при загрузке на экране видны сообщения от e4rat-preload о том, что preload запускается, но не может найти какого-то подобного файла с похожим, но не таким же, а каждый раз разным, названием.
Comment 1 nd100 2023-10-20 16:25:04 MSK
Created attachment 14838 [details]
Архив с исправлением ошибки и описанием подробностей и особенностей
Comment 2 nd100 2023-10-20 16:26:09 MSK
В общем, посмотрев реакцию на баг, а именно то, что на него особо никто не реагирует, решил разобраться самостоятельно. 
Скомпилировал коды под boost 1.7.6 из p10, нашел ошибку, весьма, кстати, странную, которая либо была привнесена в последних версиях e4rat, когда его еще кто-то писал, либо появилась в связи с изменениями в механизме управения памяти Linux с момента написания e4rat.
Ошибка касется двух модулей: e4rat-collect и e4rat-preload и связана с чтением настройки startup_log_file.

Собственно, ошибка в этих компонентах исправлена.
Коды прилагаются. Размером несколько больше оригинала, т.к. специально не вычищал из них *.make и тому подобное из-за особенностей конфигурации в альте p10, которые выявились у меня.

Кому не нужно - можно переконфигурировать заново.

Коды и описание сделанного выложил в архив