[Aquamacs-devel] lock files cause Aquamacs to hang
David Reitter
david.reitter at gmail.com
Wed Oct 21 03:31:15 UTC 2009
Pete,
that's a pretty good analysis so far.
Yes, the dump would help. You can also run Aquamacs under gdb and
interrupt the process when the hang occurs. "bt" gives you a backtrace.
I would run it with "run -Q" from gdb.
Also, does this not occur with 1.9?
Have you tested it only on SMB shares, or also on normal AFP ones?
- David
On Oct 20, 2009, at 4:59 PM, siemsen at ucar.edu wrote:
> I still have this problem, which I previously mistakenly referred to
> as a problem with auto-save files. It's really a problem with lock
> files. It happens in version "2.0preview2" and "2.0dev".
>
> The problem is: when editing network-mounted files, Aquamacs doesn't
> process lock files correctly. If I open an existing network-mounted
> file named abc.txt, Aquamacs creates a lock file in the same
> directory as the source file, on the remote system. The lock file
> is a symbolic link named ".#abc.txt". An ls command shows
>
> .#abc.txt -> siemsen at galway.scd.ucar.edu.12194
>
> As described in the "File Locks" section of the "GNU Emacs Lisp
> Reference Manual", the link points back to the Aquamacs process on
> my Mac, which is named galway.scd.ucar.edu. The process is running
> as user siemsen, and the PID is 12194.
>
> So far, so good. The problem is that when I finish editing the
> file, the lock file isn't deleted. When I try to edit the file
> later, Aquamacs lets me open file, but hangs the instant I try to
> modify it. Aquamacs locks up with the spinning wheel of death, and
> I have to Force Quit. If I then go to the remote system and
> manually delete the lock file, Aquamacs can edit the file with no
> problems.
>
> I don't see lock files created when I edit files on my local system
> - only network-mounted files. The manual says I should be able to
> test whether a file is locked with file-locked-p, but that function
> doesn't seem to be implemented in Aquamacs. Could it be that
> Aquamacs doesn't implement file locks, but something different
> happens with network-mounted files?
>
> FWIW, I found the code for filelock.c, which implements file-locked-
> p and unlock-buffer. I see that unlock-buffer calls the C function
> named unlock_file, which uses a call to unlink to delete lock
> files. Perhaps unlock_file should check the status code returned by
> unlink.
>
> This is easily repeatable, and quite annoying. I'd be happy to
> supply the dump from Force Quit if it would help.
>
> - Pete
>
>
> Begin forwarded message:
>
>> From: siemsen at ucar.edu
>> Date: September 30, 2009 3:56:27 PM MDT
>> To: Aquamacs Developers <aquamacs-devel at aquamacs.org>
>> Subject: Re: [Aquamacs-devel] auta-save files cause Aquamacs to hang
>> Reply-To: siemsen at ucar.edu, Aquamacs Developers <aquamacs-devel at aquamacs.org
>> >
>>
>> I'm using version "2.0preview2".
>>
>> My attempt to turn off auto-save didn't work. Given an existing
>> large (453789 bytes) file named abc.txt on a remote system, I did
>> this:
>>
>> 1. On my Mac, exited Aquamacs, just to set up state for the test
>> 2. On the remote system, manually deleted the leftover auto-save
>> file named .#abc.txt, just to set up state for the test
>> 3. On my Mac, started Aquamacs
>> 4. Did C-x C-f to open the remote file named /Volumes/xxx/abc.txt
>> 5. Did M-x auto-save-mode to toggle auto-save off. Aquamacs said
>> "Auto-save off (in this buffer)"
>> 6. Modified the buffer.
>> 7. On the remote system, did "ls -alt" and found
>>
>> lrwxrwxrwx 1 siemsen datacomm 33 Sep 30 15:19 .#abc.txt ->
>> siemsen at galway.scd.ucar.edu.12194
>>
>> My Mac is named "galway". So Aquamacs created the auto-save file,
>> despite what I did in step 5. This seems to be a bug.
>>
>> 8. On my Mac, did C-x C-s
>> 9. On the remote system, did "ls -alt" and found a newly written
>> abc.txt and also .#abc.txt
>>
>> So Aquamacs didn't delete the auto-save file. This seems to be a
>> bug. My delete-auto-save-files variable has the default value of
>> 't'.
>>
>> 10. On my Mac, restarted Aquamacs.
>> 11. Opened the remote file again.
>> 12. Tried to modify the buffer. Aquamacs hung with the spinning
>> ball of death. I had to use Force Quit to kill it.
>>
>> I get different behavior if I replace step 10 with "C-x k". If I
>> do that, Aquamacs behaves normally in step 12.
>>
>> BTW, I tried to figure this out, with no luck. The GNU Emacs
>> manual says that the names of auto-save files are constructed using
>> the contents of auto-save-file-name-transforms. In Aquamacs, that
>> variable seems to want to put auto-save files in a directory named /
>> var/folders, which doesn't exist on my Mac. I can only assume that
>> Aquamacs has it's own mechanism for creating auto-save files, and
>> ignores auto-save-file-name-transforms.
>>
>> -- Pete
>>
>>
>> On Sep 28, 2009, at 5:18 PM, David Reitter wrote:
>>
>>> What version?
>>> Have you tried to turn off auto-save?
>>>
>>> On Sep 28, 2009, at 5:31 PM, Pete Siemsen wrote:
>>>
>>>> In my group at work, we share a Linux server that contains
>>>> hundreds of files. We have many Windows users in the group, so we
>>>> use SAMBA to share the filesystems on the server. I SAMBA-mount
>>>> the server's filesystems on my Mac. I have no trouble accessing
>>>> the files on the server, using paths that start with '/Volumes/'.
>>>>
>>>> No problem, it's worked for years, except now I'm trying to stop
>>>> using TextMate and start using Aquamacs.
>>>>
>>>> Aquamacs wants to write auto-save files, with names that start
>>>> with '.#', in the same directory as each file being edited.
>>>> Aquamacs is supposed to delete the auto-save files whenever I
>>>> close the real file. For some reason, it's not happening. The
>>>> auto-save files aren't being deleted. When I try to re-edit a
>>>> file that has an auto-save file, Aquamacs lets me open it, but as
>>>> soon as I try to modify the buffer, Aquamacs hangs. I get the
>>>> spinn_______________________________________________
>>>> Aquamacs-devel mailing list
>>>> Aquamacs-devel at aquamacs.org
>>>> http://lists.aquamacs.org/mailman/listinfo.cgi/aquamacs-devel
More information about the Aquamacs-devel
mailing list