Bug 39012 - info.json не всегда отражает текущее состояние задания
Summary: info.json не всегда отражает текущее состояние задания
Status: CLOSED FIXED
Alias: None
Product: Infrastructure
Classification: Infrastructure
Component: girar (show other bugs)
Version: unspecified
Hardware: x86_64 Linux
: P5 normal
Assignee: Dmitry V. Levin
QA Contact: Andrey Cherepanov
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-09-30 12:18 MSK by Anton Farygin
Modified: 2020-11-17 18:47 MSK (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Anton Farygin 2020-09-30 12:18:15 MSK
В частности, в info.json acl (approved/disapproved) попадают только после того, как проходит какая-то итерация по изменению state пакета.

И ещё замечено, что если над FAILED заданием выполнить несколько любых операций по изменению содержимого задания (удалению/добавлению подзаданий, например), то в info.json окажется только первая из них (с одновременной сменой state на NEW), а все последующие изменения в info.json уже не попадут до момента запуска задания на сборку.

ну и заодно было бы неплохо писать в info.json время его последнего изменения.
Comment 1 Dmitry V. Levin 2020-10-28 11:36:41 MSK
(In reply to Anton Farygin from comment #0)
> В частности, в info.json acl (approved/disapproved) попадают только после
> того, как проходит какая-то итерация по изменению state пакета.

Да, было такое.  Сейчас результат approve/disapprove отражается в info.json сразу, если задание не заблокировано (например, сборкой).

> И ещё замечено, что если над FAILED заданием выполнить несколько любых
> операций по изменению содержимого задания (удалению/добавлению подзаданий,
> например), то в info.json окажется только первая из них (с одновременной
> сменой state на NEW), а все последующие изменения в info.json уже не попадут
> до момента запуска задания на сборку.

Да, было такое.  Сейчас любые действия, потенциально меняющие task state, сразу приводят к обновлению info.json.

> ну и заодно было бы неплохо писать в info.json время его последнего
> изменения.

А зачем?  И как назвать это поле, если действительно нужно?
Comment 2 Anton Farygin 2020-10-28 11:53:44 MSK
спасибо. поле можно назвать, например, "updated", а в качестве содержимого - unix timestamp последнего изменения. Нужно для того, что бы не сравнивать все позиции этого файла с предыдущем значением.

Хотя, по идее, это же можно взять из времени последнего изменения файла по http, но мне кажется надёжнее было бы забрать это поле сразу из json.


Просьба  к Сергею Новикову начать использовать info.json на предмет отслеживания статуса approved/disapproved.
Comment 3 Dmitry V. Levin 2020-10-30 21:58:05 MSK
Теперь и поле "updated" будет добавляться.
Comment 4 Anton Farygin 2020-10-31 10:36:36 MSK
Но почему-то не FIXED. Какие-то ещё остались моменты, когда info.json может разъехаться с состоянием задания ?
Comment 5 Dmitry V. Levin 2020-11-17 18:47:51 MSK
(In reply to Anton Farygin from comment #4)
> Но почему-то не FIXED. Какие-то ещё остались моменты, когда info.json может
> разъехаться с состоянием задания ?

Если задание заблокировано сборкой, то info.json обновится позднее, когда статус сборки поменяется.  Но мне кажется, что это не так важно.