Переключение на Главную Страницу Страницы: [1] 2 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Плавающий глюк при сочетании многих условий (число прочтений - 14443 )
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Плавающий глюк при сочетании многих условий
27. Февраля 2008 :: 23:48
Печать  
Общая конструкция используемого кода описана вот тут: http://itland.ru/forum//index.php?showtopic=15821
Баг проявляется как-то вот так: http://www.1cpp.ru/bugs/show_bug.cgi?id=3591
Только процедура ОжиданиеГотовности делает "чуть" более сложную работу, чем там написано.

Проблема сильно похожа на какие-то косяки в работе с памятью.
И похоже, что глюк появляется именно в Сервис.ОбработкаОжидания(), вызванного из дополнительного глобального модуля.

Ща сооружу архив с тестовой БД, на которой это можно попробовать поймать.
  
Наверх
www  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Плавающий глюк при сочетании многих условий
Ответ #1 - 28. Февраля 2008 :: 00:30
Печать  
Адрес, где лежит тестовая БД ща вышлю АЛьФу личным сообщенияем форума.
Последовательность действий такова:

Файл - Открыть - FuncTest_ExtForms - ЗапускТестовКонфигурации.ert
"Выбрать все" - "Запустить". Дождаться появления красной полосочки. Снова нажать "Запустить". Опять дождаться красной полосочки. Потом нажать "Закрыть", потом "крестиком" выйти из 1С. Наблюдать за сворачивающимся ковриком.

Предполагается наличие формекс (практически неважно какой версии из серии 2.0.5) и 1с++ (2.5.0.3 или более свежая).

Если не получится с первого раза - стоит попробовать нагрузить память компьютера посильнее. Запустить ворд, ексель, студию и браузер например.
  
Наверх
www  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Плавающий глюк при сочетании многих условий
Ответ #2 - 17. Марта 2008 :: 00:06
Печать  
За нахождение и исправление этого бага я готов дать денег.
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Плавающий глюк при сочетании многих условий
Ответ #3 - 17. Марта 2008 :: 05:57
Печать  
fez писал(а) 28. Февраля 2008 :: 00:30:
Адрес, где лежит тестовая БД ща вышлю АЛьФу личным сообщенияем форума.

Ты сам ограничил других желающих Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Плавающий глюк при сочетании многих условий
Ответ #4 - 17. Марта 2008 :: 07:40
Печать  
artbear писал(а) 17. Марта 2008 :: 05:57:
fez писал(а) 28. Февраля 2008 :: 00:30:
Адрес, где лежит тестовая БД ща вышлю АЛьФу личным сообщенияем форума.

Ты сам ограничил других желающих Улыбка

Отправил тебе тоже.
  
Наверх
www  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Плавающий глюк при сочетании многих условий
Ответ #5 - 17. Марта 2008 :: 07:41
Печать  
Артур, намыль мне, вышлю архив, который fez через личку мне прислал.
Опоздал...
  

FormEx developer
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Плавающий глюк при сочетании многих условий
Ответ #6 - 18. Марта 2008 :: 08:17
Печать  
Федор, а скажи-ка мне, формы, которые открываются в тестах, ты закрываешь каким методом? не Форма.Закрыть?
ОбработкаОжидания случайно не для этого используется? или еще зачем-то?
Если это мое предположение верно, прекрати использовать этот вариант, и переходи к правильному Система::ЗакрытьФорму(Конт).
С ним подобных багов не будет.

ЗЫ твою базу еще не смотрел, сейчас скачаю.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Плавающий глюк при сочетании многих условий
Ответ #7 - 18. Марта 2008 :: 08:41
Печать  
Да, немного посмотрел код.
классы ТестовыйСлучайФормы и ДелегатФормы старые Печаль с ними и на конфе тестирования 1С++ были глюки.
Закачай эти классы из конфы тестирования 1С++ и вообще убери обработку ожидания, если она использовалась только для проверки закрытия форм.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Плавающий глюк при сочетании многих условий
Ответ #8 - 18. Марта 2008 :: 08:49
Печать  
На этой базе я получил стабильное падение просто при открытии/закрытии обработки и последующем закрытии Предприятия "крестиком".
Насколько понял, проблема где-то в удалении дополнительного глобальника, а само падение происходит в методе "CModuleEventManagerWithSystemEvents::SendSystemEventByExecProc" на строке
Код
Выбрать все
return m_pModule->ExecProc(iStringResourceId, bFlagNotShowErrorIfNotFoundProcFunc, value1, iParamsCount, ppValuesParams, i4, i5); 


