XFS SoftAssert when doing hard links in AFS?

Christopher Allen Wing wingc at engin.umich.edu
Fri Mar 10 10:01:08 CET 2000


When running the pine mail program out of an AFS home directory, I
sometimes get kernel messages similar to the following:

XFS SoftAssert: existing inode (ce00db58, fid 1.537142509.6550.66885) !=
installing sent-mail.lock(c89aeaf0, fid 1.537142509.6550.66888)

(Linux 2.2, Arla 0.31)


This happens when updating mailboxes in AFS. Pine uses a lockfile scheme
with hard links to do atomic operations. This is the sequence of system
calls that causes the error: (observed with strace)


lstat("mailbox-name.lock")

	(check to see if the lock is there; it's not)

open("mailbox-name.lock.UNIQUENAME", O_WRONLY|O_CREAT|O_EXCL, 0666)
close(fd)

	(pine creates a temporary file)

link("mailbox-name.lock.UNIQUENAME", "mailbox-name.lock");

	(the lock attempt, pine tries to hardlink the temporary file to
	the lockfile)

stat("mailbox-name.lock.UNIQUENAME")

	(pine checks to see if the link count of the temporary file is 2,
	if so it assumes it got the lock)

unlink("mailbox-name.lock.UNIQUENAME")

	(remove the temp file)

chmod("mailbox-name.lock", 0666)

	(make the lock file linkable for others)




I've seen this in 0.30, 0.31, and the snapshots around both.

Earlier versions were fine. 0.27 definitely does not produce this error.

I can do more research into this problem if anyone is interested and can
help guide me.


Thanks,

Chris Wing
wingc at engin.umich.edu






More information about the Arla-drinkers mailing list