Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

better error reporting in blobstore; DEBUG2 support in NC; fixed LFS …

…on 32-bit systems
  • Loading branch information...
commit 9679189801c191f1c67142d9c395cf16d874e62a 1 parent a64f781
@dmitrii dmitrii authored
Showing with 71 additions and 60 deletions.
  1. +39 −32 configure
  2. +3 −3 configure.ac
  3. +1 −0  node/handlers.c
  4. +28 −25 storage/blobstore.c
View
71 configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.66 for Eucalyptus eee-3.0.0.
+# Generated by GNU Autoconf 2.67 for Eucalyptus eee-3.0.0.
#
# Report bugs to <support@open.eucalyptus.com>.
#
@@ -767,8 +767,9 @@ do
fi
case $ac_option in
- *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
- *) ac_optarg=yes ;;
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
esac
# Accept the important Cygnus configure options, so we can diagnose typos.
@@ -1411,7 +1412,7 @@ test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
Eucalyptus configure eee-3.0.0
-generated by GNU Autoconf 2.66
+generated by GNU Autoconf 2.67
Copyright (C) 2010 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
@@ -1483,7 +1484,7 @@ $as_echo "$ac_try_echo"; } >&5
mv -f conftest.er1 conftest.err
fi
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } >/dev/null && {
+ test $ac_status = 0; } > conftest.i && {
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
test ! -s conftest.err
}; then :
@@ -1546,7 +1547,7 @@ if ac_fn_c_try_cpp "$LINENO"; then :
else
ac_header_preproc=no
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
$as_echo "$ac_header_preproc" >&6; }
@@ -1887,7 +1888,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by Eucalyptus $as_me eee-3.0.0, which was
-generated by GNU Autoconf 2.66. Invocation command line was
+generated by GNU Autoconf 2.67. Invocation command line was
$ $0 $@
@@ -2145,7 +2146,7 @@ $as_echo "$as_me: loading site script $ac_site_file" >&6;}
|| { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
fi
done
@@ -2544,7 +2545,7 @@ fi
test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
# Provide some information about the compiler.
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -2659,7 +2660,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
@@ -2702,7 +2703,7 @@ else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
fi
rm -f conftest conftest$ac_cv_exeext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -2761,7 +2762,7 @@ $as_echo "$ac_try_echo"; } >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot run C compiled programs.
If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
fi
fi
fi
@@ -2813,7 +2814,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
fi
rm -f conftest.$ac_cv_objext conftest.$ac_ext
fi
@@ -3076,7 +3077,7 @@ else
# Broken: fails on valid input.
continue
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
@@ -3092,11 +3093,11 @@ else
ac_preproc_ok=:
break
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :
break
fi
@@ -3135,7 +3136,7 @@ else
# Broken: fails on valid input.
continue
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
# OK, works on sane cases. Now check whether nonexistent headers
# can be detected and how.
@@ -3151,18 +3152,18 @@ else
ac_preproc_ok=:
break
fi
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.err conftest.i conftest.$ac_ext
done
# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
+rm -f conftest.i conftest.err conftest.$ac_ext
if $ac_preproc_ok; then :
else
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
fi
ac_ext=c
@@ -3543,7 +3544,7 @@ fi
$as_echo "$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;;
esac
build=$ac_cv_build
ac_save_IFS=$IFS; IFS='-'
@@ -3584,9 +3585,9 @@ java_min_version="1.6.0"
ant_min_version="1.6.5"
# these are for large files (>2GB)
-LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
-LIBS="`getconf LFS64_LIBS` $LIBS"
-CFLAGS="`getconf LFS64_CFLAGS`"
+LDFLAGS="`getconf LFS64_LDFLAGS` `getconf LFS_LDFLAGS` $LDFLAGS"
+LIBS="`getconf LFS64_LIBS` `getconf LFS_LIBS` $LIBS"
+CFLAGS="`getconf LFS64_CFLAGS` `getconf LFS_CFLAGS`"
# compile options
CFLAGS="${CFLAGS} -Wall -Wno-unused-variable -fPIC -DHAVE_CONFIG_H -std=gnu99"
@@ -4287,7 +4288,7 @@ fi
test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
+See \`config.log' for more details" "$LINENO" 5 ; }
# Provide some information about the compiler.
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -7922,7 +7923,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# values after options handling.
ac_log="
This file was extended by Eucalyptus $as_me eee-3.0.0, which was
-generated by GNU Autoconf 2.66. Invocation command line was
+generated by GNU Autoconf 2.67. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -7984,7 +7985,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
Eucalyptus config.status eee-3.0.0
-configured by $0, generated by GNU Autoconf 2.66,
+configured by $0, generated by GNU Autoconf 2.67,
with options \\"\$ac_cs_config\\"
Copyright (C) 2010 Free Software Foundation, Inc.
@@ -8004,11 +8005,16 @@ ac_need_defaults=:
while test $# != 0
do
case $1 in
- --*=*)
+ --*=?*)
ac_option=`expr "X$1" : 'X\([^=]*\)='`
ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
ac_shift=:
;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
*)
ac_option=$1
ac_optarg=$2
@@ -8030,6 +8036,7 @@ do
$ac_shift
case $ac_optarg in
*\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
esac
as_fn_append CONFIG_FILES " '$ac_optarg'"
ac_need_defaults=false;;
@@ -8109,7 +8116,7 @@ do
"tools/eucalyptus-cloud") CONFIG_FILES="$CONFIG_FILES tools/eucalyptus-cloud:tools/eucalyptus-cloud.in" ;;
"tools/eucalyptus-nc") CONFIG_FILES="$CONFIG_FILES tools/eucalyptus-nc:tools/eucalyptus-nc.in" ;;
- *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
esac
done
@@ -8424,7 +8431,7 @@ do
esac
case $ac_mode$ac_tag in
:[FHL]*:*);;
- :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
:[FH]-) ac_tag=-:-;;
:[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
esac
@@ -8452,7 +8459,7 @@ do
[\\/$]*) false;;
*) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
esac ||
- as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
esac
case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
as_fn_append ac_file_inputs " '$ac_f'"
@@ -8479,7 +8486,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
case $ac_tag in
*:-:* | *:-) cat >"$tmp/stdin" \
- || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
esac
;;
esac
View
6 configure.ac
@@ -44,9 +44,9 @@ java_min_version="1.6.0"
ant_min_version="1.6.5"
# these are for large files (>2GB)
-LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
-LIBS="`getconf LFS64_LIBS` $LIBS"
-CFLAGS="`getconf LFS64_CFLAGS`"
+LDFLAGS="`getconf LFS64_LDFLAGS` `getconf LFS_LDFLAGS` $LDFLAGS"
+LIBS="`getconf LFS64_LIBS` `getconf LFS_LIBS` $LIBS"
+CFLAGS="`getconf LFS64_CFLAGS` `getconf LFS_CFLAGS`"
# compile options
CFLAGS="${CFLAGS} -Wall -Wno-unused-variable -fPIC -DHAVE_CONFIG_H -std=gnu99"
View
1  node/handlers.c
@@ -781,6 +781,7 @@ static int init (void)
else if (!strcmp(tmp,"WARN")) {i=EUCAWARN;}
else if (!strcmp(tmp,"ERROR")) {i=EUCAERROR;}
else if (!strcmp(tmp,"FATAL")) {i=EUCAFATAL;}
+ else if (!strcmp(tmp,"DEBUG2")) {i=EUCADEBUG2;}
free(tmp);
}
logfile(log, i);
View
53 storage/blobstore.c
@@ -140,7 +140,7 @@ typedef struct _blobstore_filelock {
__thread blobstore_error_t _blobstore_errno = BLOBSTORE_ERROR_OK; // thread-local errno
static void (* err_fn) (const char * msg) = NULL;
static unsigned char _do_print_errors = 1;
-static unsigned char _do_print_trace = 0;
+static unsigned char _do_print_trace = 1;
static pthread_mutex_t _blobstore_mutex = PTHREAD_MUTEX_INITIALIZER; // process-global mutex
static blobstore_filelock * locks_list = NULL; // process-global LL head (TODO: replace this with a hash table)
@@ -222,14 +222,16 @@ static void err (blobstore_error_t error, const char * custom_msg, const int src
dump_trace (_blobstore_last_trace, sizeof(_blobstore_last_trace));
if (_do_print_errors) {
- myprintf (EUCAERROR, "error: %s\n", msg);
+ myprintf (EUCAERROR, "error: %s\n", _blobstore_last_msg);
if (_do_print_trace)
myprintf (EUCAERROR, "%s", _blobstore_last_trace);
}
_blobstore_errno = error;
}
-__INLINE__ static void propagate_system_errno (blobstore_error_t default_errno)
+#define PROPAGATE_ERR(_ERRNO) propagate_system_errno(_ERRNO,__LINE__,__FILE__)
+
+__INLINE__ static void propagate_system_errno (blobstore_error_t default_errno, const int src_line_no, const char * src_file_name)
{
switch (errno) {
case ENOENT: _blobstore_errno = BLOBSTORE_ERROR_NOENT; break;
@@ -243,7 +245,7 @@ __INLINE__ static void propagate_system_errno (blobstore_error_t default_errno)
perror ("blobstore");
_blobstore_errno = default_errno;
}
- ERR (_blobstore_errno, NULL); // print the message
+ err (_blobstore_errno, NULL, src_line_no, src_file_name);
}
void blobstore_set_error_function ( void (* fn) (const char * msg) )
@@ -472,7 +474,7 @@ static int open_and_lock (const char * path,
// open/create the file, using Posix file locks for inter-process locking
int fd = open (path, o_flags, mode);
if (fd == -1) {
- propagate_system_errno (BLOBSTORE_ERROR_UNKNOWN);
+ PROPAGATE_ERR (BLOBSTORE_ERROR_UNKNOWN);
goto error;
}
for (;;) {
@@ -489,7 +491,7 @@ static int open_and_lock (const char * path,
break; // success!
pthread_rwlock_unlock (&(path_lock->lock)); // give up the posix lock
if (errno != EAGAIN) { // any error other than inability to get the lock
- propagate_system_errno (BLOBSTORE_ERROR_UNKNOWN);
+ PROPAGATE_ERR (BLOBSTORE_ERROR_UNKNOWN);
goto error;
}
}
@@ -890,7 +892,7 @@ static int write_blockblob_metadata_path (blockblob_path_t path_t, const blobsto
fprintf (FH, "%s", str);
fclose (FH);
} else {
- propagate_system_errno (BLOBSTORE_ERROR_UNKNOWN);
+ PROPAGATE_ERR (BLOBSTORE_ERROR_UNKNOWN);
return -1;
}
return 0;
@@ -905,7 +907,7 @@ static int read_blockblob_metadata_path (blockblob_path_t path_t, const blobstor
int fd = open (path, O_RDONLY);
if (fd == -1) {
- propagate_system_errno (BLOBSTORE_ERROR_UNKNOWN);
+ PROPAGATE_ERR (BLOBSTORE_ERROR_UNKNOWN);
return -1;
}
@@ -931,19 +933,19 @@ static int write_array_blockblob_metadata_path (blockblob_path_t path_t, const b
FILE * fp = fopen (path, "w+");
umask (old_umask);
if (fp == NULL) {
- propagate_system_errno (BLOBSTORE_ERROR_UNKNOWN);
+ PROPAGATE_ERR (BLOBSTORE_ERROR_UNKNOWN);
return -1;
}
for (int i=0; i<array_size; i++) {
if (fprintf (fp, "%s\n", array [i]) < 0) {
- propagate_system_errno (BLOBSTORE_ERROR_UNKNOWN);
+ PROPAGATE_ERR (BLOBSTORE_ERROR_UNKNOWN);
ret = -1;
break;
}
}
if (fclose (fp) == -1) {
- propagate_system_errno (BLOBSTORE_ERROR_UNKNOWN);
+ PROPAGATE_ERR (BLOBSTORE_ERROR_UNKNOWN);
ret = -1;
}
return ret;
@@ -977,7 +979,7 @@ static int read_array_blockblob_metadata_path (blockblob_path_t path_t, const bl
free (line);
break;
}
- propagate_system_errno (BLOBSTORE_ERROR_UNKNOWN);
+ PROPAGATE_ERR (BLOBSTORE_ERROR_UNKNOWN);
ret = -1;
break;
}
@@ -995,7 +997,7 @@ static int read_array_blockblob_metadata_path (blockblob_path_t path_t, const bl
lines [i] = line;
}
if (fclose (fp) == -1) {
- propagate_system_errno (BLOBSTORE_ERROR_UNKNOWN);
+ PROPAGATE_ERR (BLOBSTORE_ERROR_UNKNOWN);
ret = -1;
}
if (ret == -1) {
@@ -1567,7 +1569,7 @@ blockblob * blockblob_open ( blobstore * bs,
}
int created_directory = ensure_blockblob_metadata_path (bs, bb->id); // TODO: maybe don't create directories needlessly if flags==0?
if (created_directory==-1) {
- propagate_system_errno (BLOBSTORE_ERROR_UNKNOWN);
+ PROPAGATE_ERR (BLOBSTORE_ERROR_UNKNOWN);
goto unlock;
}
if (blobstore_unlock(bs)==-1) {
@@ -1582,7 +1584,7 @@ blockblob * blockblob_open ( blobstore * bs,
if (bb->fd != -1) {
struct stat sb;
if (fstat (bb->fd, &sb)==-1) {
- propagate_system_errno (BLOBSTORE_ERROR_UNKNOWN);
+ PROPAGATE_ERR (BLOBSTORE_ERROR_UNKNOWN);
goto clean;
}
@@ -1635,11 +1637,11 @@ blockblob * blockblob_open ( blobstore * bs,
}
if (lseek (bb->fd, size_bytes - 1, SEEK_CUR) == (off_t)-1) { // create a file with a hole
- propagate_system_errno (BLOBSTORE_ERROR_UNKNOWN);
+ PROPAGATE_ERR (BLOBSTORE_ERROR_UNKNOWN);
goto clean;
}
if (write (bb->fd, zero_buf, 1) != (ssize_t)1) {
- propagate_system_errno (BLOBSTORE_ERROR_UNKNOWN);
+ PROPAGATE_ERR (BLOBSTORE_ERROR_UNKNOWN);
goto clean;
}
if (sig)
@@ -1893,20 +1895,20 @@ static int dm_create_devices (char * dev_names[], char * dm_tables[], int size)
myprintf (EUCAINFO, "creating device %s\n", dev_names [i]);
if (pipe (pipefds) == -1) {
- propagate_system_errno (BLOBSTORE_ERROR_UNKNOWN);
+ PROPAGATE_ERR (BLOBSTORE_ERROR_UNKNOWN);
goto cleanup;
}
pid_t cpid = fork();
if (cpid<0) {
- propagate_system_errno (BLOBSTORE_ERROR_UNKNOWN);
+ PROPAGATE_ERR (BLOBSTORE_ERROR_UNKNOWN);
goto cleanup;
} else if (cpid==0) { // child
close (pipefds [1]);
if (dup2 (pipefds [0], 0) == -1) {
- propagate_system_errno (BLOBSTORE_ERROR_UNKNOWN);
+ PROPAGATE_ERR (BLOBSTORE_ERROR_UNKNOWN);
_exit (1);
}
_exit (execl (helpers_path [ROOTWRAP], helpers_path [ROOTWRAP], helpers_path [DMSETUP], "create", dev_names[i], NULL));
@@ -1918,7 +1920,7 @@ static int dm_create_devices (char * dev_names[], char * dm_tables[], int size)
int status;
if (waitpid (cpid, &status, 0) == -1) {
- propagate_system_errno (BLOBSTORE_ERROR_UNKNOWN);
+ PROPAGATE_ERR (BLOBSTORE_ERROR_UNKNOWN);
goto cleanup;
}
if (WEXITSTATUS(status) != 0) {
@@ -2087,7 +2089,7 @@ static int verify_bb ( const blockblob * bb, unsigned long long min_size_bytes )
}
struct stat sb;
if (fstat (bb->fd, &sb)==-1) {
- propagate_system_errno (BLOBSTORE_ERROR_NOENT);
+ PROPAGATE_ERR (BLOBSTORE_ERROR_NOENT);
return -1;
}
if (sb.st_size < bb->size_bytes) {
@@ -2099,7 +2101,7 @@ static int verify_bb ( const blockblob * bb, unsigned long long min_size_bytes )
return -1;
}
if (stat (bb->device_path, &sb)==-1) {
- propagate_system_errno (BLOBSTORE_ERROR_NOENT);
+ PROPAGATE_ERR (BLOBSTORE_ERROR_NOENT);
return -1;
}
if (!S_ISBLK(sb.st_mode)) {
@@ -2189,7 +2191,7 @@ int blockblob_clone ( blockblob * bb, // destination blob, which blocks may be u
}
struct stat sb;
if (stat (path, &sb)==-1) {
- propagate_system_errno (BLOBSTORE_ERROR_NOENT);
+ PROPAGATE_ERR (BLOBSTORE_ERROR_NOENT);
return -1;
}
if (!S_ISBLK(sb.st_mode)) {
@@ -3044,7 +3046,8 @@ static int do_metadata_test (const char * base, const char * name)
blockblob * bb1;
_OPENBB(bb1,B1,BB_SIZE,NULL,_CBB,0,0); // bs size: 10
-
+ if (bb1==NULL) return 1; // so test does not SEGFAULT when run as non-root
+
int t = 1;
char ** array;
int array_size;
Please sign in to comment.
Something went wrong with that request. Please try again.