"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