|
![]() |
#1 |
Moderator
|
У нас вчера падало при попытке исполнения следующего кода:
X++: while select vInventBatch3 join vInventDim where vInventBatch3.EraIsvInventDimId == vInventDim.inventDimId && vInventDim.InventSiteId == vSiteId && vInventDim.InventLocationId == vInventLocationId join vInventBatchPrice2 where vInventBatchPrice2 && vInventBatchPrice2.inventBatchId == vInventBatch3.inventBatchId && vInventBatchPrice2.itemId == vInventBatch3.itemId { .. } Аналогичная ситуация была когда программист написал что-то типа: Select table1 where table1.field1==constant || (table2 && table1.field==table2.field). Хотя здесь я точную форму запроса-убийцы не помню. Идея состояла в том, что сервер похоже что пытался table2 как-то засунуть в сгенерированный SQL-запрос, но сходил с ума и падал. Сообщение было таким-же. Вылечили заменив вторую половину условия на (table2.recid!=0 && table1.field==table2.field). Справедливости ради, замечу что у нас не очень свежее ядро (примерно февральское). |
|
![]() |
#2 |
Участник
|
Приведенный запрос - именно то, с чего началась тема! Если в select проверяется табличный буфер на "непустоту", а буфер на самом деле совсем пустой (null), и все это работает с клиента, то АОС валится на раз. И лечится как раз аналогично - переделкой проверки с буфера целиком на какое-то из его полей.
|
|
![]() |
#3 |
Moderator
|
Цитата:
Сообщение от gl00mie
![]() Приведенный запрос - именно то, с чего началась тема! Если в select проверяется табличный буфер на "непустоту", а буфер на самом деле совсем пустой (null), и все это работает с клиента, то АОС валится на раз. И лечится как раз аналогично - переделкой проверки с буфера целиком на какое-то из его полей.
|
|
![]() |
#4 |
Участник
|
|
|
![]() |
#5 |
Участник
|
Цитата:
В 3-ке, например, при попытке распаковать на сервере наследник RunBaseBatch-а из кривого контейнера, клиент отваливался, а серверу хоть бы что , несмотря на то что код исполнялся на сервере. |
|
![]() |
#6 |
Участник
|
Цитата:
Код: Faulting application name: Ax32Serv.exe, version: 5.0.1500.2985, time stamp: 0x4c29d4fc Faulting module name: Ax32Serv.exe, version: 5.0.1500.2985, time stamp: 0x4c29d4fc Exception code: 0xc0000005 Fault offset: 0x0000000000650359 Faulting process id: 0x834 Faulting application start time: 0x01cb21cd511ff28c Код: .00000000`00650355: 4084FF test dil,dil .00000000`00650358: 7411 jz .00065036B .00000000`0065035A: 488903 mov [rbx],rax .00000000`0065035D: 488B4630 mov rax,[rsi][030] .00000000`00650361: 483B18 cmp rbx,[rax] .00000000`00650364: 7517 jnz .00065037D Код: .00000000`00650359: 114889 adc [rax][-077],ecx .00000000`0065035C: 03488B add ecx,[rax][-075] .00000000`0065035F: 4630483B xor [rax][03B],r9b .00000000`00650363: 187517 sbb [rbp][017],dh |
|
|
За это сообщение автора поблагодарили: aidsua (2), Corel (1). |
![]() |
#7 |
Участник
|
|
|
![]() |
#8 |
Участник
|
|
|
Теги |
aoc, aos, ax2009, crash, баг, ошибка, падает, ядро |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|