Если закомментировать удаление доп.глобальника, то падения не происходит.
Артур, глянь, плиз эту тему подробней. Это ж твой код.
  

FormEx developer
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Плавающий глюк при сочетании многих условий
Ответ #9 - 18. Марта 2008 :: 08:52
Печать  
Цитата:
На этой базе я получил стабильное падение просто при открытии/закрытии обработки и последующем закрытии Предприятия "крестиком".

Лады, я посмотрю.
Обработка ЗапускТестовКонфигурации - просто открыть/закрыть?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Плавающий глюк при сочетании многих условий
Ответ #10 - 18. Марта 2008 :: 09:06
Печать  
Прикольно, я эту конфу в Конфигураторе даже открыть не могу Печаль
Количество объектов GDI доходит до 1600 и Конфигуратор падает Улыбка
Плагины придется отключать Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Плавающий глюк при сочетании многих условий
Ответ #11 - 18. Марта 2008 :: 09:08
Печать  
artbear писал(а) 18. Марта 2008 :: 08:52:
Обработка ЗапускТестовКонфигурации - просто открыть/закрыть?

Да. Чтобы просто загрузился и выгрузился доп.модуль. Даже запуск обработки ожидания не нужен.
  

FormEx developer
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Плавающий глюк при сочетании многих условий
Ответ #12 - 18. Марта 2008 :: 09:15
Печать  
Цитата:
artbear писал(а) 18. Марта 2008 :: 08:52:
Обработка ЗапускТестовКонфигурации - просто открыть/закрыть?

Да. Чтобы просто загрузился и выгрузился доп.модуль. Даже запуск обработки ожидания не нужен.

Нет, у меня так не падает Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Плавающий глюк при сочетании многих условий
Ответ #13 - 18. Марта 2008 :: 10:45
Печать  
Удалось немного локализовать глюк Улыбка
Алексей, 1С падает на строке ФормЕкс
Код
Выбрать все
BOOL bVarIconExists = pMod->EvalDebugExpr("FormEx_ИконкаПредупреждения", valueMessageIcon);
 


Потому что дизассемблированный вид выглядит так:
1FA11725   lea         edx,[valueMessageIcon]
1FA1172B   push        edx
1FA1172C   push        offset string "CDllMethodWrapper::GetOrigMethod"...+94h (1fa8b50c) ЧТО ЗА ХРЕНЬ ??
1FA11731   mov         ecx,dword ptr [pMod]
1FA11734   call        dword ptr [__imp_?EvalDebugExpr@CBLModule7@@QAEHPBDAAVCValue@@@Z (1fa73edc)]
1FA1173A   mov         dword ptr [bVarIconExists],eax

Совершенно не понял, что за хрень? нафига компилятор вставил эту строку ???
И так везде ниже по коду для вызовов типа pMod->EvalDebugExpr

Федор, т.е. для тебя баг просто решается - убери в глоб.ПриЗавершенииРаботыСистемы вопрос о завершении работы и 1С перестанет падать.
Естественно, это только промежуточное решение Печаль

Что за хрень?? нифига не понимаю Печаль
Стек вроде нормальный везде
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Плавающий глюк при сочетании многих условий
Ответ #14 - 18. Марта 2008 :: 11:16
Печать  
Пля!... Я ведь не на том проекте все это дело запускал, а на одном из старых архивных вариантах Печаль
Щас с начала все замучу.
  

FormEx developer
Наверх
www  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 
ОтправитьПечать