Alaska Software Inc. - XppFatal.log error when using DIRECTORY()
Username: Password:
AuthorTopic: XppFatal.log error when using DIRECTORY()
Jonathan LeemingXppFatal.log error when using DIRECTORY()
on Fri, 07 Oct 2022 08:50:06 -0600
Hi,

I have a process in my application (run on a workstation) that is using 
the DIRECTORY() function on a mapped network drive that works 97% of the 
time but on occasion crashes the application and writes to XPPFATAL.LOG. 
  This application has 7 process threads that run periodically based 
upon a timed (in addition to the main thread).  I have attached a copy 
of the XPPFATAL.LOG as well as the last few lines of a log file 
(error.txt) that I have the process write to to try and see what is 
happening within the small function that is creating the error 
(LastFileByRoot.prg).

I believe it is line 3216 which is a DIRECTORY() function call:

aDir := DIRECTORY(cDirPath)

Based upon what I am seeing in my error.txt file cDirPath had the 
following value just before the last crash:

K:\PGI\Upload\TFMCAllEngage_*.csv

This function is executed every 30 minutes and can run for weeks without 
issue and then seems to randomly crash.

I am at a loss as to what might be happening, what else I might track in 
the error.txt log file, or how to avoid the error.  I tried to simulate 
the possibility of the application not seeing the K: drive on the server 
by doing DIRECTORY("Z:\somepath\something*")... drive Z: does not 
exist... and it returned an empty array as expected.

If anyone has any suggestions / ideas I would appreciate it!

Thanks... Jonathan


LastFileByRoot.prg
XPPFATAL.LOG
Error.txt
Jim LeeRe: XppFatal.log error when using DIRECTORY()
on Sun, 09 Oct 2022 04:22:42 +0200
hi Jonathan,

> This application has 7 process threads that run periodically based upon a 
> timed (in addition to the main thread).

> Error Codes: EH: 1006 Sub: 0(0) OS: 0 XPP: 15

1006 - [BASE] - "Too many memory objects. Check if garbage collector is 
blocked."
15     XPP_ERR_MEMORY_FULL           Not enough memory or swapping space 
available

check your Memory as People seems to have Problem with "re-use" Thread.

p.s. since Vista it is recommend to use UNC-Path instead of Drive-Letter 
(using Lanmanager redirect)