> This smells like a concurrency issue related to file streams.
[snip]

That's what I started thinking and then I realised that the files involved are static and never written to; at least, not by intent. I'm going to set the permissions to readonly and see if anything gets triggered!

You might double check you're opening them readonly in the image, as well; e.g., via #readOnlyFileNamed:do: instead of #fileNamed:do:.

Although -- I think a concurrency issue could exist without the files being written to.  Are you forking this reading+parsing activity at all?  If so, maybe two Processes decided to pick the same file..?

Please let us know if you find the issue!