| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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>.
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 <avati@dev.gluster.com>
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
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
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
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 174 (booster: fd_ts, they are a leakin)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=174
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 210 (libglusterfsclient: Enhance logging)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=210
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 209 (VMP parsing through fstab has issues)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=209
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 209 (VMP parsing through fstab has issues)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=209
|
|
|
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 174 (booster: fd_ts, they are a leakin)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=174
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We've been facing a problem on some test systems where the
booster.so is built by libtool as an executable rather than
a dynamically loadable library.
This problem is probably caused by it seeing a _init function in
the source. This is the name of the libc initiliazation
function so it could be the source of the problem.
In any case, ld-preloadable libraries must not have a function
called _init, instead they need to have __attribute ((constructor))
as the attribute for any and all functions the library wants
executed before the program's main(). Our earlier approach was
inherently problematic.
This commit also cleans up the booster Makefile for better
build behaviour. Credit: Harsha.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this patch, we might have finally arrived at a solution
to the problem of function definition conflicts between
our functions and those of libc while over-riding the libc versions.
This commit defines functions which do not conflict with libc,
then it uses libc's own macro to redirect/rename these functions
to the actual sys call names in the binary.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
| |
The reason we need a booster specific fd-table is because
the libglusterfs fd-table has come to a point where it is
optimized for libglusterfs-style of fd allocations.
This conflicts with the way booster requires fds to be allocated
so this commit brings in a re-based version of a booster-specific
fd-table written by Raghu.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
| |
- F_DUPFD_CLOEXEC is defined only in linux kernel versions >= 2.6.24
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
| |
- calling glusterfs_umount_all leads to memory corruption.
hence commenting out for timebeing.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
| |
- if there are any glusterfs mounts(real, not virtual) which are not specified
through booster-fstab those mounts are also added to the virtual mountpoint
list of libglusterfsclient. This also removes the mount table in booster and
all the mounts whether they are real or virtual are handled by
libglusterfsclient.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
| |
In order to expose the timeout values for stat and inode
caching, this commit introduces a new fstab option "attr_timeout"
that defines the number of seconds for which a looked up inode
or a stat()'ed structure is valid in the cache.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Handle two cases when deciding log/fstab file:
1. It turns out that that strdup or strlen doesnt actually
check for NULL before trying to do its thing with the string
so it seg-faults on seeing a NULL char pointer.
2. getenv can return an empty string if the
env var was exported as:
$ export GLUSTEFS_BOOSTER_LOG=
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
When multiple threads try to create a glusterfs context using the
glusterfs_init function, those threads end up using the global
vairables in the vol file parser in an non-synchronized manner,
resulting in a seg-fault.
There is now a big lock around searches and additions from the mount
table in do_open. This lock granularity could be reduced.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This is another attempt at fixing build problems on Solaris.
I am told that booster build is disabled on Solaris and I know
that it is disabled on Mac OS X also. Getting it to work
on both these systems is now on my TODO list, mainly
because on both these systems, we can have a glusterfs client
running without requiring FUSE.
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
|
|
|
|
|
|
|
|
|
| |
It is possible that some of the real_* functors for stat
family of syscalls are NULL. I've seen this on libc. In that
case, this commit attempts to use any available function that
performs an equivalent operation.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
| |
In case the init procedure for VMP fails, we want to
continue using booster through the old approach, which means
leaving the fd-table intact.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
| |
Previous fstab option parsing logic was completely
retarded and did not handle all cases. This fixes the situation
so we now work without any problems.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit changes the booster.conf format from a
simple custom format to that of the /etc/fstab.c
See booster_mount(..) for the mount options supported/required
for LD_PRELOADing booster. I'll write a small help doc soon.
This commit also brings in fstab parsing code into libglusterfs
because Darwin libc only supports reading the hardcoded /etc/fstab.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
|
|
|
|
| |
This commit changes the default location of the booster.conf
file from /etc/booster.conf to a directory defined
during the build process.
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|
|
|
|
| |
Signed-off-by: Anand V. Avati <avati@amp.gluster.com>
|