Bug 46987 - Неправильный расчёт времени обновлении индексов при небольшой дельте
Summary: Неправильный расчёт времени обновлении индексов при небольшой дельте
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: update-kernel (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Vitaly Chikunov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-07-20 06:15 MSK by ruslandh
Modified: 2023-07-24 20:06 MSK (History)
7 users (show)

See Also:


Attachments
Выдача sh -x update-kernel (104.17 KB, text/x-log)
2023-07-20 06:21 MSK, ruslandh
no flags Details
stat /var/lib/apt/lists/* > list_stat.log (9.36 KB, text/x-log)
2023-07-20 21:09 MSK, ruslandh
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description ruslandh 2023-07-20 06:15:15 MSK

    
Comment 1 ruslandh 2023-07-20 06:21:45 MSK
Created attachment 13888 [details]
Выдача sh -x update-kernel

Разница во времени создания индексов единица (как я понимаю 1 секунда), а выдает что индексы устарели на 251 день, что приводит в транс ;-)

Не понятно как получилась эта секунда, но 251 день это слишком.
Это в p10, но возможно и в Сизифе. Если в Сизифе этого нет, то перевешу на p10.

PS Как получилась разница в одну секунду тоже не понятно, но ...
Comment 2 ruslandh 2023-07-20 06:22:47 MSK
rpm -qa | grep update-kernel
update-kernel-1.8-alt1.noarch
Comment 3 Vitaly Chikunov 2023-07-20 08:40:34 MSK
К сожалению у меня это не воспроизводится.
Comment 4 Vitaly Chikunov 2023-07-20 09:11:29 MSK
Возможно ли что в системе не точно идут часы? Мне уже присылали подобный баг-репорт, но там дело решилось заменой батарейки.
Comment 5 Ivan A. Melnikov 2023-07-20 10:21:47 MSK
(In reply to ruslandh from comment #1)
> Выдача sh -x update-kernel

Простите за любопытсво, я почитал.

$ grep now update-kernel.log
+ now=1689822245
$ TZ=Europe/Moscow date --date=@1689822245
Thu Jul 20 06:04:05 AM MSK 2023

update-kernel вы вызывали сегодня примерно в 6:04 по Москве. Именно с этим временем сравнивается время создания индексов.

$ grep ' t='  update-kernel.log
+ t=1668090813
+ t=1668090812
+ t=1668090815
+ t=1668090812
+ t=1668090815
+ t=1668090814
$ TZ=Europe/Moscow date --date=@1668090812
Thu Nov 10 05:33:32 PM MSK 2022

По данным команды stat, последние изменения в файлы индексов происходили 10 ноября прошлого года. Дальше update-kernel всё чётко посчитал.

Дальше возможны три варианта:
* вы правда давно не обновляли индексы. так бывает, не нужно этого стесняться =)
* между apt-get update и update-kernel у Вас проснулась синхронизация времени и выставила нормальное время. Кто у Вас этим занимается, chrony? Посмотрите в его логи.
* у Вас очень интересная файловая система.

Можете показать вывод `stat  /var/lib/apt/lists/*`? И заодно что там за раздел и с какими опциями он смонтирован.
Comment 6 ruslandh 2023-07-20 13:28:09 MSK
(Ответ для Ivan A. Melnikov на комментарий #5)
> (In reply to ruslandh from comment #1)
> > Выдача sh -x update-kernel
> 
> Простите за любопытсво, я почитал.
> 
> $ grep now update-kernel.log
> + now=1689822245
> $ TZ=Europe/Moscow date --date=@1689822245
> Thu Jul 20 06:04:05 AM MSK 2023
> 
> update-kernel вы вызывали сегодня примерно в 6:04 по Москве. Именно с этим
> временем сравнивается время создания индексов.
> 
> $ grep ' t='  update-kernel.log
> + t=1668090813
> + t=1668090812
> + t=1668090815
> + t=1668090812
> + t=1668090815
> + t=1668090814
> $ TZ=Europe/Moscow date --date=@1668090812
> Thu Nov 10 05:33:32 PM MSK 2022
> 
> По данным команды stat, последние изменения в файлы индексов происходили 10
> ноября прошлого года. Дальше update-kernel всё чётко посчитал.
> 
> Дальше возможны три варианта:
> * вы правда давно не обновляли индексы. так бывает, не нужно этого
> стесняться =)
> * между apt-get update и update-kernel у Вас проснулась синхронизация
> времени и выставила нормальное время. Кто у Вас этим занимается, chrony?
> Посмотрите в его логи.
> * у Вас очень интересная файловая система.
> 
> Можете показать вывод `stat  /var/lib/apt/lists/*`? И заодно что там за
> раздел и с какими опциями он смонтирован.

Вечером посмотрю. Я это утром сделал  и другими делами занялся.

1. Индексы обновлял
2. Это маловероятно, так как это у меня это воспроизвелось не один раз (говорил no, потом apt-get update) - первое, что пришло в голову.
3. Вечером сделаю.
Comment 7 ruslandh 2023-07-20 21:06:10 MSK
$ cd                /var/lib/apt/lists/
$ df -h .
Файловая система Размер Использовано  Дост Использовано% Cмонтировано в
/dev/sda5          205G         124G   71G           64% /
$ findmnt | grep sda5
/                               /dev/sda5   ext4            rw,noatime
$ cat /etc/fstab 
# /dev/sda5
...
UUID=e940e8d4-5380-4515-bf4f-de664e867538       /       ext4    defaults,discard,noatime        1       1
....
Comment 8 ruslandh 2023-07-20 21:09:03 MSK
Created attachment 13892 [details]
stat  /var/lib/apt/lists/* > list_stat.log
Comment 9 ruslandh 2023-07-20 21:10:30 MSK
discard виноват ?
Comment 10 ruslandh 2023-07-20 21:11:15 MSK
Вернее noatime
Comment 11 ruslandh 2023-07-20 21:14:41 MSK
"Параметр noatime полностью отключает запись времени доступа к файлу. Большинство программ не используют это поле. Но бывают и редкие исключения — например, Mutt полагается на его значение. Для mutt вы можете использовать параметр relatime."

Всё ясно ;-)
Comment 12 ruslandh 2023-07-20 21:30:03 MSK
touch /var/lib/apt/lists/*
всё лечит ;-)
Если только его в apt-get update встроить ;-)
Comment 13 Vitaly Chikunov 2023-07-21 02:10:48 MSK
Спасибо. А можно посмотреть вывод

  apt-config dump | grep Dir

?
Comment 14 ruslandh 2023-07-23 21:54:36 MSK
]$ apt-config dump | grep Dir
Dir "/";
Dir::State "var/lib/apt/";
Dir::State::lists "/tmp/.apt-cache/lists/";
Dir::State::cdroms "cdroms.list";
Dir::State::prefetch "prefetch";
Dir::Cache "/tmp/.apt-cache";
Dir::Cache::archives "archives/";
Dir::Cache::srcpkgcache "srcpkgcache.bin";
Dir::Cache::pkgcache "pkgcache.bin";
Dir::Etc "etc/apt/";
Dir::Etc::sourcelist "sources.list";
Dir::Etc::sourceparts "sources.list.d";
Dir::Etc::vendorlist "vendors.list";
Dir::Etc::vendorparts "vendors.list.d";
Dir::Etc::main "apt.conf";
Dir::Etc::parts "apt.conf.d";
Dir::Etc::preferences "preferences";
Dir::Etc::preferencesparts "preferences.d";
Dir::Etc::pkgpriorities "pkgpriorities";
Dir::Etc::translatelist "translate.list";
Dir::Etc::translateparts "translate.list.d";
Dir::Bin "";
Dir::Bin::methods "/usr/lib64/apt/methods";
Dir::Bin::rpm "/bin/rpm";
Dir::Bin::scripts "/usr/share/apt/scripts";
Dir::Ignore-Files-Silently "";
Dir::Ignore-Files-Silently:: "~$";
Dir::Ignore-Files-Silently:: "\.disabled$";
Dir::Ignore-Files-Silently:: "\.bak$";
Dir::Ignore-Files-Silently:: "\.dpkg-[a-z]+$";
Dir::Ignore-Files-Silently:: "\.ucf-[a-z]+$";
Dir::Ignore-Files-Silently:: "\.save$";
Dir::Ignore-Files-Silently:: "\.orig$";
Dir::Ignore-Files-Silently:: "\.distUpgrade$";
Dir::Locale "/usr/share/locale";
Comment 15 Vitaly Chikunov 2023-07-23 23:10:28 MSK
Спасибо большое. А как и почему задан параметр Dir::State::lists?
Comment 16 ruslandh 2023-07-24 05:53:51 MSK
Так, я задумался сам ;-)

Это может быть связано, что обновляюсь не напрямую, а через локальное зеркало ?
rpm [p10] file:/mnt/Arhiv/Branch-p10/ x86_64 classic gostcrypto debuginfo
rpm [p10] file:/mnt/Arhiv/Branch-p10/ x86_64-i586 classic
rpm [p10] file:/mnt/Arhiv/Branch-p10/ noarch classic
Comment 17 Vitaly Chikunov 2023-07-24 14:49:41 MSK
Как фиксить уже понятно, просто интересно как система стала такой, чтоб понять на сколько это часто происходит. Это значение Dir::State::lists прописано вручную в конфигах /etc/apt (давно?) или какой-то пакет или скрипт это устанавливает?
Comment 18 Ivan A. Melnikov 2023-07-24 16:34:18 MSK
(In reply to Vitaly Chikunov from comment #17)
> какой-то пакет или скрипт
> это устанавливает?

Похоже на работу apt-conf-tmp-cache.
Comment 19 Vitaly Chikunov 2023-07-24 17:22:54 MSK
(In reply to Ivan A. Melnikov from comment #18)
> (In reply to Vitaly Chikunov from comment #17)
> > какой-то пакет или скрипт
> > это устанавливает?
> 
> Похоже на работу apt-conf-tmp-cache.

Большое спасибо за информацию! (ps. Погуглил и не нашел зачем нужен этот пакет.)
Comment 20 Repository Robot 2023-07-24 20:06:56 MSK
update-kernel-1.11-alt1 -> sisyphus:

 Mon Jul 24 2023 Vitaly Chikunov <vt@altlinux> 1.11-alt1
 - Fix incorrect apt database oldness message when apt-conf-tmp-cache is used
   (ALT#46987).