Indeed, my MacPorts development VM's virtual hard disk lives on a Linux machine that is sharing a mirrored ZFS volume via NFS to the system that actually runs the VM.
-- Jason Liu On Thu, Dec 25, 2025 at 6:20 PM Jim DeLaHunt <[email protected]> wrote: > Jason: > > I have been watching this thread with interest. > > Given that "my corrupted file can't be read by anything, it seems", it > occurs to me that may be the problem is in the filesystem's representation > of the file structure, rather than in the bytes of the file. > > Or, since you mention that this file is hosted on a ZFS filesystem, and I > am only aware of ZFS filesystems in file servers rather than macOS systems, > maybe the problem is in the file-serving software running on the server or > a client on your mac. If the file is on a separate file server, one thing > to try is to get to a shell on that computer, and examine the underlying > file. Can tools on the server read the file's contents? What are the > contents there? > > I had baffling problems with apparent file corruption of a file written to > a ZFS Fileserver on a TrueNAS Core OS (based on BSD) connected by SMB. The > problem turned out to be that the file name on the server file system was > so long that the server's or client's SMB code couldn't handle it. For some > reason, other software on my mac had been able to write the file, with a > long name, to that same filesystem. Weird. My fix was to use the server's > shell to shorten the filename. Then all was well on the mac side. I don't > claim that this is your problem, just that there are a class of baffling > problems that have symptoms of corrupt file contents but are actually > caused by file system misbehaviour. > > I hope this gives you a helpful lead. Best regards, > —Jim DeLaHunt > > > On 2025-12-25 14:44, Jason Liu wrote: > > Here's what happens: > > catalina-vm% cmp -lb portlist.tcl > /opt/local/libexec/macports/lib/portlist1.0/portlist.tcl > cmp: /opt/local/libexec/macports/lib/portlist1.0/portlist.tcl: Illegal > byte sequence > > It looks like the file on my system is hosed to the point where it's not > even recognized as a text file anymore. I can't read the file using vi > either, vi shows an empty buffer with the message: > > "portlist.tcl" [readonly][READ ERRORS] 0L, 0B > > Interestingly, both the file downloaded from GitHub and the corrupted one > on my system are both exactly 10,041 bytes in size. There's no way to > checksum the files though, since my corrupted file can't be read by > anything, it seems: > > catalina-vm% openssl dgst -sha256 > /opt/local/libexec/macports/lib/portlist1.0/portlist.tcl > Read error in /opt/local/libexec/macports/lib/portlist1.0/portlist.tcl > C09D841001000000:error:8000005C:system library:file_read:Illegal byte > sequence:crypto/bio/bss_file.c:148:calling fread() > C09D841001000000:error:10080002:BIO routines:file_read:system > lib:crypto/bio/bss_file.c:150: > > -- > Jason Liu > > > On Thu, Dec 25, 2025 at 3:34 PM Joshua Root <[email protected]> wrote: > >> Diffing your portlist.tcl with a fresh copy downloaded from >> < >> https://github.com/macports/macports-base/blob/v2.11.6/src/portlist1.0/portlist.tcl> >> >> will show you exactly what has changed at least, which may give some >> further clue. >> >> - Josh >> >> On 26/12/2025 03:22, Jason Liu wrote: >> > That's a good point. In fact, the modification timestamp on >> portlist.tcl >> > is 2025-10-29 05:01, which would seem to indicate that the file hasn't >> > been touched for the past couple of months. >> > >> > The "illegal byte sequence" error does point to file corruption, but >> the >> > mystery is how that might have occurred. I did also check the ZFS >> volume >> > where the virtual disk for my MacPorts development VM is stored, and >> > none of the the weekly scrubs have repaired any bits, nor has any >> > resilvering been performed, which are typically early indicators that a >> > drive might be failing. >> > >> > -- >> > Jason Liu >> > >> > >> > On Wed, Dec 24, 2025 at 9:06 PM Ryan Carsten Schmidt >> > <[email protected] <mailto:[email protected]>> wrote: >> > >> > On Dec 24, 2025, at 18:49, Jason Liu wrote: >> >> >> >> >> >> >> >> portlist.tcl is a text file, not created by clang, and Jason >> >> didn't mention running selfupdate so there's no reason why >> >> that file should have been changed. >> >> >> >> >> >> Sorry, I forgot to mention that. This did, in fact, occur after a >> >> selfupdate. I have my MacPorts development VMs run a selfupdate >> >> every night around 5:00am-ish. >> > >> > Ok but unless that selfupdate resulted in MacPorts base being >> > updated, that file wouldn't have been touched. >> > >> > And if you run selfupdate daily then you'd have updated to the >> > latest version 2.11.6 weeks ago when it was released. >> > >> >>
