Page 1 of 1

stack overflow

Posted: Sat Jul 02, 2011 9:08 am
by BruceN
We have a customer doing beta testing on a new version with some new features. One of those newbies is recurrent invoicing with credit card processing. In running the routine (for several hundred customers) they get this crash:
(alaska 355, exp 254)

FATAL ERROR LOG
Stack Overflow
SYS Thread-ID: 800
Module: EH
Error Codes: EH: 12 Sub: 0(0) OS: 0 XPP: 16
Call Stack of Thread 1 (632):
@XBPDIALOG@I@CREATE(506)
@DC_GETLIST@I@INIT(805)
DC_READGUI(101)
DC_MSGBOX(283)
MRE_CURRING(8688)
RE_CURRING(8486)
MENUDISPATCHER(748)
CALL_PROC(699)
(B)SALEMENU@0059(652)
MAIN(400)
Call Stack of GUI Thread (800):
Call Stack of Thread 3 (1432):
@JD_MAGICHELPTHREAD@I@EXECUTE(67)
(B)@JD_MAGICHELPTHREAD@I@INIT@0000(36)
File: C:\pos\posv9\Config\posv9.exe
TimeStamp: 20110701 11:34
End of FATAL ERROR LOG.

I'm at a loss as to how to effectively debug this.

I'm guessing that the 'stack' (whatever is 'stacked') is getting filled with something from each invoice that isn't getting destroyed/released or whatever gets done to remove something from the stack.

Is there a way to view the actual 'stack' during running to see what is getting thrown on (in?) it repetitively until it overflows. Is there a better way to find the problem?

As always, I humbly bow before the wizards :)

bruce

Re: stack overflow

Posted: Sat Jul 02, 2011 11:34 pm
by Auge_Ohr
hi,
BruceN wrote:SYS Thread-ID: 800
Module: EH
Error Codes: EH: 12 Sub: 0(0) OS: 0 XPP: 16
Call Stack of Thread 1 (632):
...
Call Stack of GUI Thread (800):
Call Stack of Thread 3 (1432):
@JD_MAGICHELPTHREAD@I@EXECUTE(67)
(B)@JD_MAGICHELPTHREAD@I@INIT@0000(36)
File: C:\pos\posv9\Config\posv9.exe
i would say it happend in GUI Thread (800). try to increase STACK in your *.XPJ

... btw. where are your MagicHelp come from ... DBF or Array ?

Re: stack overflow

Posted: Mon Jul 04, 2011 12:58 am
by Tom
"Module EH" means the error is caused by the error handler. You may have an endless iteration/recursion there, maybe in your "errorsys.prg". The error causing this is something else.

Re: stack overflow

Posted: Mon Jul 04, 2011 2:41 am
by Auge_Ohr
Tom wrote:"Module EH" means the error is caused by the error handler. You may have an endless iteration/recursion there, maybe in your "errorsys.prg". The error causing this is something else.
Yes ... this is the Reason why he got a XppFatal.log but the Error itself happend in other Thread.

Error is in SYS Thread-ID: 800 so it is the GUI Thread ... most seen with MagicHelp / DBF and own Thread

@bruce : did you have some own Eventhandler or did you use 4th Parameter "Timeout" in AppEvent() ?