Крэш МТ4 во время тестирования эксперта

 
Вот, ляпнулся во время теста внутри CTestGenerator::GetNext().

Кстати куда дели ветку "Опять глючит МТ4"? Я там так и не увидел никаких комментариев на посты о крэшах при вызове RtlEnumerateGenericTableLikeADirectory() из CExpertInterior::ExecuteStaticAsm(), которые в последнее время уже просто задолбали. Раньше ж их не было. Начались, кажется, с версии 203.
There has been a critical error
Time        : 2007.05.04 15:42
Program     : Client Terminal
Version     : 4.00 (build: 204, 25 Apr 2007)
Owner       : MetaQuotes Software Corp. (MetaTrader)
OS          : Windows XP Professional 5.1 Service Pack 2, v.1204 (Build 2600)
Processors  : 1, type 586, level 15
Memory      : 1048048/389792 kb
Exception   : C0000005
Address     : 005373C8
Access Type : write
Access Addr : 0C079000
Registers   : EAX=01A19008 CS=001b EIP=005373C8 EFLGS=00010206
            : EBX=01CE8B30 SS=0023 ESP=0B43BC78 EBP=00000001
            : ECX=0000000A DS=0023 ESI=0BA03C68 FS=0038
            : EDX=45A2E910 ES=0023 EDI=0C079000 GS=0000
Stack Trace : 00000000 00000000 00000000 00000000
            : 00000000 00000000 00000000 00000000
            : 00000000 00000000 00000000 00000000
            : 00000000 00000000 00000000 00000000
Modules     :
          1 : 00400000 007BE000 C:\Program Files\MetaTrader 4\terminal.exe
          2 : 10000000 0000D000 C:\Program Files\Kerio\Personal Firewall 4\gkh.dll
          3 : 5AD70000 00031000 C:\WINDOWS\System32\UxTheme.dll
          4 : 5B0A0000 00007000 C:\WINDOWS\System32\umdmxfrm.dll
          5 : 5CD70000 00007000 C:\WINDOWS\System32\serwvdrv.dll
          6 : 70A70000 00065000 C:\WINDOWS\system32\SHLWAPI.dll
          7 : 71950000 000E4000 C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.10.0_x-ww_f7fb5805\comctl32.dll
          8 : 71A50000 0003B000 C:\WINDOWS\system32\mswsock.dll
          9 : 71A90000 00008000 C:\WINDOWS\System32\wshtcpip.dll
         10 : 71AA0000 00008000 C:\WINDOWS\System32\WS2HELP.dll
         11 : 71AB0000 00014000 C:\WINDOWS\System32\WS2_32.dll
         12 : 72D10000 00008000 C:\WINDOWS\System32\msacm32.drv
         13 : 72D20000 00009000 C:\WINDOWS\System32\wdmaud.drv
         14 : 73DD0000 000FB000 C:\WINDOWS\System32\MFC42.DLL
         15 : 74720000 00045000 C:\WINDOWS\System32\MSCTF.dll
         16 : 76380000 00005000 C:\WINDOWS\System32\MSIMG32.dll
         17 : 763B0000 00044000 C:\WINDOWS\system32\comdlg32.dll
         18 : 76B40000 0002B000 C:\WINDOWS\System32\WINMM.dll
         19 : 77120000 0008B000 C:\WINDOWS\system32\OLEAUT32.dll
         20 : 771B0000 00117000 C:\WINDOWS\system32\ole32.dll
         21 : 773D0000 007F2000 C:\WINDOWS\system32\SHELL32.dll
         22 : 77BD0000 00007000 C:\WINDOWS\System32\midimap.dll
         23 : 77BE0000 00013000 C:\WINDOWS\System32\MSACM32.dll
         24 : 77C10000 00053000 C:\WINDOWS\system32\msvcrt.dll
         25 : 77C70000 0003D000 C:\WINDOWS\system32\GDI32.dll
         26 : 77D40000 00086000 C:\WINDOWS\system32\USER32.DLL
         27 : 77DD0000 0008E000 C:\WINDOWS\system32\ADVAPI32.dll
         28 : 77E60000 000E1000 C:\WINDOWS\system32\kernel32.dll
         29 : 77F50000 000A7000 C:\WINDOWS\System32\ntdll.dll
         30 : 78000000 0007F000 C:\WINDOWS\system32\RPCRT4.dll
Call stack  :
00537360:0068 [005373C8] ?GetNext@CTestGenerator
 
 

Если бы мы могли воспроизвести этот креш у себя, мы бы уже приняли меры.

Мало кто сообщает сопутсвующие крешам подробности.

 
stringo:

Если бы мы могли воспроизвести этот креш у себя, мы бы уже приняли меры.

Мало кто сообщает сопутсвующие крешам подробности.


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

Про этот крэш могу сказать только то, что я запустил тест эксперта, он отработал примерно на 70% истории и умер.
 

