Problems with Samba 2.2.0 on Solaris 8 with quotas

David Collier-Brown davecb at canada.sun.com
Thu Jun 14 14:21:47 GMT 2001


Shirish Kalele wrote:
> This might not be related to Toni's problem, but I also found some
> redirectors that did this in such a scenario (nearing quota limits or disk
> space limits):
> 
> 1. First they try doing a zero-byte write to an offset equaling the size of
> the file being written (copied).
> 2. NTFS seems to allocate space at this point itself, so NT servers return
> an NT_STATUS_DISK_FULL error here.

	Yes, that's explicitly what we saw happening
	the first time I got involved with this.

	Jeremy and the team doped out the rest...
> 3. The client then sets the delete-on-close flag on the file.
> 4. Some RDRs then close the file. Others seem to try to open the file again
> and expect to see an NT_STATUS_DELETE_PENDING error denied them the open.
> This convinces them that the flag has been set and they then close the file.
> 
> Samba 2.2.0 currently returns a disk-full error when the actual data is
> being written to the file and when this write fails with a quota-exceeded or
> no-space error from the OS.
> 
> However, some redirectors that do the above seem to depend only on the
> zero-byte write to decide if there is enough space or not. They don't handle
> failures at a later point (when the actual data writes occur). This leaves
> sparse files on the server.

	This is a lot better than the problem looked the
	first time we saw it: we suspected we'd have to
	either expand every file when asked, keep around
	a "free space left" datum from statvfs or fail.
	
	The description above would allow us to do one
	check (fstafvfs, for example) if and only if there
	was a zero-byte write at the end of the file, 
	not have to keep any information, and just return
	a NO_SPACE failure...

	...  a quick test with gethrtime on Solaris showed that
	the overhead of fstatvfs is extremely low, as the superblock
	is in memory . It's smaller that my timer's resolution!

> I know Jeremy thinks doing space checking on zero-byte writes would slow
> things down. But how frequent are these zero-byte writes?

	I don't know that, nor do I know the speed of the 
	SGI/AIX/HPUX/whatever equivalents of fstatvfs. I
	suspect they're pretty blinding, but I don't know that.

--dave
-- 
David Collier-Brown,           | Always do right. This will gratify 
Performance & Engineering Team | some people and astonish the rest.
Americas Customer Engineering  |                      -- Mark Twain
(905) 415-2849                 | davecb at canada.sun.com




More information about the samba-technical mailing list