One customer is getting sporatic errors. They have had this happen about twice a month or so (doing several hundred to a thousand or so invoices a month).
Sell_Items is the main invoicing routine (quite long with numerous functions called within it). Normally with an error i can get a clue from the call stack, but here it is garbage (same with other times).
I can see that error 41 is the internal data structures... but cant find info on subcode 5 and i dont have a clue how to find the issue.
thanks
-------------------------
Error writing sell_itemsfor invoice 10425274
Date: 10/27/11 Time: 08:30:35
------------------------------------------------------------------------------
oError:args :
-> VALTYPE: N VALUE: 2
-> VALTYPE: C VALUE:
-> VALTYPE: C VALUE:
-> VALTYPE: C VALUE:
oError:canDefault : N
oError:canRetry : N
oError:canSubstitute: Y
oError:cargo : NIL
oError:description : Internal data structures corrupted
oError:filename :
oError:genCode : 41
oError:operation : SELL_ITEMS
oError:osCode : 0
oError:severity : 2
oError:subCode : 5
oError:subSystem : BASE
oError:thread : 1
oError:tries : 0
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
À…¾0(1237116)
internal data structures corrupted issue
internal data structures corrupted issue
There are only 10 kinds of people - those who understand binary and those who don't 

Re: internal data structures corrupted issue
Do you use any SET RELATIONs in your code?
The eXpress train is coming - and it has more cars.
Re: internal data structures corrupted issue
yes, i have a few dc_setrelations... is that a problem?
There are only 10 kinds of people - those who understand binary and those who don't 

Re: internal data structures corrupted issue
BruceN wrote:I can see that error 41 is the internal data structures... but cant find info on subcode 5 and i dont have a clue how to find the issue.
0005 - [BASE] - ???
Associated with: "41:Internal data structures corrupted"
Caused by: Various things, including: "Memory(0)", ":UpdateBuffer()",
"AppEvent()", "ValType()", etc.
Remarks: Also in Fatal Error Logs: "EH: 5"/"OS: 0"/"XPP: 41",
"Function: atmStartGCThread(void*)", "Module: ATM"
greetings by OHR
Jimmy
Jimmy
Re: internal data structures corrupted issue
One of the more common IDSC problems I have seen over the years is caused by closing a database that has a relation set to it.
The eXpress train is coming - and it has more cars.
Re: internal data structures corrupted issue
Thanks... I'll check to see if we close the related database when we close the primary one (and close the related one first, I assume).
There are only 10 kinds of people - those who understand binary and those who don't 

Re: internal data structures corrupted issue
Yes, always close the related databases first.
The eXpress train is coming - and it has more cars.
Re: internal data structures corrupted issue
Hi,
You can replace your close command or function with the preprocessor to a new function. I have an AboCLoseArea() which replace dbclosearea().
This way it is modified after recompiling your code.
You can replace your close command or function with the preprocessor to a new function. I have an AboCLoseArea() which replace dbclosearea().
Code: Select all
Function ABOCloseArea(cAlias)
*****************************
LOCAL bErrorHandler
if empty(cAlias)
cAlias := Alias()
endif
if !empty(cAlias) .And. Select(cAlias) # 0
bErrorHandler := ErrorBlock({|e| Break(e)})
BEGIN SEQUENCE
(cAlias)->(DbClearRelation())
(cAlias)->(DbCloseArea())
END SEQUENCE
ErrorBlock(bErrorHandler)
endif
return nil