Size: a a a

2020 June 01

AN

Alexander N in archlinux_ru
Писал прогу одну, она через mmal рендерит изображения, используя libvcos, для картинок юзал magick++, в самой либе vcos есть переходы, использующие потенциально неинициализированные переменные
источник

R

Ruben in archlinux_ru
на мой взгляд UB довольно легко уловимы, благодаря инструменту против них
источник

R

Ruben in archlinux_ru
раньше мне тоже сложно было с ними возиться, пока не освоил инструмент
источник

AN

Alexander N in archlinux_ru
Valgrind поймал это, но сделать увы ничего нельзя
источник

R

Ruben in archlinux_ru
я с бустом на такое налетал
источник

R

Ruben in archlinux_ru
тоже внутри UB, и ничего не мог поделать. Но виноват все же оказался я
источник

AN

Alexander N in archlinux_ru
Т.к жидоbroadcom ничего не сделать вроде
источник

AN

Alexander N in archlinux_ru
По ним плачут печи Дахау за такие пропиетарные куски г
источник

R

Ruben in archlinux_ru
Я сейчас расскажу про ошибку, которую мы отлаживали месяц, и она не имеет отношения к языку. Устройство общается по tcp с сервером. Оно отправляет ему сообщение — и ждет подтверждение. Ну я сделал на одном блкирующем сокете.
Заметили что редко, раз в неделю, девайс зависает капитально. Написан код однопоточно асинхронно в основном, то есть если что-то где-то зависло — виснет основная часть функций девайса.
Оказалось, что у сервера есть баг, и он раз в неделю на запрос ничего не отвечает. Не сбрасывает и держит соединение keep-alive, никакого ответа при этом нет
источник

R

Ruben in archlinux_ru
Мне чета мозгов не хватило тогда предвидеть ситуацию, что сервер в ответ на запрос вот так может ничего и не сделать. Не сбросить, не вернуть ошибку, а просто молчать.
источник

R

Ruben in archlinux_ru
Поскольку ошибка редко вопроизводится, мы очень долго тупили в код, думали и на мьютексы, и на бесконечные циклы...
источник

Z

Zerogoki in archlinux_ru
Надо было ставить тайм-аут
источник

Z

Zerogoki in archlinux_ru
Я такие вещи как-то на автомате прописываю
источник

Z

Zerogoki in archlinux_ru
Мало ли что там с соединением будет
источник

R

Ruben in archlinux_ru
не факт что таймаут бы помог. так как tcp keep-alive успешно ходил
источник

R

Ruben in archlinux_ru
и возможно он даже был
источник

R

Ruben in archlinux_ru
с блокирующими сокетами надо осторожнее
источник

R

Ruben in archlinux_ru
то есть очень коварно. У сокета есть таймаут, но так как ходит keep-alive, таймаут не срабатывает
источник

SS

Slava Sokolovsky in archlinux_ru
Ruben
Я сейчас расскажу про ошибку, которую мы отлаживали месяц, и она не имеет отношения к языку. Устройство общается по tcp с сервером. Оно отправляет ему сообщение — и ждет подтверждение. Ну я сделал на одном блкирующем сокете.
Заметили что редко, раз в неделю, девайс зависает капитально. Написан код однопоточно асинхронно в основном, то есть если что-то где-то зависло — виснет основная часть функций девайса.
Оказалось, что у сервера есть баг, и он раз в неделю на запрос ничего не отвечает. Не сбрасывает и держит соединение keep-alive, никакого ответа при этом нет
Долбоебизм не лечится, ага
источник

SS

Slava Sokolovsky in archlinux_ru
На самом деле, самый жестокий тип ошибок это вот такой
источник