race conditions with file/folder creation?

Richard Gaskin ambassador at fourthworld.com
Tue Feb 15 22:30:24 EST 2005


Over the years I've had a small handful of WebMerge customers who tell 
me that WebMerge will sometimes report that it can't write a certain file.

In each case the error happens after a large number of files (>20,000) 
have been successfully written in the same run.

It's worth noting that the number of files successfully completed before 
the error is reported differs each time it's attempted, it differs more 
broadly from system to system, and we have many more customers who 
generate a much larger number of files than that (>50,000) without ever 
having an issue.

One customer suggested that we may have a sort of race condition here, 
in which WebMerge is attempting to write files and/or folders faster 
than the OS can keep up.

That seem unlikely given that Rev isn't threaded; when writing a file 
everything else is pretty much suspended until the OS reports back to 
the engine whether the operation was successful or not.

But since this problem is specific to the Windows family of operating 
systems, I can't confidently rule out that the OS may be reporting 
successful folder creation when in fact there was an error.  Or perhaps 
an issue in the engine in which certain types of file or folder creation 
errors do not get reported back to the calling script.

Any of you familiar with limits on the number of files that can be 
written to a given directory, or other related factors like FAT issues?

Have any of you ever had a folder not created but don't get an error 
message in the result?

And perhaps most useful:  Is there a way to make a query to find out 
more about *why* the file wasn't written other than the result's "can't 
write file"?

TIA -

-- 
  Richard Gaskin
  Fourth World Media Corporation
  Developer of WebMerge: Publish any database on any Web site
  ___________________________________________________________
  Ambassador at FourthWorld.com       http://www.FourthWorld.com


More information about the use-livecode mailing list