Release Notes for GlusterFS v 2.0.7: ------------------------------------ This release is recommended for libglusterfsclient/booster users. - Fixed a race condition triggered by a subvolume going down during an operation in replicate setup - BUG 285 - Added GlusterFS volume file generator. Details can be found at: http://gluster.com/community/documentation/index.php/Glusterfs-volgen_Reference_Page - GlusterFS returns to shell only after the GlusterFS daemon is spawned - BUG 4 - Fixed a spurious self-heal that could be triggered in replicate setup - BUG 223 - GlusterFS honors SETGID flag - BUG 241 - Fixed a GlusterFS client hang when no servers are available - BUG 224 - Fixed a memory leak in ib-verbs - BUG 259 - Fixed issues in libglusterfsclient/booster. - Write Behind performance optimizations added. - Some crashes fixed and minor tweaks added. Commit log of bugs fixed in GlusterFS v2.0.7: --------------------------------------------- commit 7ba890140fccdf58daa0b8dd1fa5586ebcd48a43 Author: Harshavardhana Ranganath Date: Wed Sep 30 05:34:19 2009 +0000 volgen script failed initial tests due to wrong fd definition Signed-off-by: Anand V. Avati BUG: 288 (volgen script failed initial tests due to wrong fd definition) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=288 commit 359c46118b756e1a5191ec6e902709258aad903b Author: Vikas Gorur Date: Mon Sep 28 20:58:57 2009 +0000 cluster/afr: dir-write: Fix inode number handling. create, mkdir, symlink, mknod: Prefer to return itransform'd inode number from the first_up_child. If not, fall back on any other child that returned succcess. link, rename: Return the same inode number that was passed as part of loc_t. Also adds a new member to afr_local_t, local->first_up_child which is initialized at the start of the transaction. This fixes the race where a subvolume might go down during the transaction and thus have the first_up_child change. Signed-off-by: Anand V. Avati BUG: 285 ("first up child" can change during a transaction) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=285 commit f09558e2bf5b39284c6a2b750d791d38854ffcfc Author: Raghavendra G Date: Fri Sep 25 02:52:00 2009 +0000 libglusterfsclient: don't destroy the iobuf pool during fini. - some of the iobufs in pool will be cached by io-cache and hence refcount will not be zero. Hence the assertion of ref being zero in __iobuf_arena_destroy fails. Commenting out iobuf_pool_destroy during fini, till we introduce proper cleanup in all translators, thereby allowing io-cache to release the buffers it has held. Signed-off-by: Anand V. Avati BUG: 283 (booster aborts complaining the refcount of iobuf is not zero during glusterfs_umount_all.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=283 commit 5464ab94634e949ff4fdcba74f13ed7302fbd322 Author: Raghavendra G Date: Fri Sep 25 02:48:00 2009 +0000 libglusterfsclient: traverse the vmplist during fini only if any entries are mounted. - the vmplist.list is inited only during mounting of first entry. Hence doing a list traversal when no vmpentries are present, results in a segfault. Signed-off-by: Anand V. Avati BUG: 282 (segfault of applications using booster observed when the application does not mount any vmps.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=282 commit 47802bd0fdb65424a4466cb2d67118e98a5337a8 Author: Amar Tumballi Date: Fri Sep 25 00:56:58 2009 +0000 glusterfs volume generator http://gluster.com/community/documentation/index.php/Glusterfs-volgen_Reference_Page Signed-off-by: Anand V. Avati commit 1ed903641a297aaa16d212243eb17c8899d7969b Author: Anand Avati Date: Thu Sep 24 08:31:10 2009 +0000 write-behind: check for NULL file pointer in flush callback Signed-off-by: Anand V. Avati BUG: 260 (ls on booster VMP results in error: "File descriptor in bad state") URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=260 commit bad9a77c646bc286feecba4d62e036504993175d Author: Raghavendra G Date: Thu Sep 24 06:04:19 2009 +0000 performance/write-behind: Add NULL checks for file pointer. Signed-off-by: Anand V. Avati BUG: 260 (ls on booster VMP results in error: "File descriptor in bad state") URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=260 commit c730a5a5d937829b9c9b75286fe687feae5ef6f1 Author: Vikas Gorur Date: Thu Sep 24 04:29:10 2009 +0000 glusterfsd/main: Do a sem_post only if running in daemon mode. Signed-off-by: Anand V. Avati BUG: 4 (mount --bind fails if run immediately after mounting GlusterFS) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=4 commit 4ab8f717e23dda136f35c30ab103762afef6ff7a Author: Shehjar Tikoo Date: Thu Sep 24 00:57:40 2009 +0000 booster: Cleanup booster_cleanup and register for atexit Signed-off-by: Anand V. Avati BUG: 279 (File written with booster results in self-heal after dd exits) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=279 commit 56d00a6e589525d4e88c86d800ef0b9665564e80 Author: Shehjar Tikoo Date: Thu Sep 24 00:57:39 2009 +0000 libglusterfsclient: Support TRACE loglevel Signed-off-by: Anand V. Avati BUG: 210 (libglusterfsclient: Enhance logging) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=210 commit 84ad18a00cf0ddd5723eb2d43a0c046a4ed66059 Author: Shehjar Tikoo Date: Thu Sep 24 00:57:38 2009 +0000 libglusterfsclient: Wait for all call pools to be destroyed This ensures that the process using libglusterfsclient does not exit before all the fops and calls have been replied to. It helps to ensure that the backends are in a sane state when the program exits. Signed-off-by: Anand V. Avati BUG: 279 (File written with booster results in self-heal after dd exits) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=279 commit d2a961b3d6792864d6852590c7dba93dc28906fa Author: Shehjar Tikoo Date: Thu Sep 24 00:57:37 2009 +0000 libglusterfsclient: Clean up fini and umount code paths This patch cleans up the umount and fini paths in preparation to support waiting for unwind of all pending call frames. Two misc fixes are: 1. Fix to avoid deadlock in _libgf_umount by using _libgf_vmp_search_entry instead of libgf_vmp_search_exact_entry since the latter tries to take a lock already help by _libgf_umount. 2. Avoid a crash in _libgf_umount by deleting the vmp entry from the list before it gets freed. Signed-off-by: Anand V. Avati BUG: 279 (File written with booster results in self-heal after dd exits) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=279 commit 788d174c36c29e3fcc638f2064c43f60f5521dd1 Author: Shehjar Tikoo Date: Thu Sep 24 00:57:36 2009 +0000 iobuf, logging: Expose existing functions as required Signed-off-by: Anand V. Avati BUG: 279 (File written with booster results in self-heal after dd exits) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=279 commit b003921b33de2d72ee39eaa4b6c0a161261c9db3 Author: Shehjar Tikoo Date: Thu Sep 24 00:57:35 2009 +0000 libglusterfsclient: Reduce logging aggressiveness to TRACE Signed-off-by: Anand V. Avati BUG: 210 (libglusterfsclient: Enhance logging) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=210 commit 7981f79e24e052ffe1ea758db3ba5217b74f20ce Author: Shehjar Tikoo Date: Thu Sep 24 00:57:34 2009 +0000 booster: Reduce logging aggressiveness to TRACE Internal users feel the amount of logging brought in due to a previous logging enhancement patch is a bit too aggressive for DEBUG, so this changes it to TRACE. Signed-off-by: Anand V. Avati BUG: 210 (libglusterfsclient: Enhance logging) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=210 commit 7f2da3aab0f32daca97176c3bfed76c70497f9b2 Author: Shehjar Tikoo Date: Thu Sep 24 00:59:50 2009 +0000 libglusterfsclient: Re-validate root inode on every path resolution If the root inode's is outdated, send a revalidate on it. A revalidate on root inode also reduces the window in which an op will fail over distribute because the layout of the root directory did not get constructed when we sent the lookup on root in glusterfs_init. That can happen when not all children of a distribute volume were up at the time of glusterfs_init. Signed-off-by: Anand V. Avati BUG: 256 (revalidates should be sent on '/' in libglusterfsclient.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=256 commit 13b4437770fadf3089e37bdedd0fe689e79c87f9 Author: Raghavendra G Date: Thu Sep 24 00:57:39 2009 +0000 performance/write-behind: Add a NULL check for request->stub before checking request->stub->fop. - for non-write wind requests, the request structure outlives the stub. The call stub is destroyed when stack is wound but request is destroyed only when the reply has come. (for writes, both stub and request are destroyed when refcount becomes 0, which happens only when the write operation is stack unwound and a reply for the write operation has come from underlying translators, for non-write unwind requests the request is first destroyed before resuming the stub). Signed-off-by: Anand V. Avati BUG: 280 (simple stripe, with write-behind set up, when dbench is run client crashes.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=280 commit a484a0c47ef6468c1615aa78795880e71347f709 Author: Csaba Henk Date: Wed Sep 23 10:34:38 2009 +0000 fuse: emit a flush from release if we didn't get an adjacent FLUSH message from the kernel Signed-off-by: Anand V. Avati BUG: 223 (flush not sent) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=223 commit 270a473ddaa076af5b3c8c455c7642932dabb479 Author: vinayak hegde Date: Wed Sep 23 07:12:33 2009 +0000 Changes for custom daemon function. Signed-off-by: Anand V. Avati BUG: 4 (mount --bind fails if run immediately after mounting GlusterFS) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=4 commit 56f1b4ed39201355553f9ac4f49c16809d8351e5 Author: Raghavendra G Date: Tue Sep 22 23:50:33 2009 +0000 performance/write-behind: store currently aggregated data size in wb_file - this helps us to not traverse the request list whenever we need currently aggregated data in the queue Signed-off-by: Anand V. Avati BUG: 276 (write behind needs to be optimized.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=276 commit f72e01fb1d98c7df99b42ae1cbabec0fb0ecfcbd Author: Raghavendra G Date: Tue Sep 22 23:50:17 2009 +0000 performance/write-behind: store the current window size in wb_file. - this would increase the performance since we don't have to traverse the request list every time we need the current window size. Signed-off-by: Anand V. Avati BUG: 276 (write behind needs to be optimized.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=276 commit 8b76f7c394e99f35463fc508984c6c532ddf4a8f Author: Raghavendra G Date: Tue Sep 22 23:49:55 2009 +0000 performance/write-behind: reduce usage of iov_length. - request structure now holds a member write_size which is initialised at the time of request creation and used later. Signed-off-by: Anand V. Avati BUG: 276 (write behind needs to be optimized.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=276 commit 248c6f76d5bee281d7f78e135591d8c3ab964b6b Author: Raghavendra G Date: Tue Sep 22 00:20:26 2009 +0000 booster: implement F_DUPFD command in fcntl. Signed-off-by: Anand V. Avati BUG: 277 (running dd on booster returns EINVAL) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=277 commit fb34f7fd81d3260d548ee0f6b5d656fdb1ec61f1 Author: Raghavendra G Date: Mon Sep 21 09:52:03 2009 +0000 performance/write-behind: add option "enable-trickling-writes". - With this option enabled, writes are stack-wound even though not enough data is aggregated, provided there are no write-requests which are stack-wound but reply is yet to come. The reason behind this option is to make use of the network, which is relatively free (with no writes or replies in transit). However, with non-standard block-sizes of writes the performance can actually degrade. Hence making this configurable. Signed-off-by: Anand V. Avati BUG: 276 (write behind needs to be optimized.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=276 commit f86858c3be2ad5b4f9031625e3678528d9f4c6c1 Author: Raghavendra G Date: Mon Sep 21 09:51:49 2009 +0000 performance/write-behind: reduce traversal of request list during wb_mark_winds. - move all the decision making code to __wb_can_wind. - don't continue traversing the request list, once we know any of the following conditions are true: * requests other than write are present in queue. * writes are happening at non-contiguous offsets. * there are no write requests, which are wound to server but not yet received the reply. * enough data is aggregated for writing. Signed-off-by: Anand V. Avati BUG: 276 (write behind needs to be optimized.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=276 commit 6d6e22cf3cdb4f2f1f21863ab19f9b36750bba04 Author: Raghavendra G Date: Mon Sep 21 09:51:21 2009 +0000 performance/write-behind: reduce list-traversal during wb_mark_unwinds - don't traverse entire request list to get the window-size, instead break when current window size becomes greater than configured limit. Signed-off-by: Anand V. Avati BUG: 276 (write behind needs to be optimized.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=276 commit 4749db6e47ad0fa624e49c5ed3766c77335f68c7 Author: Raghavendra G Date: Mon Sep 21 09:51:35 2009 +0000 performance/write-behind: remove redundant traversal of write-requests in the wind list in wb_sync. - no need of getting the total_count of number of requests in the list. Even if there is a single request, we need to sync it. Signed-off-by: Anand V. Avati BUG: 276 (write behind needs to be optimized.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=276 commit 0b1d043755d183c0ab1009de5a722364da0564bc Author: Raghavendra G Date: Mon Sep 21 09:51:05 2009 +0000 performance/write-behind: Aggregate adjacent contiguous write-buffers into single iobuf. Signed-off-by: Anand V. Avati BUG: 276 (write behind needs to be optimized.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=276 commit 3c5d05b42708e77e161eda4018b42484f36b1436 Author: Raghavendra G Date: Mon Sep 21 09:50:48 2009 +0000 performance/write-behind: fine-tune logic of wb_mark_winds - remove wb_mark_wind_aggregegate_size_aware, since wb_mark_wind_all does the same work (with check for whether current aggregated data size is greater than the configured limit before calling it). Moreover, wb_mark_wind_aggregate_size_aware called __wb_get_aggregate_size redundantly, thereby reducing the performance, since for small sized large number of writes, traversing the list of requests takes significant amount of time. Signed-off-by: Anand V. Avati BUG: 276 (write behind needs to be optimized.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=276 commit 02f0b705e87f9cf50e7384520b49a54fc95e7b1e Author: Shehjar Tikoo Date: Mon Sep 21 05:31:42 2009 +0000 libglusterfsclient: Fix build warnings Signed-off-by: Anand V. Avati BUG: 275 (libglusterfsclient: Generic build failure bug for libglusterfsclient and booster) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=275 commit 197b949d28bff35a10a10d5d2743fcdfd13ec2c2 Author: Shehjar Tikoo Date: Mon Sep 21 05:31:28 2009 +0000 booster: Fix build warnings Signed-off-by: Anand V. Avati BUG: 275 (libglusterfsclient: Generic build failure bug for libglusterfsclient and booster) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=275 commit a959abb342eba3a48be08fdeed1d3d90aa77dfce Author: Raghavendra G Date: Fri Sep 18 05:59:29 2009 +0000 performance/quick-read: refine logic of qr_readv. - An extra vector was being allocated when the number of bytes being read from cache were equal to the iobuf size. Signed-off-by: Anand V. Avati BUG: 274 (Memory corruption in Apache running on booster) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=274 commit 28ca9acc22cab064a7df83897036ff333101f2ea Author: Raghavendra G Date: Fri Sep 18 05:58:30 2009 +0000 performance/quick-read: optimizations to lookup - qr_lookup not to send request for file-content if the cache is already present during revalidates. - flush the cache in qr_lookup_cbk if the cache is not in sync with the file. Signed-off-by: Anand V. Avati BUG: 273 (Code review and optimize quick-read) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=273 commit 540d14f4e54ac72e2c474aa377a91d1abdbaaab6 Author: Raghavendra G Date: Fri Sep 18 05:58:15 2009 +0000 performance/quick-read: make a comment more explicit. Signed-off-by: Anand V. Avati BUG: 273 (Code review and optimize quick-read) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=273 commit fa953347e8f22baf4bf7e8042eeba0d949842a20 Author: Raghavendra G Date: Fri Sep 18 05:58:23 2009 +0000 performance/quick-read: checking for qr_file in inode-context and creating if not present should be atomic. Signed-off-by: Anand V. Avati BUG: 273 (Code review and optimize quick-read) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=273 commit b361b3aa5853626f918846894b8e43bff0d89252 Author: Raghavendra G Date: Fri Sep 18 05:58:08 2009 +0000 performance/quick-read: refine the logic in qr_lookup. - a new size has to be set in xattr_req only if (quick-read is configured with a maximum file size limit && ((xattr_req does not have a request key for getting content) || (the size requested in xattr_req is not equal to configured size in quick-read))) Signed-off-by: Anand V. Avati BUG: 273 (Code review and optimize quick-read) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=273 commit 80f5d11c731eb286f55b21b35015943e2bbb1f8b Author: Raghavendra G Date: Thu Sep 17 15:07:11 2009 +0000 protocol/client: access glusterfs context from the ctx member of xlator object - A global context pointer cannot be used with libglusterfsclient, since there can be many contexts in a single process. Signed-off-by: Anand V. Avati BUG: 271 (applications using booster protocol/client crash in client_setvolume_cbk.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=271 commit c179755dd1068e480e3d371dd9fafa94faee90aa Author: Raghavendra G Date: Wed Sep 16 23:58:36 2009 +0000 performance/write-behind: check for the presence of context only in fds not opened on directories. Signed-off-by: Anand V. Avati BUG: 260 (ls on booster VMP results in error: "File descriptor in bad state") URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=260 commit 00b242e1e35b2af7ccbade982e0dae7611cc019e Author: Raghavendra G Date: Wed Sep 16 12:34:19 2009 +0000 client-protocol: fix race-condition encountered while accessing fdctx - In protocol/client, fdctx is accessed by two sets of procedures, protocol_client_mark_fd_bad falls in one set whereas the other set consists of all fops which receive fd as an argument. The way these fdctxs are got is different in these two sets. While in the former set, fdctx is accessed through conf->saved_fds, which is a list of fdctxs of fds representing opened/created files. In the latter set, fdctxs are got directly from fd through fd_ctx_get(). Now there can be race conditions between two threads executing one procedure from these two sets. As an example let us consider following scenario: A flush operation is timed out and polling thread executing protocol_client_mark_fd_bad, fuse thread executing client_release. This can happen because, immediately a reply for flush is written to fuse, a release on the same fd can be sent to glusterfs and the polling thread still might be doing cleanup. Consider following set of events: 1. fuse thread does fd_ctx_get (fd). 2. polling thread gets the same fdctx but through conf->saved_fds. 3. Now both threads go ahead and does list_del (fdctx) and eventually free fdctx. In other situations the same set events might occur and the threads executing fops other than flush in the second set might be accessing a fdctx freed in protocol_client_mark_fd_bad. Signed-off-by: Anand V. Avati BUG: 127 (race-condition in accessing fdctx in protocol/client) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=127 commit 953d7146f117f19ff6c92fafaffdc79e4a14d76e Author: Raghavendra G Date: Fri Sep 11 07:54:22 2009 +0000 performance/quick-read: access glusterfs_ctx from xlator instead of using glusterfs_get_ctx - since glusterfs_get_ctx gets the global context pointer, there can be problems in a multithreaded application running on libglusterfsclient doing multiple glusterfs_inits. Hence use context specific to the current xlator tree stored in each xlator object. Signed-off-by: Anand V. Avati BUG: 240 (segmentation fault in qr_readv) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=240 commit 8ad41d36bfc683424133407ff26559654c7ba316 Author: Anand Avati Date: Wed Sep 16 05:43:01 2009 +0000 io-cache: fix table->max_pri to 1 as the lowest priority patch http://patches.gluster.com/patch/1319/ breaks when no priority is mentioned in the config. the patch makes ioc_get_priority() return 1 as the value when no priority is given, but ioc_get_priority_list() was still returning 0 as the max_pri (maximum priority) which would result in lru list heads not getting initialized Signed-off-by: Anand V. Avati BUG: 261 (support for disabling caching of certain files) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=261 commit ca586f1b9f9f2848eeb8bb6a22f20851f8a117d6 Author: Raghavendra G Date: Tue Sep 15 08:03:46 2009 +0000 booster: use __REDIRECT macro to prevent creat being renamed to creat64. - nm on libglusterfs-booster.so shows only creat64 defined but not creat. This behavior is observed due to following reasons. 1. Booster is compiled with _FILE_OFFSET_BITS=64. 2. fcntl.h when included with _FILE_OFFSET_BITS=64 defined, renames all occurences of creat to creat64 in the source code from the point of #include . fcntl.h should be included since booster.c uses many of the macros defined in that header and glusterfs (booster in turn) has to be compiled with _FILE_OFFSET_BITS=64 since glusterfs uses datatypes (off_t, stat etc) whose sizes vary depending on whether this macro is defined or not. Basically, this macro should be defined to provide portability across 32 and 64 bit architectures. The correct fix is to make glusterfs to use datatypes big enough to hold 64 bit variants as well as 32 bit variants (like int64_t replacing off_t) and not to define _FILE_OFFSET_BITS=64 at all. As a temporary work around, 1. we can implement creat functionality in a function with different name, say booster_false_creat 2. rename this function to creat using __REDIRECT macro. since this renaming happens after renaming of creat to creat64 (from the first __REDIRECT macro in fcntl.h), we will end up with creat symbol being defined in libglusterfs-booster.so Signed-off-by: Anand V. Avati BUG: 264 (creat is not resolved properly to the symbol defined in booster) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=264 commit 2cd45bcd9f252616c735284516c1f3ac07de00d9 Author: Raghavendra G Date: Tue Sep 15 08:03:59 2009 +0000 libglusterfsclient: NULL terminate the vmp entry during vmp_entry_init. Signed-off-by: Anand V. Avati BUG: 263 (files are not resolved to glusterfs when vmp is not terminated with a '/'.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=263 commit ce725f84d7d4d40ace9dd7ce5bcc89bdd77ce41d Author: Raghavendra G Date: Tue Sep 15 08:04:15 2009 +0000 booster: use appropriate conversion specifier during logging in close. Signed-off-by: Anand V. Avati BUG: 262 (crash in booster close due to invalid conversion specifier during logging.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=262 commit 0141bbb5c7b154affb1210d4f92e9ffab14596c7 Author: Stephan von Krawczynski Date: Mon Sep 14 05:59:55 2009 +0000 2.0.6 patch for io-cache pattern-matched non-caching Hello all, here is a small feature patch. Its intention is to give the user more control over the files performance/io-cache really caches. If the user knows exactly which files should be cached and which shouldn't there is currently no way to tell glusterfs _not_ to cache certain pattern. This patch allows you to disable caching by setting the priority of a pattern to "0". If you do not give any priority option it works just like before and caches everything. Honestly I am not totally sure that disabling caching works the way we did it, please comment. Signed-off-by: Anand V. Avati BUG: 261 (support for disabling caching of certain files) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=261 commit ef8ea2672c14ae19b0ae421cf53a701f89f4f192 Author: Raghavendra G Date: Thu Sep 10 04:36:19 2009 +0000 storage/posix: transform inode number in stat structure - when export directory is configured to span across multiple mountpoints, the inode number has to be transformed in order to make it unique. Signed-off-by: Anand V. Avati BUG: 254 (storage/posix has to do inode number transformation wherever it unwinds with a stat structure) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=254 commit bcca4200218b45b547135a2e84a955062bc40089 Author: Shehjar Tikoo Date: Tue Sep 15 01:05:20 2009 +0000 extras: Add LD_PRELOAD test tool This tool allows us to check the sanity of the LD_PRELOAD mechanism so that we can be sure that an application's syscalls will be redirected into booster when that library is LD_PRELOADed. In case of failed syscalls, this tool should be run first to see if the calls are redirected as required. Signed-off-by: Anand V. Avati BUG: 251 (Improve booster debugging through ld-preload testing tool) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=251 commit 973b964e68df39ec5c2e8a4699be84644c76864b Author: Raghavendra G Date: Tue Sep 15 00:32:23 2009 +0000 transport/ib-verbs: initialize fini member of new-transports created during accepting client connections. - This bug used to cause a memory leak of 2 * sizeof(ib_verbs_private_t) for each new client connection. Signed-off-by: Anand V. Avati BUG: 259 (Memory leak on server side when there are large number of disconnections from clients) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=259 commit 80969eaf4e2ef58c051d6679fb678172b26022bb Author: Raghavendra G Date: Mon Sep 14 13:25:25 2009 +0000 backporting quick read to 2.0 Signed-off-by: Anand V. Avati BUG: 238 (Backport quick-read to 2.0 release) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=238 commit 62d30db76e118cb244c35b6acc15005474d77750 Author: Raghavendra G Date: Thu Sep 10 07:41:14 2009 +0000 backport stat-prefetch from 2.1 Signed-off-by: Anand V. Avati BUG: 257 (Backport stat-prefetch to 2.0) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=257 commit dd149ca8e7757e6e935c6481be8fd4fee9d13790 Author: Raghavendra G Date: Thu Sep 10 07:21:33 2009 +0000 libglusterfsclient: Wait for time ample enough for all the children of distribute to initialize before sending lookup on '/'. Signed-off-by: Anand V. Avati BUG: 255 (libglusterfsclient should wait till all the children of distribute are initialized before sending first lookup on '/') URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=255 commit cf403ff73213bec7ce4781336e89a5bcfd9a167c Author: Raghavendra G Date: Wed Sep 9 12:18:55 2009 +0000 protocol/server: server_stub_resume should check for failure of lookup when oldloc.parent is NULL. Signed-off-by: Anand V. Avati BUG: 215 (crash on ib-verbs in 2.0.6-rc4) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=215 commit 23f2810c5e750ac7ccf82622740205b7615c852b Author: Shehjar Tikoo Date: Wed Sep 9 00:46:32 2009 +0000 booster: Fix fd_t leak in pread64 Signed-off-by: Anand V. Avati BUG: 174 (booster: fd_ts, they are a leakin) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=174 commit 2f44214fc6fd07c434ff6ca48f2c61d2ad9c3939 Author: Shehjar Tikoo Date: Wed Sep 9 00:46:31 2009 +0000 libglusterfsclient: Fix incorrect NULL check for fd We should check fdctx instead. Signed-off-by: Anand V. Avati BUG: 253 (Global bug for libglusterfsclient NULL checks and CALLOC handling fixes) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=253 commit 3c029faaf40b53ef3be94d9ad9a927e9a5b4d72c Author: Shehjar Tikoo Date: Wed Sep 9 00:46:30 2009 +0000 libglusterfsclient: Handle CALLOC failure in libgf_client_lookup Signed-off-by: Anand V. Avati BUG: 253 (Global bug for libglusterfsclient NULL checks and CALLOC handling fixes) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=253 commit 6858391d8909abeb2d396e806df49f6cd3253c20 Author: Shehjar Tikoo Date: Wed Sep 9 00:46:29 2009 +0000 libglusterfsclient: Handle CALLOC failure in libgf_init_vmpentry Signed-off-by: Anand V. Avati BUG: 253 (Global bug for libglusterfsclient NULL checks and CALLOC handling fixes) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=253 commit baa85e6b797dd3f3b70772a712599cc3ab8597b5 Author: Shehjar Tikoo Date: Wed Sep 9 00:46:28 2009 +0000 libglusterfsclient: Add inode_ctx NULL check during iattr cache validation Signed-off-by: Anand V. Avati BUG: 253 (Global bug for libglusterfsclient NULL checks and CALLOC handling fixes) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=253 commit 3c6cc99f3ab51b05d57bfe2b68f459a5c4b7cb20 Author: Shehjar Tikoo Date: Tue Sep 8 23:40:36 2009 +0000 libglusterfsclient: Enhance logging Signed-off-by: Anand V. Avati BUG: 210 (libglusterfsclient: Enhance logging) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=210 commit 6601576e141a78e22a8469e80c434ce05576379f Author: Shehjar Tikoo Date: Tue Sep 8 23:40:25 2009 +0000 booster: Enhance booster logging Signed-off-by: Anand V. Avati BUG: 210 (libglusterfsclient: Enhance logging) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=210 commit 1ad5952aaf29585d5349cc636261306ab7701619 Author: Vikas Gorur Date: Tue Sep 8 05:07:02 2009 +0000 cluster/afr: Check op_ret in afr_getxattr_cbk before accessing dict Signed-off-by: Anand V. Avati BUG: 250 (Crash in replicate getxattr) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=250 commit 06a885f70154720da0bcb77199312500998ba29b Author: Raghavendra G Date: Thu Sep 3 04:42:05 2009 +0000 performance/write-behind: hold locks when accessing members of wb_file. Signed-off-by: Anand V. Avati BUG: 243 (Hold locks when accessing members of wb_file_t.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=243 commit 0281283ee0e27b26c2f30f0434a23a4269e147cf Author: Raghavendra G Date: Wed Sep 2 04:53:42 2009 +0000 performance/write-behind: communicate back the errors in writes to servers in the next immediate writes from application. Signed-off-by: Anand V. Avati BUG: 242 (If any of the writes fail, write-behind should not wait till the fd is closed for reporting errors) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=242 commit 2b334a49ae0e8b26c49fe2545a6a17c59e11cd7b Author: Raghavendra G Date: Tue Sep 1 05:45:03 2009 +0000 libglusterfsclient: handle intermediate path components which are symlinks properly in glusterfs_glh_realpath. - while building the realpath, if the intermediate path happens to be a symbolic link, the content of link was being appended at dirname (path), instead of appending to intermediate path. Signed-off-by: Anand V. Avati BUG: 237 (If any of the path component other than the last one, happens to be a symbolic link glusterfs_glh_realpath does not construct correct path.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=237 commit c0c54cd9feeff6093c78027fade26379838e9899 Author: Raghavendra G Date: Tue Sep 1 00:32:40 2009 +0000 libglusterfsclient: handle paths terminating with '/' properly in libgf_trim_to_prev_dir. Signed-off-by: Anand V. Avati BUG: 236 (Stack overflow due to infinite recursion in glusterfs_glh_realpath) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=236 commit 7b3cad9869118386afd8b5f13ab2cff5d6190b7b Author: Raghavendra G Date: Tue Sep 1 00:25:05 2009 +0000 libglusterfsclient: handle failures in glusterfs_glh_realpath Signed-off-by: Anand V. Avati BUG: 235 (Handle failures in glusterfs_glh_realpath appropriately) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=235 commit 1d47c41f048194cd754d97391b5c490446fe6fa2 Author: Raghavendra G Date: Tue Sep 1 00:24:49 2009 +0000 libglusterfsclient: check for memory allocation failure in glusterfs_glh_realpath. Signed-off-by: Anand V. Avati BUG: 235 (Handle failures in glusterfs_glh_realpath appropriately) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=235 commit 83a245fda0739a5ed4253fe2c701ca58061f5324 Author: Raghavendra G Date: Tue Sep 1 03:54:21 2009 +0000 libglusterfsclient: handle symlinks properly in glusterfs_glh_opendir. - exclude symbolic links from set of filetypes to which ENOTDIR is returned, since a symbolic link can point to a directory. Signed-off-by: Anand V. Avati BUG: 234 (Apache-2.2 on booster returns HTTP_FORBIDDEN for a directory which is present) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=234 commit 302d310c82cf55ca178c13a9947eaea9c543a2ea Author: Raghavendra G Date: Mon Aug 31 23:59:24 2009 +0000 libglusterfsclient: fix to the way symbolic links are handled in glusterfs_glh_realpath. - don't assume the content returned by readlink while constructing realpath of a symbolic link to contain vmp as part of the path. This is necessary in case of symbolic links which contain relative paths as targets. Signed-off-by: Anand V. Avati BUG: 233 (Crash in Apache running on booster when a client tries to access a symbolic link) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=233 commit f87b1481699bcfab8fd7b8768a9afa4cba85ad33 Author: Vikas Gorur Date: Mon Sep 7 03:19:17 2009 +0000 storage/posix: Handle setgid bit on directories correctly If a directory has the setgid bit set, then any entry created under it must have group ownership same as the directory. Signed-off-by: Anand V. Avati BUG: 241 (Gluster not honouring SETGID flag) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=241 commit 97afc25cc7580df67fd65f41b086e33a45787887 Author: Raghavendra G Date: Mon Aug 31 22:37:40 2009 +0000 ib-verbs: handle failure of ibv_create_qp gracefully. Signed-off-by: Anand V. Avati BUG: 217 (crash in ib_verbs_create_qp) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=217 commit 2e96535c05a114fbefeb3c51cd29217176d61c65 Author: Shehjar Tikoo Date: Fri Aug 28 00:14:47 2009 +0000 libglusterfsclient: Compare compcount with path not maxentry When searching for an exact entry we need to compare the component counts in the candidate VMP and the count in the path being searched. This is opposite to the current situation where we compare the component count in VMP and the component count in maxentry, which will always be same. Signed-off-by: Anand V. Avati BUG: 209 (VMP parsing through fstab has issues) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=209 commit 21d3084bc6b0ce572fc4136446d45c8ac0f647f8 Author: Shehjar Tikoo Date: Fri Aug 28 00:14:38 2009 +0000 libglusterfsclient: Enhance VMP searching logic Another attempt to enhance searching for VMP entries. There was a problem of returning the longest prefix match from all the VMPs without checking whether the number of matched components were same as the number of components in the candidate VMP. Signed-off-by: Anand V. Avati BUG: 209 (VMP parsing through fstab has issues) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=209 commit 19de82a5caf0c6ec3ca09cb5b9a5f186fa9e78ee Author: Shehjar Tikoo Date: Fri Aug 28 00:14:28 2009 +0000 booster: Support backward compatible options Signed-off-by: Anand V. Avati BUG: 209 (VMP parsing through fstab has issues) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=209 commit d01487e9b8bc056adf611201a6a3b8f48c7af7f8 Author: Raghavendra G Date: Wed Aug 26 05:32:09 2009 +0000 libglusterfsclient: return -1 with errno set to ENOSYS for apis which are not implemented. Signed-off-by: Anand V. Avati BUG: 229 (For apis which are not implemented return correct values with errno set appropriately) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=229 commit 246abbe2f95d2492a8b57c8210fbdc3511d7a4f4 Author: Raghavendra G Date: Wed Aug 26 05:07:34 2009 +0000 libglusterfsclient: don't use pointer returned from basename to free allocated memory. Signed-off-by: Anand V. Avati BUG: 228 (Segmentation fault in glusterfs_getxattr) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=228 commit 33b93a6e9ac82b92d0bca8275ed385740ceca5ec Author: Amar Tumballi Date: Mon Aug 17 19:01:50 2009 +0000 changed booster fstab to parse the arguments same as mount.glusterfs Signed-off-by: Anand V. Avati BUG: 209 (VMP parsing through fstab has issues) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=209 commit 6e90ebabd5f32233a1c01ee6edd2a2b88bcd38fd Author: Amar Tumballi Date: Thu Aug 20 18:36:04 2009 +0000 protocol/client: 'connecting' event is properly notified. when there are no servers available to client, and transport init is not successful, send 'connecting' event once to parent so it doesn't hand in there. Signed-off-by: Anand V. Avati BUG: 224 (Client hangs if none of the servers are up) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=224 commit 0187de2869f03614f99e61adf9c88f3e0bfb307d Author: Krishna Srinivas Date: Sun Aug 16 14:34:08 2009 +0000 in server_rename if we do_path_lookup on the newloc and parent directory is not found, the server crashes. Signed-off-by: Anand V. Avati commit 86f2f049902315b6ae833b54731699a801f9374b Author: Anand V. Avati Date: Mon Aug 17 15:00:01 2009 -0700 Add BRANCH:release-2.0 tag. Master patches come without a BRANCH: tag commit 9906bd585419a77259f192edb2fbf0fb8e04cf7f Author: Csaba Henk Date: Mon Aug 17 03:55:02 2009 +0000 fuse: don't say "Success" when mount fails Signed-off-by: Anand V. Avati BUG: 219 (Error message incorrect when fuse_mount() fails) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=219 commit 63218f025ee679babcf0ed916f9e43fc58d91aee Author: Amar Tumballi Date: Tue Aug 4 19:41:13 2009 +0000 added log message when server fails to send the reply frame As of now, if a frame submit fails on server, there are no logs, and clients will have missing frames (which leads to 'hangs'). Supporting situation like this very tricky without proper log messages. As a step to make our log message lean and meaningful, this log is important. Signed-off-by: Anand V. Avati BUG: 190 (missing frames due to larger reply message size.. (ib-verbs)) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=190 commit 33c5ddbdac409dcb31fee4f26608b27ed1237949 Author: Raghavendra G Date: Sat Aug 8 12:17:04 2009 +0000 filter: use O_ACCMODE for checking file access modes. Signed-off-by: Anand V. Avati BUG: 196 (write-behind window size getting set to 0.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=196 commit b28a47cea459658ae6a2c8a4126614ec04170a16 Author: Raghavendra G Date: Sat Aug 8 12:16:25 2009 +0000 read-ahead: use O_ACCMODE for checking file access modes. Signed-off-by: Anand V. Avati BUG: 196 (write-behind window size getting set to 0.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=196 commit eb25bfe02562b229600a1c23149868432992cf2f Author: Raghavendra G Date: Sat Aug 8 12:11:15 2009 +0000 write-behind: use O_ACCMODE while checking for O_RDONLY in flags. Signed-off-by: Anand V. Avati BUG: 196 (write-behind window size getting set to 0.) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=196 commit c2caeffbc6e1a3b9cb43237ecac105008561e8d6 Author: Shehjar Tikoo Date: Thu Aug 13 02:56:18 2009 +0000 libglusterfsclient: Sync access to VMP list on new entry addition Some weeks back, I'd separated the big lock into vmplock and mountlock. See commit 304e4274ca9b0339539581c5413e3339078c1182 in mainline. At that time, we did not have a solution to the problem of when to init the vmplist in a thread-safe manner, since there was no lock to protect the vmplock specifically, and that when libgf_vmp_map_ghandle was called inside glusterfs_mount so the "lock" was already being held. Now that we have separate mount and vmp locks, the accesses can be synced correctly. Signed-off-by: Anand V. Avati BUG: 211 (libglusterfsclient: Race condition against vmplist in libgf_vmp_map_ghandle) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=211 commit b27a4334b5926266ea2a87116010a6b510f1f029 Author: Shehjar Tikoo Date: Thu Aug 13 02:56:17 2009 +0000 libglusterfsclient: Enhance VMP search logging Signed-off-by: Anand V. Avati BUG: 210 (libglusterfsclient: Enhance logging) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=210 commit 467d87898ae1cb34ba8f35819097fe8a76aa36c7 Author: Shehjar Tikoo Date: Thu Aug 13 02:56:16 2009 +0000 libglusterfsclient: Use components for VMP searches Till now, we've been doing a character by character comparison between a given path and the VMP, to search for the glusterfs handle for the given path. This does not work for all cases and has been a known bug. This commit changes the byte-by-byte comparison into a more accurate component based comparison to fix search failures. Signed-off-by: Anand V. Avati BUG: 209 (VMP parsing through fstab has issues) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=209 commit c09dfc5f604271ecda9acf596b011dc639db2ddf Author: Vikas Gorur Date: Tue Aug 11 04:59:29 2009 +0000 features/locks: Fix reverse logic in posix_lock_to_flock if the lock's end point is LLONG_MAX, the corresponding struct flock's len must be 0. Previous code had LLONG_MAX and 0 reversed. Signed-off-by: Anand V. Avati commit eed9ed130dd0168a669bd3df03fc0b68a989165d Author: Vikas Gorur Date: Tue Aug 11 01:43:33 2009 +0000 mount/fuse: Don't log setlk returning EAGAIN as a GF_LOG_ERROR. Signed-off-by: Anand V. Avati commit 516b21c238394bd55b6ac770abec53cc5a1c9c4f Author: Vikas Gorur Date: Tue Aug 11 01:42:14 2009 +0000 features/locks: Set the right log level in a few places. Signed-off-by: Anand V. Avati commit 028e584b205faf7f136c8846913335c04e174074 Author: Harshavardhana Ranganath Date: Mon Aug 10 02:17:43 2009 +0000 glusterfs log prints "TLA Revision" tag, remove it and reflect git instead Signed-off-by: Anand V. Avati