MailRuChamps / hlcupdocs

High-loaded systems developer contest
https://highloadcup.ru
151 stars 34 forks source link

Прогон тестов с устаревшей версией Docker image #75

Closed nilebox closed 5 years ago

nilebox commented 7 years ago

Постоянно натыкаюсь на такую проблему: после пуша новой версии Docker image срабатывает триггер на прогон тестов, но на шаге 3 подтягивается предыдущая версия.

Например:

Successfully tagged stor.highloadcup.ru/travels/rebel_tapir:canary
docker push stor.highloadcup.ru/travels/rebel_tapir:canary
The push refers to a repository [stor.highloadcup.ru/travels/rebel_tapir]
5a8625e7c2c1: Pushed
5bef08742407: Layer already exists
canary: digest: sha256:038a6cb85650a4e58abe15c8367fb1e8af4807117f5ea90e58e2061cde24d767 size: 3696

А в тесте, который сработал на этот пуш:

Docker-контейнер с тегом stor.highloadcup.ru/travels/rebel_tapir@sha256:dc5fe41ee3772b6f51f5b75a5c9c45cdbb666131a955c1504389af6bd126b1ac успешно получен из хранилища.
Вывод docker pull:
id="sha256:dc5fe41ee3772b6f51f5b75a5c9c45cdbb666131a955c1504389af6bd126b1ac": Pulling from travels/rebel_tapir
id="6d987f6f4279": Already exists
id="e6f9e0a332af": Pull complete
Digest: sha256:dc5fe41ee3772b6f51f5b75a5c9c45cdbb666131a955c1504389af6bd126b1ac
Status: Downloaded newer image for stor.highloadcup.ru/travels/rebel_tapir@sha256:dc5fe41ee3772b6f51f5b75a5c9c45cdbb666131a955c1504389af6bd126b1ac

Смотрю историю пушей - хеш соответствует предыдущей версии.

xammi commented 7 years ago

Для диагностики проблемы нужно немного больше информации. Напишите пожалуйста вашу версию docker-клиента. Напишите пожалуйста, какие теги (часть после двоеточия) вы используете (помимо canary).

seeforschauer commented 7 years ago

Привет. Встретила аналогичные симптомы на своем доккере.

Команда на пуш:

push:
    docker tag travels stor.highloadcup.ru/travels/dragonfly_flyer
    docker push stor.highloadcup.ru/travels/dragonfly_flyer

Версия доккера:

helena@skydancer:/Users..src/travels.com> docker version     0/s001 [19:22:37]
Client:
 Version:      17.06.1-ce
 API version:  1.30
 Go version:   go1.8.3
 Git commit:   874a737
 Built:        Thu Aug 17 22:53:38 2017
 OS/Arch:      darwin/amd64

Server:
 Version:      17.06.1-ce
 API version:  1.30 (minimum version 1.12)
 Go version:   go1.8.3
 Git commit:   874a737
 Built:        Thu Aug 17 22:54:55 2017
 OS/Arch:      linux/amd64
 Experimental: true
AleksBannikov commented 7 years ago

Аналогичная проблема

Выполняю команды

docker tag go stor.highloadcup.ru/travels/cougar_creator
docker push stor.highloadcup.ru/travels/cougar_creator

Версия докер клиента

Client:
 Version:      17.06.0-ce
 API version:  1.30
 Go version:   go1.8.3
 Git commit:   02c1d87
 Built:        Fri Jun 23 21:30:30 2017
 OS/Arch:      windows/amd64

Server:
 Version:      17.06.0-ce
 API version:  1.30 (minimum version 1.12)
 Go version:   go1.8.3
 Git commit:   02c1d87
 Built:        Fri Jun 23 21:51:55 2017
 OS/Arch:      linux/amd64
 Experimental: true

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

AleksBannikov commented 7 years ago

Конкретный пример:

$ docker tag go stor.highloadcup.ru/travels/cougar_creator

