"SfR Fresh" - the SfR Freeware/Shareware Archive

Member "chironfs-1.1.1/doc/changelog" of archive chironfs-1.1.1.tar.gz:


As a special service "SfR Fresh" has tried to format the requested source page into HTML format using source code syntax highlighting with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. That can be also achieved for any archive member file by clicking within an archive contents listing on the first character of the file(path) respectively on the according byte size field.
    1                    =================================
    2                    Release Notes for ChironFS 1.1.1
    3                              June 21, 2008
    4                    =================================
    5 
    6 This is the second beta release of the Chiron FS 1.1 code 
    7 base. There is one known bug right now. It is the bug related
    8 with massive delete described below. There is a fix for it,
    9 but it is still in experimental status. Until now, no one has
   10 reported failures related to this bug. If you find any bugs, 
   11 please report them asap, with as many details as you can: 
   12 what you were doing, what you have installed in the system, 
   13 the command line you invoked ChironFS, your current directory,
   14 etc.
   15 
   16 Bugs fixed since ChironFS 1.1.0:
   17 
   18   o ChironFS could not locate the correct place where chirctl was
   19     when called using the environment variable $PATH to find it.
   20     Now chirctl is called in the same way as ChironFS, leaving
   21     this work to $PATH searches.
   22 
   23 ######################################################################
   24 Changes
   25 #######
   26 
   27 Changes since ChironFS 1.1.0
   28 ---------------------
   29 
   30   o ChironFS could not locate the correct place where chirctl was
   31     when called using the environment variable $PATH to find it.
   32     Now chirctl is called in the same way as ChironFS, leaving
   33     this work to $PATH searches.
   34 
   35 
   36 Changes since ChironFS 1.0.0
   37 ---------------------
   38 
   39   o Added the --ctl (or -c) option which allows to mount a pseudo-filesystem
   40     (like /proc) to control the behavior of the Chiron filesystem being mounted.
   41     Currently, it's only possible to show the status of the replicas and change
   42     their status. Dynamically generated nagios plugin scripts are provided too.
   43   o Updated the howto in the chapter 5, explaining the use of the --ctl option.
   44 
   45 
   46 Changes since ChironFS 1.0RC9
   47 ---------------------
   48 
   49   o The version naming convention: now ChironFS will use a Linux Kernel like
   50     versioning scheme. So, the upcoming version 1.1.x will be the development
   51     version of the upcoming 1.2.x stable one.
   52   o Changed the debug code on *BSD versions to get the same system information
   53     that Linux version gets. It is needed because the next ChironFS release
   54     will need that info in order to resynchronize failed replicas.
   55   o Integrated patch sent by Yen-Ming Lee, porting ChironFS to FreeBSD.
   56   o Integrated patch sent by Antti Kantee, porting ChironFS to NetBSD.
   57 
   58 
   59 Changes since ChironFS 1.0RC8
   60 ---------------------
   61 
   62   o Fixed bug #8 reported at http://code.google.com/p/chironfs/issues/detail?id=8
   63     where an unprivileged user was being able to touch a file which it did not have
   64     the rights to write. Thanks to Neal Becker for reporting it.
   65   o Fixed a readlink bug, where the number of bytes of the linked filename was being
   66     wrong reported.
   67   o Fixed function access, the access were not being checked against the ruid and rgid
   68     of the caller process, but of the mounting user.
   69   o Fixed a memory leak bug.
   70 
   71 
   72 Changes since ChironFS 1.0RC7
   73 ---------------------
   74 
   75   o Fixed a bug reported by email by Patrick Chevalier, where ChironFS
   76     was giving wrong error message when the mount point path did not 
   77     existed. Thanks to him for the report.
   78   o Fixed issue #7 reported at http://code.google.com/p/chironfs/issues/detail?id=7
   79     where ChironFS wasn't being specific in the error message. Thanks to
   80     Alexandre Fernandes for reporting it.
   81   o Fixed a bug reported by email by Graham Toal where the hash address of 
   82     the file descriptor table could be a negative number. The hash table
   83     function was changed to the Robert Jenkins' 32 bit integer hash function
   84     as found in the Twang's doc at http://www.concentric.net/~Ttwang/tech/inthash.htm
   85     just adapted to the C language. The 64 bit mix function was taken from
   86     there too. The size of the hash table was changed too it was a waste of memory
   87     allocating a table of file-max size because file-max is a system wide parameter
   88     and if all the file-system would be ChironFSed and with a minimal of two replicas
   89     we would need only 33% of the table space. Since the new hash functions are much
   90     better distributed and are good enough until 80% of the space used, then I
   91     decided to use a file-max proportional allocation, using the maximum power of 2
   92     less than 50% of file-max. The stats showed a low collision rate for 50% of table
   93     usage (about 18% of file-max in my box, which means that, using two replicas,
   94     I was using 54% of the system file descriptors). I drew an allocation graphic
   95     which can be seen in the howto at http://www.furquim.org/chironfs/howto.html#stats
   96   o Fixed a bug where a chunk of memory was being freed two times (and crashing
   97     ChironFS, but it was going exit anyway) when some replica path didn't existed
   98     at mount time.
   99   o Fixed an issue when the ulimit were lower than the projected hash table size, just
  100     raising the ulimit value, but it only works if the mounting user is root, otherwise
  101     the ulimit must be raised through manual configuration of /etc/security/limits.conf.
  102   o Updated the howto with hash, file descriptor and ulimit considerations; packages
  103     other than the tarball installations and how to lower the read priority of known
  104     slower replicas.
  105 
  106 Changes since ChironFS 1.0RC6
  107 ---------------------
  108 
  109   o Fixed bug #6 reported at http://code.google.com/p/chironfs/issues/detail?id=6 
  110     where files created by another user than the user
  111     that mounted ChironFS were owned by the mounting user and not
  112     the creator itself. It was a serious security problem. ChironFS
  113     was not tracking the creation of the files and, this way, was
  114     not changing the ownership of the created file/directory to the
  115     uid and gid of the calling process. Now ChironFS calls fuse_context
  116     to get that info from the calling process and changes to it 
  117     right after the creation. Thanks to Neal Becker who reported
  118     the bug.
  119   o Implemented an experimental fix for a bug reported by Oleg Bartunov
  120     by e-mail, where ChironFS fails to exclude all files when doing
  121     massive delete ("rm -Rf" on directories with thousands of files).
  122     It happens when a cycle of opendir/readdir/closedir cannot be done
  123     in only one call due to lack of space in the readdir buffer and 
  124     subsequent calls were lacking of synchronization because the system
  125     flushed the deletes and updated the directory list. I started to 
  126     call seekdir using the offset parameter of the readdir. This
  127     parameter were being ignored until now as in the example programs
  128     of fuse implementations. Now my tests are succesfull. But, Franco
  129     Broi reported at the fuse-devel mailing list that a filesystem he
  130     is implementing got the same bug. I told him about my fix and he 
  131     tested with his filesystem and it did NOT work for him. Miklos 
  132     Szeredi, the author of fuse proposed another fix and it worked for
  133     Franco Broi. But when I implemented it in ChironFS, it made my
  134     system crash. Franco Broi told me that his filesystem runs on top
  135     of NFS. I did not tested ChironFS over NFS, but my fix worked on
  136     top of SSHFS. So, I will keep my fix, but in experimental status.
  137     Thanks to Oleg Bartunov for reporting the bug.
  138   o Complete rewrite of the debug function. The old ones were a confusing
  139     mess. Now there is only one, accepting variable parameters. Thanks
  140     to Graham Toal, author of dupfs, from whose code I learnt the
  141     techniques to do it.
  142   o Fixed a bug when ChironFS is called with --log option and the
  143     logfile pathname is relative and the file itself doesn't exists.
  144     In this case, ChironFS was exiting with the "file not found" error.
  145     The problem is that when realpath is called with a non-existant
  146     path it returns NULL. So I had to get its basedir, call realpath
  147     and only then, re-append the basename to it. Thanks to Graham Toal
  148     who reported this bug.
  149   o Implemented a priorization system, modifying the simple round-robin
  150     that made the load balance on read operations. Now when we have
  151     replicas with a too different response time (tipically a local/LAN
  152     replica and a remote WAN replica) the system focus the load balance
  153     only in the fast replicas. The slow replicas are accessed in read
  154     operations only when the fast ones fails. To enable this, the user
  155     MUST tell ChironFS which are the slower replicas by prefixing the
  156     pathnames with a colon in the command line, for example:
  157     "chironfs /real1=:/real2=/real3=/real4=:/real5 /virtual". In this
  158     example, ChironFS will give priority to the /real1, /real3 and /real4
  159     and choosing a replica to read using a round-robin load balance
  160     algorithm. ChironFS will read from /real2 and /real5 replicas only
  161     if /real1, /real3 and /real4 fail and in this case, will choose
  162     between /real2 and /real5 unsing the same round-robin algorithm.
  163     Of course most of its usage will be something like
  164     "chironfs /real1=:/real2 /virtual", but the example was intended to
  165     show more details on how ChironFS will handle these situations.
  166     Thanks to Maxime Ritter who gave the idea of configuring the priority
  167     in the command line.
  168   o Fixed one more memory leak: I was freeing all paths[i].path allocations,
  169     but I forgot to free the paths structure itself.
  170 
  171 
  172 Changes since ChironFS 1.0RC5
  173 ---------------------
  174 
  175   o Fixed a bug with fsync reported both by Oleg Bartunov by e-mail
  176     "(...) postgresql 8.2.4 doesn't works. initdb worked fine, but 
  177     starting fails (...) PANIC:  could not fsync control file: No 
  178     such file or directory (...)" and by William Maddler "(...) I
  179     try to save a file from Vim. (...) 'test' E667: Fsync failed
  180     (...) File seems to be saved anyhow. I have no problems using
  181     nano or echoing to a file.". It was a wrong return value of the
  182     function giving to the application a false negative.
  183   o Fixed bug #5 reported at http://code.google.com/p/chironfs/issues/detail?id=5
  184     The man page wasn't being copied to the man directory when 
  185     installing from the source tarball. I needed to redo all the
  186     autoconf/automake/autoheader stuff just to discover that I had
  187     to put one line at Makefile.am. Anyway, I needed to change the
  188     .spec file and my script to build all the packages too. Thanks
  189     to Alexandre Fernandes who reported the bug.
  190 
  191 
  192 Changes since ChironFS 1.0RC4
  193 ---------------------
  194 
  195   o Fixed bug #3 reported at http://code.google.com/p/chironfs/issues/detail?id=3
  196     it was a problem with mknod, which can't be called when using sshfs. Instead
  197     we open and close the file. Thanks to Alexandre Fernandes for reporting this
  198     bug.
  199   o Fixed bug #4 reported at http://code.google.com/p/chironfs/issues/detail?id=4
  200     there was a mismatch in readdir function when testing if the replica is 
  201     disabled. I used the wrong index variable. Thanks to Alexandre Fernandes for
  202     reporting this bug.
  203   o Added lock control and reopening of the log file, so when you logrotate
  204     there will be no need to restart (remount) ChironFS, and, this way, no
  205     need to stop all the daemons that uses the ChironFS mounts.
  206   o ChironFS now automatically calls FUSE using the direct_io option so we avoid
  207     redundant disk caching
  208   o Fixed wrong error message when a failure occurs calling realpath to canonicalize
  209     the replica's paths. I was just reporting low memory and so this message was
  210     being displayed when the path was wrong. Now I display the errno message
  211   o Added --version and -V option to command line.
  212 
  213 Changes since ChironFS 1.0RC3
  214 ---------------------
  215 
  216   o Bug #2 reported at http://code.google.com/p/chironfs/issues/detail?id=2 .
  217     Thanks to Marek Kotas for reporting this bug.
  218 
  219 Changes since ChironFS 1.0RC2
  220 ---------------------
  221 
  222   o Fixing various memory leaks. Thanks to Patrick Prasse who found these
  223     bugs and sent a patch fixing all of them.
  224 
  225   o Fixing bug #1 reported at the project issues page. Look at
  226     http://code.google.com/p/chironfs/issues/detail?id=1 to see the
  227     details. Thanks to Marcelo Squeff who found this bug.
  228 
  229 
  230 Changes since ChironFS 1.0RC1
  231 ---------------------
  232 
  233   o Correcting file permissions at the creation of the log file. It
  234     was world writable. Thanks to Jason Haar who found this bug.
  235 
  236 Changes since ChironFS 0.5
  237 ---------------------
  238 
  239 o   Luis Otavio de Colla Furquim (luisfurquim@gmail.com)
  240     * Adoption of a struct to handle all the data about the replicas.
  241       Version 0.5 just used strings to store the pathname to them. Now
  242       the system have a status field indicating if it is enabled or 
  243       disabled and the time when it was disabled. The fields with usage
  244       statistics were been defined but they are not used yet.
  245     * Some write functions were behaving as read functions: they were
  246       not writing to all replicas, but to the first available one.
  247     * Implemented a simple round robin algorithm to load balance the
  248       read operations. Version 0.5 was reading everything from the
  249       first replica available.
  250     * Implemented a logging system. This system does not logs all the
  251       activity. It logs just when some operation fails but some are
  252       succesfull. In this case if the operation is a reading operation
  253       Chiron FS logs but does not disable the replica because the replicas
  254       are still consistent. But if the operation is for write, then
  255       Chiron FS logs the failure AND disable the inconsistent replica.
  256