70 процентов истории на 1000 баров - это одно. 70 процентов на 100000 - совсем другое. Разве это подробность? Если тест идёт с самого начала тестирующей последовательности - это одно. Если тест идёт от установленной даты - совсем другое. Опять же если тестирующая последовательность была сгенерирована полностью на всех данных, а потом были включены даты, то это отличается от случая когда тестирующая последовательность была сгенерирована при включённых датах. Вы можете сообщить такие подробности?

Опять же, остаётся догадываться, что Вы делали одиночный прогон, а не оптимизацию.

 
Я как пользователь МТ понятия не имею о внутренних "различиях" в обработке всяческих установок. Поэтому сходу естественно не стал бы перечислять все нюансы.

Теперь когда я знаю, что вас может интересовать, я отвечу: тест прогонялся на истории H1 с 2005 по 2007-й; тестирующая последовательность была сгенерирована с 1999-го по 2007-й; выполнялся одиночный прогон.

Однако, по своему опыту могу сказать, что эта информация мало что вам даст. Поэтому очень рекомендую вам доработать свой крэш-лог. Невооруженным глазом видно, что он не может нормально раскрутить стек. Список модулей это конечно хорошо, но гораздо полезней иметь полный стек-трейс от функции, сгенерировавшей исключение, до первой функции своего процесса в текущей цепочке вызвов. С одной функцией в дампе стека много каши не сваришь. Хотя конечно тоже иногда помогает. Более того, советую делать мини-дамп (8-16 слов) стека для каждого фрейма, а не только последнего - тогда хотя бы частично будет видно, какие аргумента получала каждая вызванная функция.
 

Оптимизированный код, в отличие от неоптимизированного, и даёт такой маленький стек. Мы проверяли.
Невооружённым глазом видно, что креш происходит на границе 4-кбайтной страницы памяти. Либо виртуальная память не успела подгрузиться, либо кто-то (совсем в другом месте программы) прописал не свою память.

С какой регулярностью происходит данный креш?

 
Может фаирвол виноват? C:\Program Files\Kerio\Personal Firewall 4\gkh.dll Попробуйте его отключить и проверить выпадание таких явлений...

Вообще попробуйте поискать проблеммы в дравах для устройств и т.д. Модемы всякие, звук. Подозреваю что дело не в терминале.

4 : 5B0A0000 00007000 C:\WINDOWS\System32\umdmxfrm. dll
          5 : 5CD70000 00007000 C:\WINDOWS\System32\serwvdrv. dll
 
stringo:

Оптимизированный код, в отличие от неоптимизированного, и даёт такой маленький стек. Мы проверяли.

Я вас понял. Тогда еще не все потеряно. Какой компилятор используете для сборки проекта?

Невооружённым глазом видно, что креш происходит на границе 4-кбайтной страницы памяти. Либо виртуальная память не успела подгрузиться, либо кто-то (совсем в другом месте программы) прописал не свою память.

Надежность подсистемы виртуальной памяти операционной системы однозначно нельзя ставить под вопрос. Она прошла многолетние испытания сотнями тысяч приложений. Или вы имеете в виду какие-то свои собственные механизмы "виртуальной" памяти?

С какой регулярностью происходит данный креш?

Конкретно данный крэш произошел первый раз. Раньше не видел. А вот крэш, о котором я писал в ветке "Опять глючит МТ4" (несколько последних постов там были моими), происходит убийственно часто. Где-то каждый 5-8-й запуск тестера. Обычно происходит если после нескольких тестов меняются какие-либо значения на панели тестера (начальная дата, режим визуализации, пересчет тиков и т.п.).
 
xnsnet:
Может фаирвол виноват? C:\Program Files\Kerio\Personal Firewall 4\gkh.dll Попробуйте его отключить и проверить выпадание таких явлений...

Вообще попробуйте поискать проблеммы в дравах для устройств и т.д. Модемы всякие, звук. Подозреваю что дело не в терминале.

4 : 5B0A0000 00007000 C:\WINDOWS\System32\umdmxfrm. dll
5 : 5CD70000 00007000 C:\WINDOWS\System32\serwvdrv. dll

Это драйвера уни-модема, которые нужны для GPRS. Они у меня уже несколько лет. Керио тоже показал себя очень хорошо в плане стабильности - пользуюсь им уже более полугода. Более того, если бы проблемы были на этом уровне, то я более чем уверен, что страдали бы практически все приложения. А пока это только MetaTrader. Причем с одного из недавних билдов понеслось.
 

Понятно, вопрос отпал, да я заметил что это за дрова поэтому и спросил, по каждой либе сейчас в инете можно легко осведомится, особенно когда бросается в глаза:)

 

Про виртуальную память и ежу понятно. Вот мы и ищем, где мы могли прописать память. Поиск несколько облегчается (гыыы) тем фактом, что проблемы массово начались не раньше февраля.

Причина обращения: