|
akka да. снова.
|
|||
---|---|---|---|
#18+
mayton Баг Шредингера... было бы смешно если бы я смог его репродакшн сделать стабильно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2020, 11:08 |
|
akka да. снова.
|
|||
---|---|---|---|
#18+
Есть у меня своя слабая теория. О том что логгирование слегка замедляет race conditions. Вот как-то так.. Включил логгирование - все нормас. Выключил - херак... стрельнул баг. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2020, 11:12 |
|
akka да. снова.
|
|||
---|---|---|---|
#18+
mayton Есть у меня своя слабая теория. О том что логгирование слегка замедляет race conditions. Вот как-то так.. Включил логгирование - все нормас. Выключил - херак... стрельнул баг. У вас Kafka? Помниться у меня был прикол с Kafka. Работал на домашнем ноутбуке с HDD. У меня постоянно в приложение вылетало с ошибкой. У других был SSD - все было нормально. В конце концов выяснилось, что нужно было увеличит в настройках тайминги записи. Грубо говоря hdd не успевал записать, а клиент Kafka уже проверял запись. Возможно у вас подобная ситуация. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2020, 12:07 |
|
akka да. снова.
|
|||
---|---|---|---|
#18+
Нет. Я юзал только Apache-MQ. И гонки за состояниями я наблюдал вобщем не в мессенжинговых системах. А вообще. В любых. Очень похоже на мистику, когда ты смотришь на проблему с измерительным прибором - проблема прячется. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2020, 12:12 |
|
akka да. снова.
|
|||
---|---|---|---|
#18+
mad_nazgul В конце концов выяснилось, что нужно было увеличит в настройках тайминги записи. Грубо говоря hdd не успевал записать, а клиент Kafka уже проверял запись. А это очень похоже на некорректную работу с файлами. Грубо говоря с файлом пытались работать как с базой данных. А он - не таков. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2020, 12:14 |
|
akka да. снова.
|
|||
---|---|---|---|
#18+
С точки зрения файловой системы даже close() файла еще не гарантирует полной конситентности. Нужно форсировать fsync. http://man7.org/linux/man-pages/man2/fsync.2.html А это накладные расходы для все файловой системы в целом. Вобщем Роберт Лав в своей книжке по Linux Kernel пишет про это. А если мы работаем с файлом который постоянно открыт и просто что-то дописывает в хвост то здесь работает как минимум несколько логических буферов. И очень сложно формально доказать что то что один процесс записал - второй уже может видеть. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2020, 12:48 |
|
akka да. снова.
|
|||
---|---|---|---|
#18+
mayton С точки зрения файловой системы даже close() файла еще не гарантирует полной конситентности. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2020, 13:07 |
|
akka да. снова.
|
|||
---|---|---|---|
#18+
andreykaT а может такое быть что мессадж просто пропал и всё тут.? Попробую глянуть на этот смотрящий актор. Вот здесь даже красивая форма для печенек есть https://developer.lightbend.com/start/?group=akka&project=akka-quickstart-java ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2020, 13:30 |
|
akka да. снова.
|
|||
---|---|---|---|
#18+
В туториале этот момент не акцентирован. Вот в документации есть упоминание о двух стратегиях. Это где-то инкапсулируется в конфиг всей системы. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2020, 13:59 |
|
akka да. снова.
|
|||
---|---|---|---|
#18+
Почему меня это заинтересовало. В смежом топик я ковырял протокол DHT/KAD (на сетевом уровне - это UDP). Вот. И работа с ним очень похожа на акторную модель. Клиент DHT слушает эфир. Принимает пакеты. Ретранслирует. И отдает контент файлами если его попросят. Файлы там уже передаются по другому протоколу но это не суть важно. Основная логика поиска нодов и хешей которые они хранят реализована буквально в 4 командах протокола. И у меня как-то была рассеянная идея о том что эту штуку переписать под Akka. Сценарии когда пакет битый и его невозможно обработать - можно спокойно игнорировать. Тоесть как-бы есть налицо такая-себе отказоустойчива парадигма. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2020, 14:25 |
|
akka да. снова.
|
|||
---|---|---|---|
#18+
mayton mad_nazgul В конце концов выяснилось, что нужно было увеличит в настройках тайминги записи. Грубо говоря hdd не успевал записать, а клиент Kafka уже проверял запись. А это очень похоже на некорректную работу с файлами. Грубо говоря с файлом пытались работать как с базой данных. А он - не таков. Да в старых версиях клиента Kafka, он посылал на запись, а потом проверял записано или нет. В общем какая-то корявая эмуляция синхронной/транзакционной записи. В настройках стоял таймаут, когда проверить записано или нет. Неделю потратил, чтобы догадаться что и где поменять. Причем ошибка ни разу не понятная. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2020, 14:47 |
|
akka да. снова.
|
|||
---|---|---|---|
#18+
А Dead-Letter-Queue все таки есть в Akka. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2020, 23:45 |
|
akka да. снова.
|
|||
---|---|---|---|
#18+
mayton, Само собой есть, иначе бы я не просил его проверять) Касаемо топика то проблема на 99 процентов в прикладном коде, но за неимением оного трудно телепатировать ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 00:05 |
|
akka да. снова.
|
|||
---|---|---|---|
#18+
API SQS предполагает двухфазную работу с месседжами. Сначала вычитал. Потом обработал и потом дал команду delete для тех ID msg которые обработал. На время вычитки месседжи скрыты и другие потоки их не могут видеть. Если в течение таймаута (задается) ты не дал delete, то они возвращаются обратно в очередь и становятся видны для других lambda-функций или просто логики AWS API. Преимущество этой схемы таково что неправильно обработанное сообщение будет бесконечно кувыркатся в исходной очереди пока вы не обратите на это внимание. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 10:11 |
|
akka да. снова.
|
|||
---|---|---|---|
#18+
mayton Если в течение таймаута (задается) ты не дал delete, то они возвращаются обратно в очередь и становятся видны для других lambda-функций или просто логики AWS API. Поймать сложно, но уж если поймаете - будет весело избавляться от повторной обработки одного и того же сообщения. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 11:56 |
|
akka да. снова.
|
|||
---|---|---|---|
#18+
Basil A. Sidorov mayton Если в течение таймаута (задается) ты не дал delete, то они возвращаются обратно в очередь и становятся видны для других lambda-функций или просто логики AWS API. Поймать сложно, но уж если поймаете - будет весело избавляться от повторной обработки одного и того же сообщения. Там нет гонок. Там есть аномалия - сообщение повторно зашло в цикл обработки. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 12:05 |
|
akka да. снова.
|
|||
---|---|---|---|
#18+
mayton Там нет гонок. Там есть аномалия - сообщение повторно зашло в цикл обработки. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 12:07 |
|
akka да. снова.
|
|||
---|---|---|---|
#18+
короче плюнул на эту дичь и просто прикрутил еще одно событие на которое отсылается мессадж. если не заработает - примотаю ретрайпаттерн. приложение на ваадине. оно переживет ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 12:15 |
|
akka да. снова.
|
|||
---|---|---|---|
#18+
andreykaT, это говнокод. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 12:40 |
|
akka да. снова.
|
|||
---|---|---|---|
#18+
mayton andreykaT, это говнокод. а юзать общение между слоями через методы которые не гарантируют ответа норм? пихать асинхронку там где нужна синхронка но так как асинхронка не подходит превращать ее в синхронку это норм? ) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 12:51 |
|
akka да. снова.
|
|||
---|---|---|---|
#18+
Подожди-подожди... Ты решил реформировать государство - но начал с парикмахерской. Мы-же не видели твой код. Я согласен что там может быть треш-угар и содом. Тогда его просто надо переписать. Но ретрай-паттерн предназначен для неустойчивого сетевого соединения в основном или когда логика написана так что даёт отлуп по загрузке или по таймауту. Вот почему я сильно сомневаюсь что ретрай-паттерн подходит. Кроме того он вносит некую кумулятивную составляющую и тебе надо доказать что твоя система следует идемпотентности и не боится дважды запросессить одну и ту-же бизнес логику. P.S. Вот повесишь на 1 человека 2 одинаковых кредита... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 13:20 |
|
akka да. снова.
|
|||
---|---|---|---|
#18+
если вкратце там тупо комбобокс со списком доступных опций юзеру который щас залогинен. как оно строится - рендерится вьюха, рисуется комбобокс, рисовалка комбобокса шлет акка мессадж в репозиторий, который (ахтунг!) стучится в кафку которую используют как бд, достает оттуда список доступных опций, возаращает его репе, репа шлет мессадж рисовалке комбобока через акку, рисовалка его получает и вкладывает данные в уже нарисованный комбобокс. всё, вьюха готова. но вот незадача - в той цепочке сверху происходит сбой и ответ приходит например, никогда. причем вполне ответ может и не уходить потому что гонки. решение номер один - найти где затык и устранить его. решение номер два (проще) - слать дозапрос если список пуст. если мы предполагаем в голове что акка не гарантирует доставку то оба варианта дерьмо. первый все же красивее. второй ну - на него точно так же ответ может и не приходить :) решение номер три - пилим ретрай и долбим мессаджами до тех пор пока не придет или пока долбилка не устанет. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 20:11 |
|
akka да. снова.
|
|||
---|---|---|---|
#18+
я как то в проде встречался с фиксом гонок таким образом, что чел просто в методе вызов нескольких нестед методов (рейс изза которых и возникал) просто подвинул поближе друг к другу :) оно заработало. гонки в корне конечно такое решение в принципе убрать не могло. но оно их вероятность снизило до удовлетворительного уровня. зы. согласен - решение не очень. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 20:13 |
|
akka да. снова.
|
|||
---|---|---|---|
#18+
mayton Есть у меня своя слабая теория. О том что логгирование слегка замедляет race conditions. Вот как-то так.. Включил логгирование - все нормас. Выключил - херак... стрельнул баг. да блин да. тоже такое чувство что эта теория вовсе не теория. до логирования оно хоть как то повторялось. после - перестало. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2020, 20:15 |
|
|
start [/forum/topic.php?fid=59&msg=39951867&tid=2120819]: |
0ms |
get settings: |
7ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
34ms |
get topic data: |
3ms |
get forum data: |
1ms |
get page messages: |
385ms |
get tp. blocked users: |
0ms |
others: | 304ms |
total: | 741ms |
0 / 0 |