Moose File System v 1.6.16 released
We released a new stable version 1.6.16. In this release we focused on a still better compliance with POSIX standard and fixed some bugs.
- (master) added clearing suid/sgid bits
Operation of changing the owner of the file should delete "suid" and "sgid" flags. Formally POSIX rules say that a change done by a user not having appropriate privileges (by a not super user) should delete both flags and a change done by a super user may delete the flags or may not. The implementation is dependent on the system, eg. Linux and Max OS X delete the flags while FreeBSD and OpenSolaris do not. MooseFS deletes both flags - when a change is done either by a normal or by a super user.
- (master) added check for "sticky" flag during rename and unlink operations
We added control of "sticky flag" during operations of moving (RENAME) and deleting files (UNLINK) and folders (RMDIR).
Formally POSIX rules say:
If a directory is writable and the mode bit S_ISVTX is set on the directory, a process may remove or rename files within that directory only if one or more of the following is true:
* The effective user ID of the process is the same as that of the owner ID of the file.
* The effective user ID of the process is the same as that of the owner ID of the directory.
* The process has appropriate privileges. - (master) fixed posix compatibility (removing empty directory on rename)
Until now operation RENAME didn't work when the target object existed and was a folder. POSIX rules say that if a target object is a folder and if it is empty it should be deleted and the operation should be executed.
- (master) fixed posix compatibility (proper changing ctime)
Until now change time of i-node (ctime) was not always modified. Generally speaking every change of i-node attributes should modify ctime. But there also some operations which do not change attributes but should change ctime. One of such operations is adding something or removing something from a folder.
Another operation is moving / renaming a file (RENAME). In Unix like systems file name is not an i-node attribute. But in other systems (eg. FAT32) file name can be an attribute like any other. POSIX allows here either changing ctime or not changing. We choose to change ctime to be compliant with ext3/Linux which does change the ctime too.
- (master) fixed some constants (better support for larger systems with millions of files and chunks)
Test loop is started after 900 seconds instead of 150; package size is now 500MB instead of 50MB and loop time is 4 hours not 1.
- (master) fixed error logging (logging is turning off when there are too many messages)
When there were too many errors (eg. all chunk servers were disconnected for a moment) the master server choked by writing to a logfile messages like "file temporarily unavailable" and it finally caused a situation where it didn't accept connections from these chunkservers.
- (all) fixed some OpenSolaris compile issues (mainly added -D__EXTENSIONS__ to compile flags)
OpenSolaris needs this option do compile MooseFS on this system.
- (all) fixed OpenSolaris pthreads issue (errno doesn't work correctly without proper compiler flags)
In OpenSolaris error number of the last operation (errno) by default is not thread-safe. Now the libmfscommon library was deleted and each module builds all necessary files from "mfscommon" with relevant flags/options.
- (cs) fixed hdd stats (overflow on negative time difference)
As disk operations are very short it happened in some environments that the end time of the operation was earlier than the start time (eg. when a system slightly updated its time). Now this situation in reported just as 0 in the CGI monitor.
- (man) added mfscgiserv man page, added "BIND" options descriptions to man pages
Some changes made to man pages - description of options for BINDing and a new page for mfscgiserv
2010-07-20 13:10
Michał Borychowski
1 Comments


1 Responses
huizheng | 2010-07-20
Add a comment