Interlisp / medley

The main repo for the Medley Interlisp project. Wiki, Issues are here. Other repositories include maiko (the VM implementation) and Interlisp.github.io (web site sources)
https://Interlisp.org
MIT License
373 stars 19 forks source link

Filebrowser can't expunge some files #1661

Open rmkaplan opened 5 months ago

rmkaplan commented 5 months ago

Describe the bug On a Mac:

I bring up the filebrowser with a bunch of files, run THINFILES to mark a subset of older versions for deletion.

Then hit expunge.

It removes a lot of them, but it leaves a bunch still marked for deletion, with a message that it can't expunge them. These are all older-version files, but not the oldest version.

Recomputing the browser list still shows them as deleted, but still can't expunge.

Closing the browser, reopening, and marking by hand one of them explicitly for deletion: still can't expunge.

But one of the marked files did disappear when I called DELFILE directly, even while the FB was open with the deletion line. And the file was gone when I recomputed the FB.

I started a fresh sysout and tried again with the file browser, and the files disappeared as expected.

I don't think I saw this behavior before I updated to the recent Maiko, with the change to improve DSK file performance. Could the Maiko change somehow be interacting with the file browser? Or is it a filebrowser problem that has heretofore gone unnoticed?

nbriggs commented 5 months ago

I thought I had seen this before I made the DSK enumeration caching change -- but I hadn't been able to reproduce it. It's possible that the caching exacerbates the problem. If you see the situation again, use "/usr/sbin/lsof -p pid" to see what files the ldex process has open and whether that corresponds to the files that won't expunge.

nbriggs commented 5 months ago

Testing with/without the caching code some more and I see some odd behavior. I'm going to push a patch to maiko's master branch right away to disable the caching and then look to see if I can find what has gone wrong.

nbriggs commented 5 months ago

I've disabled the caching and pushed the new version to maiko/master.

nbriggs commented 3 weeks ago

One of the issues in the directory caching is that it is using timestamps that are only 1s resolution. It looks as though the nanosecond resolution time stamps are available, but have different names on different Unix-y systems -- so it's not trivial to switch.