On Tue, Apr 25, 2023 at 10:04:06AM -0700, tim Rowledge wrote:
Small update to record a very slightly different event, this time running on my local x64 xubuntu server.
Processing one of the large json files again, the system halted because the first two chars of the String read from the file were incorrect. The file actually starts with {"scanRunOn but in the debugger it was showing syscanRunOn As before, redoing the file read produced the correct result.
It's almost as if the file reading is getting usurped somewhere.
This smells like a concurrency issue related to file streams.
On a Unix platform, you might have two or more FileStream instances in the image that refer to the same underlying file. In between the image and the file system, you have stdio stream buffering in the VM that might be separately mapped to those FileStreams in the image. Underneath the stdio buffering in the VM, you have an actual file system with its own buffering. Somewhere underneath that stack of optimizations and buffers and abstractions, there is probably some sort of rotating media or solid state emulation of rotating media, probably with its own buffering.
That entire mess of buffers and abstractions is likely to behave differently on your big server versus your Raspberry Pi, which might account for the hiesenbugginess of the problem. But at the end of the day, the likely source of the problem will be something that is happening in the Squeak image. Which is potentially a good thing, since that happens to be the one thing that is actually under your direct control.
Bottom line, I don't think this is anything related to the VM or the server, it's more likely be something simply related to reading and writing the file streams associated with the JSON file data.
The 'sy' at the beginning of 'syscanRunOn' might be a clue. It must have come from somewhere, and it looks like the beginning of a string like "system" or some such.
Dave