Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с ошибками в критических приложениях 
:(
    Опции темы
baldina
Дата 16.1.2015, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



drug007, ответ кроется в вопросе: если недостаток релиза в отсутствии диагностики, её надо добавить (логи).
PM MAIL   Вверх
drug007
Дата 16.1.2015, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 3.11.2011

Репутация: нет
Всего: 1



Цитата(baldina @  16.1.2015,  16:31 Найти цитируемый пост)
drug007, ответ кроется в вопросе: если недостаток релиза в отсутствии диагностики, её надо добавить (логи). 

Лучше мне пока на ум ничего и не пришло. Но тут меня смущает то, что когда у тебя приложение упало в ассерте сразу понятно, где искать. А при логировании это уже не так очевидно. Т.е. роль логов резко вырастает, придется их семантику продумывать тщательно - потому что обычно логи ведутся на всякий случай по остаточному принципу... В общем логи либо оставлять в релизе диагностические средства, которые не критичны для приложения (не влияют на скорость или влияют некритично и т.д.). Получается два варианта?
PM MAIL   Вверх
baldina
Дата 16.1.2015, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



Цитата(drug007 @  16.1.2015,  16:48 Найти цитируемый пост)
 когда у тебя приложение упало в ассерте сразу понятно, где искать.

запишите в лог то же самое

Цитата(drug007 @  16.1.2015,  16:48 Найти цитируемый пост)
роль логов резко вырастает

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

drug007, у вас наверняка имеется в виду какая-то конкретная задача (или класс задач). опишите, и давайте исходить из этого. в любом случае получится компромисс, вопрос в том как расставить приоритеты.
PM MAIL   Вверх
xvr
Дата 19.1.2015, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Мне кажется, что проблема не в наличии или отсутствия логов и/или ответа на вопрос - падать или не падать. Проблема более глобальная - у вас есть проверка/assert (положим что она осталась и в релизе), и есть требование, что бы программа обладала максимальной живучестью, т.е. не падала.
Что делать если assert стработал - правильно функуционировать программа уже не может, но и падать нельзя. И что делать?
Проблемы с отказами и сбоями в отвественных приложениях обычно решают дублированием, но в данном случае это не сработает - если ошибка была в программе, то и дубль так же упадет. Тут может помочь только дублирование на уровне функционала, т.е. параллельно работающая фетка с той же функциональностью, но возможно с какими то недостатками (типа недостаточной производительности или большим требованием к ресурсам), что бы при выходе из строя основной ветки ее функции мог подхватить дубль (и не упасть при этом). Конечно дубль должен быть максимально простым и дубовым. Увы не всегда такой можно сделать  smile 

PM MAIL   Вверх
drug007
Дата 19.1.2015, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 3.11.2011

Репутация: нет
Всего: 1



Цитата(baldina @  16.1.2015,  21:05 Найти цитируемый пост)
drug007, у вас наверняка имеется в виду какая-то конкретная задача (или класс задач). опишите, и давайте исходить из этого. в любом случае получится компромисс, вопрос в том как расставить приоритеты.

Класс задач простой - улучшить поддержку развернутого приложения, в частности упростить работу с ошибками, обнаруженными в релизе. Банально, у нас нет возможности тестировать на всем оборудовании. Определенная работа проведена по достижению воспроизводимости ошибки, чтобы логи, записанные у пользователя, позволяли однозначно воспроизвести ситуацию у нас. Теперь надо определиться с политикой, как реагировать на ошибки логики - когда мы точно знаем, что логика нарушена, но исправить ее не может. Раньше я просто ронял приложение, но сейчас есть противоречащее требование. Вот и думаю, как и волка накормить, и овец спасти.
Цитата(xvr @  19.1.2015,  14:56 Найти цитируемый пост)
Мне кажется, что проблема не в наличии или отсутствия логов и/или ответа на вопрос - падать или не падать. Проблема более глобальная - у вас есть проверка/assert (положим что она осталась и в релизе), и есть требование, что бы программа обладала максимальной живучестью, т.е. не падала.
Что делать если assert стработал - правильно функуционировать программа уже не может, но и падать нельзя. И что делать?
Проблемы с отказами и сбоями в отвественных приложениях обычно решают дублированием, но в данном случае это не сработает - если ошибка была в программе, то и дубль так же упадет. Тут может помочь только дублирование на уровне функционала, т.е. параллельно работающая фетка с той же функциональностью, но возможно с какими то недостатками (типа недостаточной производительности или большим требованием к ресурсам), что бы при выходе из строя основной ветки ее функции мог подхватить дубль (и не упасть при этом). Конечно дубль должен быть максимально простым и дубовым. Увы не всегда такой можно сделать

Да, вы верно описали ситуацию. Получается есть еще третий вариант - дублирующий код. Кстати, в некоторых ситуациях такой подход очень даже обоснован, спасибо за подсказку.
PM MAIL   Вверх
baldina
Дата 19.1.2015, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



Цитата(drug007 @  19.1.2015,  15:33 Найти цитируемый пост)
Класс задач простой - улучшить поддержку развернутого приложения

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

Это сообщение отредактировал(а) baldina - 19.1.2015, 17:32
PM MAIL   Вверх
xvr
Дата 20.1.2015, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Нашел несколько статьей на эту тему:

http://www.billpetit.com/Papers/Petit019.pdf


Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  00056848.pdf.zip 555,79 Kb
PM MAIL   Вверх
xvr
Дата 20.1.2015, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Еще одна

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  00056849.pdf.zip 665,24 Kb
PM MAIL   Вверх
xvr
Дата 20.1.2015, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



И последняя


Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  00056850.pdf.zip 898,34 Kb
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0648 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.