AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.05.2013, 09:33   #1  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,436 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Падает AOS при расчёте спецификации
Запускается расчет "тяжелой" спецификации. Узлов в спецификации очень много. Прогресс бар рисует несколько десятков часов.
После пары суток расчета АОС просто стопится и соответственно клиент вылетает.
Пробовали запускать клиента непосредственно на сервере, где находится АОС - результат одинаковый.
Пробовали делать все на одном сервере (база, файлы приложения, АОС, клиент) - не помогает.

Сервер БД: windows server 2008r2 enterprice
Сервер с АОС: windows server 2008r2 enterprice

Текст ошибки
закладка "Общие":
Цитата:

Имя сбойного приложения: Ax32Serv.exe, версия: 5.0.1500.4570, отметка времени: 0x4db04218
Имя сбойного модуля: Ax32Serv.exe, версия: 5.0.1500.4570, отметка времени 0x4db04218
Код исключения: 0xc0000005
Смещение ошибки: 0x00000000006561b0
Идентификатор сбойного процесса: 0x%9
Время запуска сбойного приложения: 0x%10
Путь сбойного приложения: %11
Путь сбойного модуля: %12
Код отчета: %13
закладка"Подробности"
Код:
- System 

  - Provider 

   [ Name]  Application Error 
 
  - EventID 1000 

   [ Qualifiers]  0 
 
   Level 2 
 
   Task 100 
 
   Keywords 0x80000000000000 
 
  - TimeCreated 

   [ SystemTime]  2013-05-24T02:40:32.000000000Z 
 
   EventRecordID 99147 
 
   Channel Application 
 
   Computer kadvi-server5.kadvi.net 
 
   Security 
 

- EventData 

   Ax32Serv.exe 
   5.0.1500.4570 
   4db04218 
   Ax32Serv.exe 
   5.0.1500.4570 
   4db04218 
   c0000005 
   00000000006561b0

Текст сообщения, следующего за ошибкой:
Закладка "Общие":
Цитата:
Контейнер ошибки , тип 0
Имя события: APPCRASH
Ответ: Нет данных
Идентификатор CAB: 0

Сигнатура проблемы:
P1: Ax32Serv.exe
P2: 5.0.1500.4570
P3: 4db04218
P4: Ax32Serv.exe
P5: 5.0.1500.4570
P6: 4db04218
P7: c0000005
P8: 00000000006561b0
P9:
P10:

Вложенные файлы:

Эти файлы можно найти здесь:
C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_Ax32Serv.exe_9665201e2c522956a130c14e3d3e381a89c83c_1840190a

Символ анализа:
Повторный поиск решения: 0
Идентификатор отчета: 4d5f186e-c41b-11e2-821b-00151782df5c
Состояние отчета: 4
Закладка "Подробности"
Код:
- System 

  - Provider 

   [ Name]  Windows Error Reporting 
 
  - EventID 1001 

   [ Qualifiers]  0 
 
   Level 4 
 
   Task 0 
 
   Keywords 0x80000000000000 
 
  - TimeCreated 

   [ SystemTime]  2013-05-24T02:40:33.000000000Z 
 
   EventRecordID 99148 
 
   Channel Application 
 
   Computer kadvi-server5.kadvi.net 
 
   Security 
 

- EventData 

    
   0 
   APPCRASH 
   Нет данных 
   0 
   Ax32Serv.exe 
   5.0.1500.4570 
   4db04218 
   Ax32Serv.exe 
   5.0.1500.4570 
   4db04218 
   c0000005 
   00000000006561b0 
    
    
    
   C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_Ax32Serv.exe_9665201e2c522956a130c14e3d3e381a89c83c_1840190a 
    
   0 
   4d5f186e-c41b-11e2-821b-00151782df5c 
   4


Если у кого-нибудь есть какие-нибудь мысли, что с этим можно сделать, то буду премного благодарен за любые советы.
Вложения
Тип файла: Report (на него есть ссылка в сообщении, следующем за ош (23.8 Кб, 390 просмотров)
Тип файла: txt текст ошибки.txt (968 байт, 335 просмотров)
Тип файла: txt текст сообщения, следующего за ошибкой.txt (1.4 Кб, 347 просмотров)
Старый 24.05.2013, 10:27   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Если у кого-нибудь есть какие-нибудь мысли, что с этим можно сделать, то буду премного благодарен за любые советы.
Как вариант, можно поискать, на каком месте в коде он падает с access violation (оно же 0xc0000005): emeadaxsupport: Finding the X++ call stack that caused a crash. Тут еще надо не забывать, что для анализа дампа 64-битного приложения надо использовать 64-битный же WinDBG. См. также:
За это сообщение автора поблагодарили: S.Kuskov (5).
Старый 03.03.2015, 08:51   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,436 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Вроде как победил я эту багу. Чего-то определённого найти не удалось. Расчет падал на разных изделиях, на разных окружениях, и даже в разных местах одного и того же повторно запускаемого изделия. Ясно только что падение происходило только на больших изделиях.

Алгоритм расчета условно можно разделить на два этапа.
Первичное построение полного дерева узлов по спецификации изделия.
И последующий обход этого дерева с расчетом и сохранением результата.

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

А дерево действительно гигантское. Там на каждом узле при расчете чего только не сохраняется, включая табличные курсоры. Получается, что вся эта масса рассчитываемых данных, которая в итоге запишется в таблицы расчета в полном объеме будет представлена и в памяти процесса... И я задумался вот над чем. Действительно ли для нужд расчета необходимо одномоментно держать в памяти всё это дерево узлов. Я нашел место в расчете, после которого как мне кажется определенная ветка дерева уже больше не понадобится (когда расчет по ней уже произведен и соответствующие данные - сохранены). Я решил на свой страх и риск принудительно обнулять ссылку на такое поддерево.

В конце метода \Classes\BOMCalcItemLine\recalcBOM
X++:
protected void recalcBOM()
{
    ...

    this.parmChildBOMCalc(NULL); // KSM fix crash memory 11.02.2015
}
И это сработало. Изделие, которое ранее не рассчитывалось - рассчиталось!
Результаты расчета других расчетов совпали (по крайней мере у меня )
За это сообщение автора поблагодарили: Logger (10), gl00mie (5).
Теги
aos, aos crash, bom, crash, баг, производительность, спецификация

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
AX 2009 (RU5) падает AOS propeller DAX: Администрирование 7 16.06.2015 11:50
Падает AOS vazerdim DAX: Администрирование 8 30.07.2012 12:51
Падает AOS MS DAX 2009 SP1 RU6 Daiver DAX: Администрирование 21 14.02.2011 09:59
Падает AOS _AxDevel_ DAX: Администрирование 3 07.04.2009 11:33
Падает AOS Stella DAX: Администрирование 22 02.04.2008 08:18

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 11:25.