$ docker push stor.highloadcup.ru/travels/cougar_creator
The push refers to a repository [stor.highloadcup.ru/travels/cougar_creator]
bcbd9aec80ac: Pushed
37146e7a3977: Pushed
6a031741b74b: Pushed
c631513119ec: Pushed
8a72f2815d54: Pushed
5beccf497266: Layer already exists
db5f25858029: Layer already exists
f8fb5db090fe: Layer already exists
c5976e44c5ec: Layer already exists
b362758f4793: Layer already exists
latest: digest: sha256:0d8f49bc1d67accf5f474a40802cad8c14cffdb467c08746ab2fe6e7898e8ffd size: 10903

В результате запустилась проверка https://highloadcup.ru/solution/21811/#log в которой

Docker-контейнер с тегом stor.highloadcup.ru/travels/cougar_creator@sha256:d2509d24ae0d96ec4d2cda3998d679220ee83435201e232d10e609e0cad985b2 успешно получен из хранилища.
Вывод docker pull:
id="sha256:d2509d24ae0d96ec4d2cda3998d679220ee83435201e232d10e609e0cad985b2": Pulling from travels/cougar_creator
id="364f9b7c969a": Pull complete
id="ce4c9c38401d": Pull complete
id="18fb6f733b67": Pull complete
id="10e1c639c117": Pull complete
id="5fbdd277a24e": Pull complete
id="2d34e37dad64": Pull complete
id="1f5e580ba4d4": Pull complete
id="d054cd265745": Pull complete
id="d45b7847e2a4": Pull complete
id="6b8f52c75a3b": Pull complete
Digest: sha256:d2509d24ae0d96ec4d2cda3998d679220ee83435201e232d10e609e0cad985b2
Status: Downloaded newer image for stor.highloadcup.ru/travels/cougar_creator@sha256:d2509d24ae0d96ec4d2cda3998d679220ee83435201e232d10e609e0cad985b2
nilebox commented 7 years ago

@xammi только что воспроизвел:

Successfully built c381c9119516
Successfully tagged stor.highloadcup.ru/travels/rebel_tapir:f883ba1
docker push stor.highloadcup.ru/travels/rebel_tapir:$(git rev-parse --short HEAD)
The push refers to a repository [stor.highloadcup.ru/travels/rebel_tapir]
2187b780baba: Pushed
5bef08742407: Layer already exists
f883ba1: digest: sha256:b99c1e88df7b357eaeb2b2daf70ddd0837aa83817db6a97a713fe6269302c075 size: 3697

запуск теста https://highloadcup.ru/solution/22222/#log

Docker-контейнер с тегом stor.highloadcup.ru/travels/rebel_tapir:latest успешно получен из хранилища.
Вывод docker pull:
id="latest": Pulling from travels/rebel_tapir
id="6d987f6f4279": Already exists
id="9e0f94051462": Pull complete
Digest: sha256:b54ecfc416e3d077e2e140c086dfd69a1ea31912c60792bfdee6e6939243ad79
Status: Downloaded newer image for stor.highloadcup.ru/travels/rebel_tapir:latest

Это даже не предыдущая версия, а несколько версий назад - появились ошибки которые уже были исправлены ранее.

Вместо canary в этот раз для tag использовал git hash коммита. Mac OS, версия Docker:

❯ docker --version
Docker version 17.06.0-ce, build 02c1d87
nilebox commented 7 years ago

@xammi я нашел предыдущий тест с этим же хешем: https://highloadcup.ru/solution/20669/#log Между #20669 и #22222 (в которых подхватилась одна и та же версия Docker image с одинаковым хешем) уже были прогоны #20675, #20683, #20718, #20719, #20726. Все эти версии были протестированы более 12 часов назад.

nilebox commented 7 years ago

Сегодня после успешного прогона тестов запустил рейтинговый прогон. Туда прилетела вчерашняя версия Docker image с ошибками и без оптимизации. Теперь придется ждать 12 часов до следующей попытки и надеяться, что прилетит последняя версия сборки...

SannikovDmitry commented 5 years ago

Исправлено