![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Доброго всем времени суток!
Небольшое отступление: уже давно в одиночку веду один большой проект (сетевое приложение, без СУБД, D2010), с недавних пор пользователи стали жаловаться на глюк, который возникает примерно 1 раз на 1000 подключений. Проблема проявляется только для пользователей с ограниченными правами доступа (собственная система разграничения прав). Самое что интересное - ответственная за это безобразие часть кода не менялась с момента внедрения программы. При дебаге отловить не удается, смотрю код - всё вроде отлично. Сетевые компоненты отлажены и оттестированы на нескольких проектах. Уже голову сломал ![]() Так как определить виновника не удалось, что я сделал сейчас: ввёл подробный лог в эту часть кода и жду следующего проявления бага. (можно, кстати, не одну неделю прождать). Вопрос: на текущий момент для поиска источника бага я использовал голову+дебаг+лог. А как (и чем) такие трудноуловимые штуковины нужно/правильно ловить? Чем пользуетесь Вы? |
|||
|
||||
mistrmax |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 77 Регистрация: 30.5.2010 Репутация: нет Всего: нет |
Может EurekaLog поможет...
|
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Может, я не совсем понял описание EurekaLog, но имхо - это то же самое, что и MadExcept - отлов исключений с показом информации где, когда, какое исключение возникло, callstack вплоть до номера строки, содержимое регистров, конфигурация компьютера и т.п. Причем - MadExcept бесплатен для некоммерческого использования (мой случай). Если так, то могу только повторить - :( |
|||
|
||||
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 9 Всего: 58 |
А что за глюк?
|
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Клиент запрашивает список персонала и не получает ответа. Как результат - вместо фамилий и кучи других параметров отображается "нет доступа". Формирование списка идет с учетом прав доступа клиента (применяются к каждому элементу списка персонала), т.е. ему отправляется только то, что он может и должен видеть. И вот оказывается, что не всегда отправляется. Ладно бы, если с правами доступа что-то напутал, тогда клиент бы постоянно видел "нет доступа". Но - отключение/подключение и всё становится на свои места. Мистика. Самое плохое - нет конкретной последовательности действий, приводящих к этому, то есть глюк не вызвать искуственно. Вот сегодня подправил пару узких моментов, которые могли приводить к такому эффекту, залил обновление на сервер. Но сказать "да, я устранил это" не могу, потому что не уверен на 100%, что вина была именно в пересмотренном участке кода. Теперь опять сижу, жду у моря погоды. Радует, что программа поставлялась "As Is", да и пользователей это не сильно напрягает - лишний раз авторизовался и работай дальше. Добавлено через 2 минуты и 8 секунд Всё-таки, возвращаясь к теме вопроса - ничего лучше связки "голова+дебаг+лог" в такой ситуации не придумать? |
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Имхо не придумать. Только связка должна быть "голова+дебаг+лог+голова+дебаг". Понимаю, что данным ответом только лишь исправляю "название", но не саму суть. Предлагаю ещё подумать над вопросом - "Какие внешние факторы и как могли бы повлиять на права доступа". -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
rodnover |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: 1 Всего: 10 |
А проблемы сети не могут вызывать такую проблему? Пакет потерялся, какая-то из функций возвратила false, которую система восприняла как "Нет доступа"? Тем более, если переподключением всё восстанавливается.
|
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Физически невозможно. TCP не должен допускать потери пакетов. Даже если это произойдет, потеря одного пакета приведет к неверной расшифровке (BlowFish) всех последующих (используется одно соединение клиент-сервер, живущее от момента запуска клиента до его закрытия) + там неплохая система с нумерацией данных, проверкой CRC, и т.д. и т.п. Любое несоответствие приведет к автоматическому закрытию соединения. Нет, данные именно не отправляются сервером. Вопрос помечаю решенным, т.к. он был общего характера, а не поиска причины конкретного глюка: Всем спасибо за участие! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |