?

Log in

No account? Create an account
Дважды мудак [entries|archive|friends|userinfo]
Декларативное рулит

Site Meter

[ website | Мой сайт ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Открыл для себя Tox [июл. 18, 2018|18:59 pm]
Andy Melnikov
[Tags|, ]

А чо скажете по поводу Tox?

Ссылка4 комментария|Оставить комментарий

Новости перловодства-11 [июл. 18, 2018|18:16 pm]
Andy Melnikov
[Tags|, ]

Сегодня день прошёл в каких-то метаниях между различными бранчами AnyEvent::Gearman и Test::TCP

У Test::TCP объявился активный пользователь, и перетестировал свои старые багрепорты против git HEAD. В результате выяснилось, что мой фикс с обновлением версии Test::Simple не нужен, так как HEAD работает и так. Закрыл старый пулл-реквест, в котором форсил обновление через метаданные, и открыл новый, в котором убрал руное обновление в аппвеере.

Заодно обнаружил два PR, которые упали только по причине падения самого Тревиса. В тревисовской имплементации перлового CI в 2018 году распаковывают тарболл в /, по заветам слеквари.

У AnyEvent::Gearman поудалял лишние ветки, поскольку всё в ветку all-fixes уже замержено.

Раскопал старую ветку с чужими изменениями (полезными), которые не проходили тесты. Оказалось, что они в целом тесты проходят, но в тревисе не проходят только тесты на 5.24 и 5.26, причём вовсе не по классическому сценарию ". убрали из @INC", а один тест вешается. Я так думаю, это гейзенбаги, в обилие известные у Test::TCP, в новых версиях просто обрели стабильность.

Отписал в Danga::Socket чуваку, который 12 дней назад обещал написать админам, чтобы мне выдали права. Пока молчит.

На продакшене странные зацикливания сделали вид, что пропали. После обновления ESXi (Карл!).
СсылкаОставить комментарий

Новости перловодства-10 [июл. 17, 2018|13:35 pm]
Andy Melnikov
[Tags|]

Вчера победил проблему с Gearman::Server. Мне нужен AnyEvent::Gearman, который в тестах использует другую реализацию (Gearman::Server). А этот Gearman::Server имеет 3 транзитивные зависимости - Danga::Socket, Proc::Guard и Test::TCP, которые все три поломаны на винде.

Ну и так как я их все починил, то Gearman::Server должен был заработать с моими форками зависимостей. А вот хуй! Он не работал, а выдавал совершенно дебильную ошибку во время первого теста.

Ну и я перепробовал 100500 способов починки, пока вчера не понял, что это баг в моём форке. Я там сделал версию 1.62-TRIAL, и оказалось, что модули с такой версией работают, только если при импорте не указывать минимальную версию. И эту минимальную версию действительно нигде не указывают кроме.. того самого теста Gearman::Server.

В-общем, вчера я переаплоадил исправленный форк Danga::Socket, и Gearman::Server прошёл первые два теста и упал на третьем. Который содержит exec(), который на винде запрещён. В-общем, надо думать теперь, можно ли это починить, и если да - то как.

С утра меня обрадовал мейнтейнер Test::TCP, замержив мой PR c файликом .appveyor.yml. Замёржил, но в своей репе не включил. Отписал ему, посмотрим.

Теперь осталось, чтобы он замёржил реквест, поднимающий нижнюю границу версии Test::Simple
Ссылка5 комментариев|Оставить комментарий

Особенности национального рефкаунтинга [июл. 16, 2018|20:45 pm]
Andy Melnikov
[Tags|, ]

use EV;
use AnyEvent;

sub main {
        my $w;
        $w = AnyEvent->timer(after => 1, cb => sub {
                undef $w;
                warn 42;
        });
}

main();
EV::Loop();
В этом (исправном) коде всё прекрасно! Его можно поломать и починить более чем одним способом. Часть из поломок ловится включением ворнингов, а часть нет.

Операции поломки-починки:

- включить ворнинги
- убрать main() и вынести тело в топ-левел
- Инициализировать $w там же, где декларируем
- убрать undef $w
СсылкаОставить комментарий

Новости перловодства-9 [июл. 16, 2018|20:00 pm]
Andy Melnikov
[Tags|, ]

На продакшене начал проявляться баг в виде странного зависания и отъедания одного ядра. Причём ещё до того, как я задеплоил. Хез как такое ловить, подозреваю регрессию в Event, буду пробовать его откатывать, благо у меня все ходы записаны, старые бинарники сохранены. Ну, а может, и переходить на EV (раньше мне было в лом его собирать, а сейчас есть CI для этого).

Улучшенный скрипт CI обнаружил, что в перле 5.28 Test-TCP работает, а в 5.24 - виснет. На гитхабе висят давно связанные баги (про винду, но не про зависания), из которых следует, что баг в зависимости Test::Simple. Проблема этой зависимости в том, что она идет в комплекте с перлом, ну и в старых перлах она по умолчанию, как оказывается, глючная.

Обновил метаданные, чтобы требовали более свежую версию - и оп-ля, билд позеленел без ручного обновления.

Ах да, обнаружил ещё баг в пекедже перла для chocolatey. Некоторые старые версии можно поставить только с ключиком --checksum ABABABABABA93AF. Карл!
СсылкаОставить комментарий

navigation
[ viewing | most recent entries ]
[ go | earlier ]