1
0
Fork 0

Merge branch 'master' of github.com:triAGENS/ArangoDB into devel

Conflicts:
	.gitignore
	Makefile.in
	Makefile.local
	Makefile.unittests
This commit is contained in:
Frank Celler 2012-08-09 15:25:29 +02:00
commit 69a8e64f9b
40 changed files with 447 additions and 178 deletions

127
.gitignore vendored
View File

@ -1,4 +1,8 @@
*~
3rdParty/czmq-1.1.0/libtool
3rdParty/czmq-1.1.0/src/czmq_selftest
3rdParty/czmq-1.1.0/src/libczmq.pc
3rdParty/czmq-1.1.0/src/platform.h
3rdParty/libev/ARCH.x64
3rdParty/libev/libtool
3rdParty/mruby/bin/mrbc
@ -11,9 +15,61 @@
3rdParty/mruby/mrblib/mrblib.c
3rdParty/mruby/mrblib/mrblib.ctmp
3rdParty/mruby/mrblib/mrblib.rbtmp
3rdParty/protobuf-2.4.1/BUILD/
3rdParty/protobuf-2.4.1/gtest/libtool
3rdParty/protobuf-2.4.1/gtest/scripts/gtest-config
3rdParty/protobuf-2.4.1/libtool
3rdParty/protobuf-2.4.1/protobuf-lite.pc
3rdParty/protobuf-2.4.1/protobuf.pc
3rdParty/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_test_bad_identifiers.pb.cc
3rdParty/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_test_bad_identifiers.pb.h
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_custom_options.pb.cc
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_custom_options.pb.h
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_embed_optimize_for.pb.cc
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_embed_optimize_for.pb.h
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_empty.pb.cc
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_empty.pb.h
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_import_lite.pb.cc
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_import_lite.pb.h
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_import.pb.cc
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_import.pb.h
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_lite_imports_nonlite.pb.cc
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_lite_imports_nonlite.pb.h
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_lite.pb.cc
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_lite.pb.h
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_mset.pb.cc
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_mset.pb.h
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_no_generic_services.pb.cc
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_no_generic_services.pb.h
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_optimize_for.pb.cc
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_optimize_for.pb.h
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest.pb.cc
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest.pb.h
3rdParty/protobuf-2.4.1/src/protoc
3rdParty/protobuf-2.4.1/src/unittest_proto_middleman
3rdParty/ptmalloc3/tst-independent-alloc
3rdParty/ptmalloc3/t-test1
3rdParty/ptmalloc3/t-test2
3rdParty/zeromq-2.2.0/BUILD/
3rdParty/zeromq-2.2.0/builds/redhat/zeromq.spec
3rdParty/zeromq-2.2.0/libtool
3rdParty/zeromq-2.2.0/perf/inproc_lat
3rdParty/zeromq-2.2.0/perf/inproc_thr
3rdParty/zeromq-2.2.0/perf/local_lat
3rdParty/zeromq-2.2.0/perf/local_thr
3rdParty/zeromq-2.2.0/perf/remote_lat
3rdParty/zeromq-2.2.0/perf/remote_thr
3rdParty/zeromq-2.2.0/src/libzmq.pc
3rdParty/zeromq-2.2.0/src/platform.hpp
3rdParty/zeromq-2.2.0/tests/test_hwm
3rdParty/zeromq-2.2.0/tests/test_pair_inproc
3rdParty/zeromq-2.2.0/tests/test_pair_ipc
3rdParty/zeromq-2.2.0/tests/test_pair_tcp
3rdParty/zeromq-2.2.0/tests/test_reqrep_inproc
3rdParty/zeromq-2.2.0/tests/test_reqrep_ipc
3rdParty/zeromq-2.2.0/tests/test_reqrep_tcp
3rdParty/zeromq-2.2.0/tests/test_shutdown_stress
3rdParty/zeromq-2.2.0/tests/test_timeo
arangod/Ahuacatl/ahuacatl-grammar.output
ARCH.*
autom4te.cache
@ -29,14 +85,17 @@ config.h
config.log
config/revision.sh
config.status
configure
config/version.sh
COVERAGE
.czmq-build-64
.deps
.dirstamp
Doxygen/arango.doxy
Doxygen/html/
Doxygen/js
Doxygen/latex/
Doxygen/manuals
Doxygen/.setup-directories
Doxygen/web/*.html
Doxygen/wiki/
@ -47,14 +106,15 @@ Doxygen/xml/
GPATH
GRTAGS
GTAGS
lib/JsonParserX/JsonParserX.output
Installation/arangod.conf
*.la
lib*.a
lib/BasicsC/local-configuration.h
lib/Documentation/*.pdf
.libev-build-*
lib/JsonParserX/JsonParserX.output
.libs
*.lo
configure
m4/component.engine
m4/component.files
m4/component.storage
@ -80,6 +140,7 @@ Makefile.local
*.old
out
*.Po
.protobuf-build-64
*.pyc
.setup-js-directories
.setup-mr-directories
@ -90,6 +151,7 @@ tags
TAGS
UnitTests/basics_suite
UnitTests/geo_suite
UnitTests/HttpInterface/Gemfile.lock
UnitTests/HttpInterface/logs
UnitTests/Jutland/CsvReaderTest.cpp
UnitTests/Jutland/Makefile.am
@ -100,65 +162,4 @@ UnitTests/Philadelphia/Makefile.py
UnitTests/Philadelphia/Runner.cpp
.v8-build-*
VC++
3rdParty/protobuf-2.4.1/gtest/libtool
3rdParty/protobuf-2.4.1/gtest/scripts/gtest-config
3rdParty/protobuf-2.4.1/libtool
3rdParty/protobuf-2.4.1/protobuf-lite.pc
3rdParty/protobuf-2.4.1/protobuf.pc
3rdParty/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_test_bad_identifiers.pb.cc
3rdParty/protobuf-2.4.1/src/google/protobuf/compiler/cpp/cpp_test_bad_identifiers.pb.h
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest.pb.cc
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest.pb.h
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_custom_options.pb.cc
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_custom_options.pb.h
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_embed_optimize_for.pb.cc
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_embed_optimize_for.pb.h
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_empty.pb.cc
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_empty.pb.h
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_import.pb.cc
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_import.pb.h
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_import_lite.pb.cc
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_import_lite.pb.h
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_lite.pb.cc
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_lite.pb.h
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_lite_imports_nonlite.pb.cc
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_lite_imports_nonlite.pb.h
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_mset.pb.cc
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_mset.pb.h
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_no_generic_services.pb.cc
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_no_generic_services.pb.h
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_optimize_for.pb.cc
3rdParty/protobuf-2.4.1/src/google/protobuf/unittest_optimize_for.pb.h
3rdParty/protobuf-2.4.1/src/protoc
3rdParty/protobuf-2.4.1/src/unittest_proto_middleman
3rdParty/zeromq-2.2.0/builds/redhat/zeromq.spec
3rdParty/zeromq-2.2.0/libtool
3rdParty/zeromq-2.2.0/perf/inproc_lat
3rdParty/zeromq-2.2.0/perf/inproc_thr
3rdParty/zeromq-2.2.0/perf/local_lat
3rdParty/zeromq-2.2.0/perf/local_thr
3rdParty/zeromq-2.2.0/perf/remote_lat
3rdParty/zeromq-2.2.0/perf/remote_thr
3rdParty/zeromq-2.2.0/src/libzmq.pc
3rdParty/zeromq-2.2.0/src/platform.hpp
3rdParty/zeromq-2.2.0/tests/test_hwm
3rdParty/zeromq-2.2.0/tests/test_pair_inproc
3rdParty/zeromq-2.2.0/tests/test_pair_ipc
3rdParty/zeromq-2.2.0/tests/test_pair_tcp
3rdParty/zeromq-2.2.0/tests/test_reqrep_inproc
3rdParty/zeromq-2.2.0/tests/test_reqrep_ipc
3rdParty/zeromq-2.2.0/tests/test_reqrep_tcp
3rdParty/zeromq-2.2.0/tests/test_shutdown_stress
3rdParty/zeromq-2.2.0/tests/test_timeo
.zeromq-build-64
3rdParty/zeromq-2.2.0/BUILD/
.czmq-build-64
3rdParty/czmq-1.1.0/libtool
3rdParty/czmq-1.1.0/src/czmq_selftest
3rdParty/czmq-1.1.0/src/libczmq.pc
3rdParty/czmq-1.1.0/src/platform.h
.protobuf-build-64
3rdParty/protobuf-2.4.1/BUILD/
Installation/arangod.conf
lib/Documentation/*.pdf
Doxygen/manuals

9
.travis.yml Normal file
View File

@ -0,0 +1,9 @@
language: c
before_script: "bash -c 'cd UnitTests/HttpInterface && bundle'"
script: "./configure && make && ./unittests.sh"
branches:
only:
- master
- 1.0
- 1.1

View File

@ -31,7 +31,7 @@ PROJECT_NAME = "ArangoDB"
# This could be handy for archiving the generated documentation or
# if some version control system is used.
PROJECT_NUMBER = 1.0.beta1
PROJECT_NUMBER = 1.0.beta2
# Using the PROJECT_BRIEF tag one can provide an optional one line description for a project that appears at the top of each page and should give viewer a quick idea about the purpose of the project. Keep the description short.
@ -212,7 +212,7 @@ ALIASES += GE{1}="<b>\1</b>"
ALIASES += EXAMPLES="<b>Examples</b><br>"
ALIASES += EXAMPLE{2}="@latexonly\renewcommand{\examplecap}{\2}\setboolean{hascap}{true}@endlatexonly@verbinclude \1@latexonly\setboolean{hascap}{false}@endlatexonly"
ALIASES += TINYEXAMPLE{2}="@latexonly\renewcommand{\examplecap}{\2}\setboolean{hascap}{true}\renewcommand{\examplesize}{\tiny}@endlatexonly@verbinclude \1@latexonly\setboolean{hascap}{false}\renewcommand{\examplesize}{\ttfamily}@endlatexonly"
ALIASES += VERSION="1.0.beta1"
ALIASES += VERSION="1.0.beta2"
ALIASES += EMBEDTOC{1}="@ifnot LATEX<hr>@copydoc \1<hr>@endif"
ALIASES += RESTHEADER{2}="@if LATEX@latexonly \vskip 0.5em\colorbox{gray}{@endlatexonly\1 (\2)@latexonly}\vskip 1em@endlatexonly@else <hr><em>\1</em> (\2)<hr><br>@endif"
ALIASES += LATEXBREAK="@latexonly\vskip -0.5em\hskip 1.0em@endlatexonly"

View File

@ -31,7 +31,7 @@ PROJECT_NAME = "ArangoDB"
# This could be handy for archiving the generated documentation or
# if some version control system is used.
PROJECT_NUMBER = 1.0.beta1
PROJECT_NUMBER = 1.0.beta2
# Using the PROJECT_BRIEF tag one can provide an optional one line description for a project that appears at the top of each page and should give viewer a quick idea about the purpose of the project. Keep the description short.
@ -212,7 +212,7 @@ ALIASES += GE{1}="<b>\1</b>"
ALIASES += EXAMPLES="<b>Examples</b><br>"
ALIASES += EXAMPLE{2}="@latexonly\renewcommand{\examplecap}{\2}\setboolean{hascap}{true}@endlatexonly@verbinclude \1@latexonly\setboolean{hascap}{false}@endlatexonly"
ALIASES += TINYEXAMPLE{2}="@latexonly\renewcommand{\examplecap}{\2}\setboolean{hascap}{true}\renewcommand{\examplesize}{\tiny}@endlatexonly@verbinclude \1@latexonly\setboolean{hascap}{false}\renewcommand{\examplesize}{\ttfamily}@endlatexonly"
ALIASES += VERSION="1.0.beta1"
ALIASES += VERSION="1.0.beta2"
ALIASES += EMBEDTOC{1}="@ifnot LATEX<hr>@copydoc \1<hr>@endif"
ALIASES += RESTHEADER{2}="@if LATEX@latexonly \vskip 0.5em\colorbox{gray}{@endlatexonly\1 (\2)@latexonly}\vskip 1em@endlatexonly@else <hr><em>\1</em> (\2)<hr><br>@endif"
ALIASES += LATEXBREAK="@latexonly\vskip -0.5em\hskip 1.0em@endlatexonly"

View File

@ -31,7 +31,7 @@ PROJECT_NAME = "ArangoDB"
# This could be handy for archiving the generated documentation or
# if some version control system is used.
PROJECT_NUMBER = 1.0.beta1
PROJECT_NUMBER = 1.0.beta2
# Using the PROJECT_BRIEF tag one can provide an optional one line description for a project that appears at the top of each page and should give viewer a quick idea about the purpose of the project. Keep the description short.
@ -212,7 +212,7 @@ ALIASES += GE{1}="<b>\1</b>"
ALIASES += EXAMPLES="<b>Examples</b><br>"
ALIASES += EXAMPLE{2}="@latexonly\renewcommand{\examplecap}{\2}\setboolean{hascap}{true}@endlatexonly@verbinclude \1@latexonly\setboolean{hascap}{false}@endlatexonly"
ALIASES += TINYEXAMPLE{2}="@latexonly\renewcommand{\examplecap}{\2}\setboolean{hascap}{true}\renewcommand{\examplesize}{\tiny}@endlatexonly@verbinclude \1@latexonly\setboolean{hascap}{false}\renewcommand{\examplesize}{\ttfamily}@endlatexonly"
ALIASES += VERSION="1.0.beta1"
ALIASES += VERSION="1.0.beta2"
ALIASES += EMBEDTOC{1}="@ifnot LATEX<hr>@copydoc \1<hr>@endif"
ALIASES += RESTHEADER{2}="@if LATEX@latexonly \vskip 0.5em\colorbox{gray}{@endlatexonly\1 (\2)@latexonly}\vskip 1em@endlatexonly@else <hr><em>\1</em> (\2)<hr><br>@endif"
ALIASES += LATEXBREAK="@latexonly\vskip -0.5em\hskip 1.0em@endlatexonly"

View File

@ -31,7 +31,7 @@ PROJECT_NAME = "ArangoDB"
# This could be handy for archiving the generated documentation or
# if some version control system is used.
PROJECT_NUMBER = 1.0.beta1
PROJECT_NUMBER = 1.0.beta2
# Using the PROJECT_BRIEF tag one can provide an optional one line description for a project that appears at the top of each page and should give viewer a quick idea about the purpose of the project. Keep the description short.
@ -212,7 +212,7 @@ ALIASES += GE{1}="<b>\1</b>"
ALIASES += EXAMPLES="<b>Examples</b><br>"
ALIASES += EXAMPLE{2}="@latexonly\renewcommand{\examplecap}{\2}\setboolean{hascap}{true}@endlatexonly@verbinclude \1@latexonly\setboolean{hascap}{false}@endlatexonly"
ALIASES += TINYEXAMPLE{2}="@latexonly\renewcommand{\examplecap}{\2}\setboolean{hascap}{true}\renewcommand{\examplesize}{\tiny}@endlatexonly@verbinclude \1@latexonly\setboolean{hascap}{false}\renewcommand{\examplesize}{\ttfamily}@endlatexonly"
ALIASES += VERSION="1.0.beta1"
ALIASES += VERSION="1.0.beta2"
ALIASES += EMBEDTOC{1}="@ifnot LATEX<hr>@copydoc \1<hr>@endif"
ALIASES += RESTHEADER{2}="@if LATEX@latexonly \vskip 0.5em\colorbox{gray}{@endlatexonly\1 (\2)@latexonly}\vskip 1em@endlatexonly@else <hr><em>\1</em> (\2)<hr><br>@endif"
ALIASES += LATEXBREAK="@latexonly\vskip -0.5em\hskip 1.0em@endlatexonly"

View File

@ -39,8 +39,9 @@ d 0755 ${susr} ${sgrp} ${data_dir}/arangodb -
# static files
d 0755 ${susr} ${sgrp} ${static_dir} -
d 0755 ${susr} ${sgrp} ${static_dir}/js -
d 0755 ${susr} ${sgrp} ${static_dir}/html -
d 0755 ${susr} ${sgrp} ${static_dir}/arangodb -
d 0755 ${susr} ${sgrp} ${static_dir}/arangodb/js -
d 0755 ${susr} ${sgrp} ${static_dir}/arangodb/html -
# PID file directory
d 0755 ${susr} ${sgrp} /var/run/arangodb -
@ -80,7 +81,7 @@ EOF
%else
%preinstall <<EOF
getent group arango >/dev/null || groupadd -r arango
getent passwd arango >/dev/null || useradd -r -g arango -d ${static_dir} -s /bin/false -c "ArangoDB Application User" arango
getent passwd arango >/dev/null || useradd -r -g arango -d ${static_dir}/arangodb -s /bin/false -c "ArangoDB Application User" arango
EOF
%endif
@ -93,13 +94,37 @@ f 0755 ${rusr} ${rgrp} ${initdir}/arangod ${project_dir}/Installation/${START_SC
%postinstall <<EOF
chkconfig --level ${runlevels} arangod on
exit 0
EOF
%preremove <<EOF
${initdir}/arangod stop 2&>1 > /dev/null || true
chkconfig --del arangod
rcarangod stop || true
exit 0
EOF
## -----------------------------------------------------------------------------
## INSSERV
## -----------------------------------------------------------------------------
%elseifdef insserv
f 0755 ${rusr} ${rgrp} ${initdir}/arangod ${project_dir}/Installation/${START_SCRIPT}
%postinstall <<EOF
test -x /sbin/insserv && /sbin/insserv /etc/init.d/arangod 2&>1 > /dev/null
exit 0
EOF
%preremove <<EOF
${initdir}/arangod stop 2&>1 > /dev/null || true
test -x /sbin/insserv && /sbin/insserv -r /etc/init.d/arangod 2&>1 > /dev/null
exit 0
EOF
## -----------------------------------------------------------------------------
## EPM
## -----------------------------------------------------------------------------
%else
%system linux

View File

@ -3,11 +3,11 @@
#
# Author: Achim Brandt <a.brandt@triagens.de>
#
# /etc/init.d/arango
# /etc/init.d/arangod
#
# and symbolic its link
#
# /usr/sbin/rcarango
# /usr/sbin/rcarangod
#
### BEGIN INIT INFO
# Provides: arangod
@ -25,6 +25,7 @@ ARANGO_SYSCONFIG=/etc/arangodb/arangod.conf
test -r $ARANGO_SYSCONFIG || exit 6
ARANGO_TIMEOUT=120
ARANGO_PIDFILE=/var/run/arangodb/arangod.pid
. /etc/rc.status
@ -65,7 +66,7 @@ case "$1" in
stop)
echo -n "Shutting down ARANGO daemon"
killproc -p $ARANGO_PIDFILE -TERM $ARANGO_BIN
killproc -t $ARANGO_TIMEOUT -p $ARANGO_PIDFILE -TERM $ARANGO_BIN
# Remember status and be verbose
rc_status -v

View File

@ -1158,10 +1158,6 @@ AM_LDFLAGS = @BOOST_LDFLAGS@ @LIBEV_LDFLAGS@ @MATH_LDFLAGS@ \
noinst_LIBRARIES = lib/libarango.a lib/libarango_v8.a \
lib/libarango_fe.a lib/libarango_client.a $(am__append_8)
# exclude arango-password and arango-dfdb from sources list, otherwise make TAGS will fail
bin_arango_password_SOURCES =
bin_arango_dfdb_SOURCES =
################################################################################
### @brief /etc data
################################################################################
@ -1589,11 +1585,8 @@ PIDFILE := /tmp/arango.$(PID).pid
VOCDIR := /tmp/vocdir.$(PID)
VOCPORT := $(shell printf "3%04d" `expr $(PID) % 10000`)
VOCHOST := 127.0.0.1
SERVER_OPT := --configuration none --javascript.startup-directory ./js \
--javascript.modules-path \
./js/server/modules:./js/common/modules \
--javascript.action-directory ./js/actions/system $(shell echo \
$$SERVER_OPT)
SERVER_START :=
SERVER_OPT := --configuration none --javascript.startup-directory ./js --javascript.modules-path ./js/server/modules:./js/common/modules --javascript.action-directory ./js/actions/system --database.maximal-journal-size 1000000 --javascript.gc-interval 1 $(SERVER_START)
CLIENT_OPT := --javascript.startup-directory ./js --javascript.modules-path ./js/client/modules:./js/common/modules --no-colors --quiet
STARTFILE := $(VOCDIR)/startup
CURL := curl
@ -1658,6 +1651,7 @@ SHELL_SERVER_AHUACATL = @srcdir@/js/server/tests/ahuacatl-ranges.js \
@srcdir@/js/server/tests/ahuacatl-skiplist.js \
@srcdir@/js/server/tests/ahuacatl-refaccess-variable.js \
@srcdir@/js/server/tests/ahuacatl-refaccess-attribute.js \
@srcdir@/js/server/tests/ahuacatl-skiplist.js \
@srcdir@/js/server/tests/ahuacatl-queries-simple.js \
@srcdir@/js/server/tests/ahuacatl-queries-variables.js \
@srcdir@/js/server/tests/ahuacatl-queries-geo.js \
@ -1695,6 +1689,20 @@ UNITTESTS_CLIENT = $(addprefix --javascript.unit-tests ,$(SHELL_CLIENT))
################################################################################
BITARRAY_COMMON = @srcdir@/js/common/tests/shell-bitarray-index.js
UNITTESTS_SERVER_BITARRAY = $(addprefix --javascript.unit-tests ,$(BITARRAY_COMMON))
################################################################################
### @brief arango password
################################################################################
# exclude arango skrips from sources list
bin_arango_password_SOURCES =
################################################################################
### @brief arango datafile debugger
################################################################################
# exclude arango skrips from sources list
bin_arango_dfdb_SOURCES =
PROTOBUFDIR = @abs_top_srcdir@/3rdParty/protobuf-2.4.1/BUILD
@ENABLE_32BIT_TRUE@@ENABLE_ALL_IN_ONE_TRUE@LIBEV_BUILD_VERSION = ARCH.ia32
@ENABLE_64BIT_TRUE@@ENABLE_ALL_IN_ONE_TRUE@LIBEV_BUILD_VERSION = ARCH.x64
@ -5263,6 +5271,8 @@ start-server:
@(test "$(PROTO)" == "unix" && echo "<< STARTING SERVER ON UNIX SOCKET ENDPOINT >>") || true
@echo "================================================================================"
@echo
@echo "Server Options: $(SERVER_OPT)"
@echo
rm -f "$(PIDFILE)"
rm -rf "$(VOCDIR)"
@ -5292,7 +5302,7 @@ unittests-make:
.PHONY: unittests-boost
@ENABLE_BOOST_TEST_TRUE@unittests-boost:
@ENABLE_BOOST_TEST_TRUE@unittests-boost: UnitTests/basics_suite UnitTests/geo_suite
@ENABLE_BOOST_TEST_TRUE@ @echo
@ENABLE_BOOST_TEST_TRUE@ @echo "================================================================================"
@ENABLE_BOOST_TEST_TRUE@ @echo "<< BOOST TESTS >>"
@ -5304,8 +5314,6 @@ unittests-make:
@ENABLE_BOOST_TEST_TRUE@ @echo
@ENABLE_BOOST_TEST_TRUE@unittests-boost: UnitTests/basics_suite
@ENABLE_BOOST_TEST_FALSE@unittests-boost:
@ENABLE_BOOST_TEST_FALSE@ @echo
@ENABLE_BOOST_TEST_FALSE@ @echo "================================================================================"
@ -5355,7 +5363,7 @@ unittests-shell-server-ahuacatl:
.PHONY: unittests-shell-client
unittests-shell-client:
$(MAKE) start-server PID=$(PID) SERVER_OPT="--server.endpoint unix://$(VOCDIR)/arango.sock --server.disable-authentication true" PROTO=unix
$(MAKE) start-server PID=$(PID) SERVER_START="--server.endpoint unix://$(VOCDIR)/arango.sock --server.disable-authentication true" PROTO=unix
@echo
@echo "================================================================================"
@ -5379,7 +5387,7 @@ unittests-shell-client:
.PHONY: unittests-http-server
unittests-http-server:
$(MAKE) start-server PID=$(PID) SERVER_OPT="--server.endpoint tcp://$(VOCHOST):$(VOCPORT) --server.disable-auth true" PROTO=http
$(MAKE) start-server PID=$(PID) SERVER_START="--server.endpoint tcp://$(VOCHOST):$(VOCPORT) --server.disable-auth true" PROTO=http
@echo
@echo "================================================================================"
@ -5403,7 +5411,7 @@ unittests-http-server:
.PHONY: unittests-ssl-server
unittests-ssl-server:
$(MAKE) start-server PID=$(PID) SERVER_OPT="--server.endpoint ssl://$(VOCHOST):$(VOCPORT) --server.keyfile $(CERT_FILE) --server.disable-auth true" PROTO=https
$(MAKE) start-server PID=$(PID) SERVER_START="--server.endpoint ssl://$(VOCHOST):$(VOCPORT) --server.keyfile $(CERT_FILE) --server.disable-auth true" PROTO=https
@echo
@echo "================================================================================"
@ -5471,10 +5479,6 @@ clean-local:
built-sources: build.h errorfiles $(JAVASCRIPT_HEADER)
################################################################################
### @brief arango password
################################################################################
bin/arango-password: bin/arango-password.in
@ENABLE_RELATIVE_DEVEL_TRUE@ sed \
@ENABLE_RELATIVE_DEVEL_TRUE@ -e 's%@SBINDIR@%bin%g' \
@ -5489,10 +5493,6 @@ bin/arango-password: bin/arango-password.in
@ENABLE_RELATIVE_DEVEL_FALSE@ $< > $@
@ENABLE_RELATIVE_DEVEL_FALSE@ chmod 755 $@
################################################################################
### @brief arango datafile debugger
################################################################################
bin/arango-dfdb: bin/arango-dfdb.in
@ENABLE_RELATIVE_DEVEL_TRUE@ sed \
@ENABLE_RELATIVE_DEVEL_TRUE@ -e 's%@SBINDIR@%bin%g' \
@ -5552,6 +5552,7 @@ Doxygen/js/server/modules/%.c: @srcdir@/js/server/modules/%.js Doxygen/.setup-di
@python @top_srcdir@/Doxygen/Scripts/js2doxy.py $< > $@
Doxygen/xml/%.md: Doxygen/xml/%.xml
echo "CREATING XML FROM MD!!!"
@python @top_srcdir@/Doxygen/Scripts/xml2md.py $< > $@
################################################################################
@ -5578,8 +5579,9 @@ Doxygen/arango-xml.doxy: Doxygen/arango.template
sed -e 's:GENERATE_XML *= *NO:GENERATE_XML = YES:' -e 's:ENABLED_SECTIONS *=:ENABLED_SECTIONS = XML:' < $< > $@
$(MAKE) lib/BasicsC/voc-errors.h
wiki: wiki2 $(addsuffix .md,$(addprefix Doxygen/xml/,$(WIKI)))
wiki: wiki2
@test -d Doxygen/wiki || mkdir Doxygen/wiki
@for w in $(WIKI); do python @top_srcdir@/Doxygen/Scripts/xml2md.py Doxygen/xml/$$w.xml > Doxygen/xml/$$w.md; done
@for w in $(WIKI); do @top_srcdir@/Doxygen/Scripts/fixmd.sh Doxygen/xml/$$w.md; done
wiki2: Doxygen/arango-xml.doxy $(DOXYGEN)

View File

@ -12,7 +12,7 @@ OUTPUT_FOLDER="Doxygen/manuals/$(PACKAGE_VERSION)"
.PHONY: publish publish-wiki publish-html publish-pdf
publish: publish-wiki publish-html publish-pdf
echo 'cd Doxygen/manuals && scp -r "$(PACKAGE_VERSION)" $(MANUAL_DST)'
cd Doxygen/manuals && scp -r "$(PACKAGE_VERSION)" $(MANUAL_DST)
publish-wiki:
(cd Doxygen/wiki && git checkout --force -- . && git clean -f -d -x && git pull)
@ -22,7 +22,7 @@ publish-wiki:
publish-html: $(OUTPUT_FOLDER)
$(MAKE) doxygen
@for w in $(WIKI); do cp Doxygen/html/$$w.html $(OUTPUT_FOLDER); done
@for i in `ls Doxygen/web/images/*.png`; do scp $$i $(OUTPUT_FOLDER); done
@for i in `ls Doxygen/web/images/*.png`; do scp $$i $(OUTPUT_FOLDER)/images; done
publish-pdf: $(OUTPUT_FOLDER)
$(MAKE) latex
@ -35,4 +35,4 @@ publish-pdf: $(OUTPUT_FOLDER)
scp arangod/Documentation/arangodb_1.0_shell_reference_card.pdf $(OUTPUT_FOLDER)
$(OUTPUT_FOLDER):
mkdir -p $(OUTPUT_FOLDER)
mkdir -p $(OUTPUT_FOLDER)/images

View File

@ -57,7 +57,7 @@ VOCDIR := /tmp/vocdir.$(PID)
VOCPORT := $(shell printf "3%04d" `expr $(PID) % 10000`)
VOCHOST := 127.0.0.1
SERVER_START :=
SERVER_OPT := --configuration none --javascript.startup-directory ./js --javascript.modules-path ./js/server/modules:./js/common/modules --javascript.action-directory ./js/actions/system $(SERVER_START)
SERVER_OPT := --configuration none --javascript.startup-directory ./js --javascript.modules-path ./js/server/modules:./js/common/modules --javascript.action-directory ./js/actions/system --database.maximal-journal-size 1000000 --javascript.gc-interval 1 $(SERVER_START)
CLIENT_OPT := --javascript.startup-directory ./js --javascript.modules-path ./js/client/modules:./js/common/modules --no-colors --quiet
STARTFILE := $(VOCDIR)/startup
CURL := curl
@ -110,7 +110,7 @@ unittests-make:
if ENABLE_BOOST_TEST
unittests-boost:
unittests-boost: UnitTests/basics_suite UnitTests/geo_suite
@echo
@echo "================================================================================"
@echo "<< BOOST TESTS >>"
@ -122,8 +122,6 @@ unittests-boost:
@echo
unittests-boost: UnitTests/basics_suite
noinst_PROGRAMS += UnitTests/basics_suite UnitTests/geo_suite
UnitTests_basics_suite_LDADD = -L@top_builddir@/lib -larango -lboost_unit_test_framework
@ -223,6 +221,7 @@ SHELL_SERVER_AHUACATL = @srcdir@/js/server/tests/ahuacatl-ranges.js \
@srcdir@/js/server/tests/ahuacatl-skiplist.js \
@srcdir@/js/server/tests/ahuacatl-refaccess-variable.js \
@srcdir@/js/server/tests/ahuacatl-refaccess-attribute.js \
@srcdir@/js/server/tests/ahuacatl-skiplist.js \
@srcdir@/js/server/tests/ahuacatl-queries-simple.js \
@srcdir@/js/server/tests/ahuacatl-queries-variables.js \
@srcdir@/js/server/tests/ahuacatl-queries-geo.js \

View File

@ -1,4 +1,5 @@
# ArangoDB
[![Build Status](https://secure.travis-ci.org/timoschilling/ArangoDB.png?branch=master)](http://travis-ci.org/timoschilling/ArangoDB)
We recently started a new open source project - a nosql database
called AvocadoDB which became ArangoDB in May 2012. ArangoDB is

View File

@ -1 +1 @@
1.0.beta1
1.0.beta2

View File

@ -499,7 +499,7 @@ void* BitarrayIndexPrevIterationCallback(TRI_index_iterator_t* iterator) {
}
if (iterator->_currentInterval >= iterator->_intervals._length) {
return false;
return NULL;
}
if (iterator->_intervals._length == 0) {

Binary file not shown.

View File

@ -810,6 +810,9 @@ int ArangoServer::executeConsole (OperationMode::server_operation_mode_e mode) {
}
}
while(! v8::V8::IdleNotification()) {
}
if (ok) {
// parameter array

View File

@ -78,43 +78,46 @@ void TRI_DestroyBarrierList (TRI_barrier_list_t* container) {
/// @brief creates a new barrier element
////////////////////////////////////////////////////////////////////////////////
TRI_barrier_t* TRI_CreateBarrierElement (TRI_barrier_list_t* container) {
TRI_barrier_t* element;
TRI_barrier_t* TRI_CreateBarrierElementZ (TRI_barrier_list_t* container,
size_t line,
char const* filename) {
TRI_barrier_blocker_t* element;
element = TRI_Allocate(TRI_UNKNOWN_MEM_ZONE, sizeof(TRI_barrier_t), false);
element = TRI_Allocate(TRI_UNKNOWN_MEM_ZONE, sizeof(TRI_barrier_blocker_t), false);
if (element == NULL) {
return NULL;
}
element->_type = TRI_BARRIER_ELEMENT;
element->_container = container;
element->_datafile = NULL;
element->datafileCallback = NULL;
element->base._type = TRI_BARRIER_ELEMENT;
element->base._container = container;
element->_line = line;
element->_filename = filename;
TRI_LockSpin(&container->_lock);
// empty list
if (container->_end == NULL) {
element->_next = NULL;
element->_prev = NULL;
element->base._next = NULL;
element->base._prev = NULL;
container->_begin = element;
container->_end = element;
container->_begin = &element->base;
container->_end = &element->base;
}
// add to the end
else {
element->_next = NULL;
element->_prev = container->_end;
element->base._next = NULL;
element->base._prev = container->_end;
container->_end->_next = element;
container->_end = element;
container->_end->_next = &element->base;
container->_end = &element->base;
}
TRI_UnlockSpin(&container->_lock);
return element;
return &element->base;
}
////////////////////////////////////////////////////////////////////////////////

View File

@ -73,13 +73,21 @@ typedef struct TRI_barrier_s {
struct TRI_barrier_list_s* _container;
TRI_barrier_type_e _type;
struct TRI_datafile_s* _datafile;
void* _datafileData;
void (*datafileCallback) (struct TRI_datafile_s*, void*);
}
TRI_barrier_t;
////////////////////////////////////////////////////////////////////////////////
/// @brief barrier element blocker
////////////////////////////////////////////////////////////////////////////////
typedef struct TRI_barrier_blocker_s {
TRI_barrier_t base;
size_t _line;
char const* _filename;
}
TRI_barrier_blocker_t;
////////////////////////////////////////////////////////////////////////////////
/// @brief barrier element datafile callback
////////////////////////////////////////////////////////////////////////////////
@ -149,7 +157,11 @@ void TRI_DestroyBarrierList (TRI_barrier_list_t* container);
/// @brief creates a new barrier element
////////////////////////////////////////////////////////////////////////////////
TRI_barrier_t* TRI_CreateBarrierElement (TRI_barrier_list_t* container);
#define TRI_CreateBarrierElement(a) TRI_CreateBarrierElementZ((a), __LINE__, __FILE__)
TRI_barrier_t* TRI_CreateBarrierElementZ (TRI_barrier_list_t* container,
size_t line,
char const* filename);
////////////////////////////////////////////////////////////////////////////////
/// @brief creates a new datafile deletion barrier

View File

@ -47,7 +47,7 @@
/// @brief compactify interval in microseconds
////////////////////////////////////////////////////////////////////////////////
static int const COMPACTOR_INTERVAL = 5 * 1000 * 1000;
static int const COMPACTOR_INTERVAL = 1 * 1000 * 1000;
////////////////////////////////////////////////////////////////////////////////
/// @}

20
configure vendored
View File

@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.68 for triAGENS ArangoDB 1.0.beta1.
# Generated by GNU Autoconf 2.68 for triAGENS ArangoDB 1.0.beta2.
#
# Report bugs to <info@triagens.de>.
#
@ -560,8 +560,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='triAGENS ArangoDB'
PACKAGE_TARNAME='arangodb'
PACKAGE_VERSION='1.0.beta1'
PACKAGE_STRING='triAGENS ArangoDB 1.0.beta1'
PACKAGE_VERSION='1.0.beta2'
PACKAGE_STRING='triAGENS ArangoDB 1.0.beta2'
PACKAGE_BUGREPORT='info@triagens.de'
PACKAGE_URL='http://www.arangodb.org'
@ -1411,7 +1411,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures triAGENS ArangoDB 1.0.beta1 to adapt to many kinds of systems.
\`configure' configures triAGENS ArangoDB 1.0.beta2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1482,7 +1482,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of triAGENS ArangoDB 1.0.beta1:";;
short | recursive ) echo "Configuration of triAGENS ArangoDB 1.0.beta2:";;
esac
cat <<\_ACEOF
@ -1637,7 +1637,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
triAGENS ArangoDB configure 1.0.beta1
triAGENS ArangoDB configure 1.0.beta2
generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
@ -2102,7 +2102,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by triAGENS ArangoDB $as_me 1.0.beta1, which was
It was created by triAGENS ArangoDB $as_me 1.0.beta2, which was
generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
@ -3241,7 +3241,7 @@ fi
# Define the identity of the package.
PACKAGE='arangodb'
VERSION='1.0.beta1'
VERSION='1.0.beta2'
cat >>confdefs.h <<_ACEOF
@ -10267,7 +10267,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by triAGENS ArangoDB $as_me 1.0.beta1, which was
This file was extended by triAGENS ArangoDB $as_me 1.0.beta2, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -10334,7 +10334,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
triAGENS ArangoDB config.status 1.0.beta1
triAGENS ArangoDB config.status 1.0.beta2
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"

View File

@ -6,7 +6,7 @@ dnl ============================================================================
dnl --SECTION-- triAGENS GmbH Build Environment
dnl ============================================================================
AC_INIT([triAGENS ArangoDB], [1.0.beta1], [info@triagens.de], [arangodb], [http://www.arangodb.org])
AC_INIT([triAGENS ArangoDB], [1.0.beta2], [info@triagens.de], [arangodb], [http://www.arangodb.org])
dnl ----------------------------------------------------------------------------
dnl auxillary directory for install-sh and missing

View File

@ -2293,7 +2293,7 @@ function ArangoDatabase (connection) {
}());
// -----------------------------------------------------------------------------
// --SECTION-- ArangoEdgesCollection
// --SECTION-- ArangoEdgesCollection
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------

View File

@ -2294,7 +2294,7 @@ static string JS_client_client =
"}());\n"
"\n"
"// -----------------------------------------------------------------------------\n"
"// --SECTION-- ArangoEdgesCollection\n"
"// --SECTION-- ArangoEdgesCollection\n"
"// -----------------------------------------------------------------------------\n"
"\n"
"// -----------------------------------------------------------------------------\n"

View File

@ -279,6 +279,7 @@ static string JS_common_bootstrap_modules =
" internal.sprintf = SYS_SPRINTF;\n"
" internal.time = SYS_TIME;\n"
" internal.sha256 = SYS_SHA256;\n"
" internal.wait = SYS_WAIT;\n"
"\n"
"\n"
" // command line parameter\n"

View File

@ -278,6 +278,7 @@ ModuleCache["/internal"] = new Module("/internal");
internal.sprintf = SYS_SPRINTF;
internal.time = SYS_TIME;
internal.sha256 = SYS_SHA256;
internal.wait = SYS_WAIT;
// command line parameter

View File

@ -397,6 +397,8 @@ function RunCommandLineTests () {
print(err.stack);
result = false;
}
internal.wait(0); // force GC
}
SYS_UNIT_TESTS_RESULT = result;

13
js/common/tests/shell-bitarray-index.js Executable file → Normal file
View File

@ -35,6 +35,7 @@
var jsunity = require("jsunity");
var internal = require("internal");
var console = require("console");
// -----------------------------------------------------------------------------
// --SECTION-- basic methods
@ -73,7 +74,19 @@ function BitarrayIndexSuite() {
// ...........................................................................
tearDown : function () {
collection.unload();
while (collection.status() != internal.ArangoCollection.STATUS_UNLOADED) {
console.log("waiting for collection '%s' to unload", cn);
internal.wait(1);
}
collection.drop();
while (collection.status() != internal.ArangoCollection.STATUS_DELETED) {
console.log("waiting for collection '%s' to drop", cn);
internal.wait(1);
}
},

View File

@ -35,6 +35,7 @@
var jsunity = require("jsunity");
var internal = require("internal");
var console = require("console");
// -----------------------------------------------------------------------------
// --SECTION-- basic methods
@ -65,7 +66,19 @@ function CapConstraintSuite() {
////////////////////////////////////////////////////////////////////////////////
tearDown : function () {
collection.unload();
while (collection.status() != internal.ArangoCollection.STATUS_UNLOADED) {
console.log("waiting for collection '%s' to unload.", cn);
internal.wait(1);
}
collection.drop();
while (collection.status() != internal.ArangoCollection.STATUS_DELETED) {
console.log("waiting for collection '%s' to drop", cn);
internal.wait(1);
}
},
////////////////////////////////////////////////////////////////////////////////

View File

@ -27,6 +27,7 @@
var jsunity = require("jsunity");
var internal = require("internal");
var console = require("console");
// -----------------------------------------------------------------------------
// --SECTION-- collection methods
@ -58,7 +59,19 @@ function CollectionDocumentSuiteErrorHandling () {
////////////////////////////////////////////////////////////////////////////////
tearDown : function () {
collection.unload();
while (collection.status() != internal.ArangoCollection.STATUS_UNLOADED) {
console.log("waiting for collection '%s' to unload", cn);
internal.wait(1);
}
collection.drop();
while (collection.status() != internal.ArangoCollection.STATUS_DELETED) {
console.log("waiting for collection '%s' to drop", cn);
internal.wait(1);
}
},
////////////////////////////////////////////////////////////////////////////////

View File

@ -27,6 +27,7 @@
var jsunity = require("jsunity");
var internal = require("internal");
var console = require("console");
// -----------------------------------------------------------------------------
// --SECTION-- collection methods
@ -70,8 +71,33 @@ function CollectionEdgeSuiteErrorHandling () {
////////////////////////////////////////////////////////////////////////////////
tearDown : function () {
edge.unload();
while (edge.status() != internal.ArangoCollection.STATUS_UNLOADED) {
console.log("waiting for collection '%s' to unload", en);
internal.wait(1);
}
edge.drop();
while (edge.status() != internal.ArangoCollection.STATUS_DELETED) {
console.log("waiting for collection '%s' to drop", en);
internal.wait(1);
}
vertex.unload();
while (vertex.status() != internal.ArangoCollection.STATUS_UNLOADED) {
console.log("waiting for collection '%s' to unload", vn);
internal.wait(1);
}
vertex.drop();
while (vertex.status() != internal.ArangoCollection.STATUS_DELETED) {
console.log("waiting for collection '%s' to drop", vn);
internal.wait(1);
}
},
////////////////////////////////////////////////////////////////////////////////

View File

@ -35,6 +35,7 @@
var jsunity = require("jsunity");
var internal = require("internal");
var console = require("console");
// -----------------------------------------------------------------------------
// --SECTION-- basic methods
@ -65,7 +66,19 @@ function HashIndexSuite() {
////////////////////////////////////////////////////////////////////////////////
tearDown : function () {
collection.unload();
while (collection.status() != internal.ArangoCollection.STATUS_UNLOADED) {
console.log("waiting for collection '%s' to unload", cn);
internal.wait(1);
}
collection.drop();
while (collection.status() != internal.ArangoCollection.STATUS_DELETED) {
console.log("waiting for collection '%s' to drop", cn);
internal.wait(1);
}
},
////////////////////////////////////////////////////////////////////////////////

View File

@ -65,7 +65,19 @@ function GeoIndexCreationSuite() {
////////////////////////////////////////////////////////////////////////////////
tearDown : function () {
collection.unload();
while (collection.status() != internal.ArangoCollection.STATUS_UNLOADED) {
console.log("waiting for collection '%s' to unload", cn);
internal.wait(1);
}
collection.drop();
while (collection.status() != internal.ArangoCollection.STATUS_DELETED) {
console.log("waiting for collection '%s' to drop", cn);
internal.wait(1);
}
},
////////////////////////////////////////////////////////////////////////////////

View File

@ -35,6 +35,7 @@
var jsunity = require("jsunity");
var internal = require("internal");
var console = require("console");
// -----------------------------------------------------------------------------
// --SECTION-- basic methods
@ -64,7 +65,19 @@ function indexSuite() {
////////////////////////////////////////////////////////////////////////////////
tearDown : function () {
collection.unload();
while (collection.status() != internal.ArangoCollection.STATUS_UNLOADED) {
console.log("waiting for collection '%s' to unload", cn);
internal.wait(1);
}
collection.drop();
while (collection.status() != internal.ArangoCollection.STATUS_DELETED) {
console.log("waiting for collection '%s' to drop", cn);
internal.wait(1);
}
},
////////////////////////////////////////////////////////////////////////////////

View File

@ -35,6 +35,7 @@
var jsunity = require("jsunity");
var internal = require("internal");
var console = require("console");
// -----------------------------------------------------------------------------
// --SECTION-- basic methods
@ -65,7 +66,19 @@ function UniqueConstraintSuite() {
////////////////////////////////////////////////////////////////////////////////
tearDown : function () {
collection.unload();
while (collection.status() != internal.ArangoCollection.STATUS_UNLOADED) {
console.log("waiting for collection '%s' to unload", cn);
internal.wait(1);
}
collection.drop();
while (collection.status() != internal.ArangoCollection.STATUS_DELETED) {
console.log("waiting for collection '%s' to drop", cn);
internal.wait(1);
}
},
////////////////////////////////////////////////////////////////////////////////

View File

@ -725,7 +725,7 @@ void* TRI_InsertElementMultiPointer (TRI_multi_pointer_t* array, void* element,
// check for out-of-memory
if (array->_nrAlloc == array->_nrUsed) {
return false;
return NULL;
}
// compute the hash

View File

@ -27,6 +27,8 @@
#include "BasicsC/common.h"
#include "BasicsC/logging.h"
// -----------------------------------------------------------------------------
// --SECTION-- private variables
// -----------------------------------------------------------------------------
@ -64,6 +66,12 @@ static TRI_memory_zone_t TriCoreMemZone;
static TRI_memory_zone_t TriUnknownMemZone;
////////////////////////////////////////////////////////////////////////////////
/// @brief memory reserve for core memory zone
////////////////////////////////////////////////////////////////////////////////
static void* CoreReserve;
////////////////////////////////////////////////////////////////////////////////
/// @}
////////////////////////////////////////////////////////////////////////////////
@ -176,8 +184,23 @@ void* TRI_Allocate (TRI_memory_zone_t* zone, uint64_t n, bool set) {
return NULL;
}
printf("PANIC: failed to allocate memory in zone '%d', giving up!", zone->_zid);
exit(EXIT_FAILURE);
if (CoreReserve == NULL) {
printf("FATAL: failed to allocate memory in zone '%d', giving up!", zone->_zid);
exit(EXIT_FAILURE);
}
free(CoreReserve);
CoreReserve = NULL;
LOG_FATAL("failed to allocate memory in zone '%d' of size '%ld', retrying!",
(int) zone->_zid,
(unsigned long) n);
#ifdef TRI_ENABLE_ZONE_DEBUG
return TRI_AllocateZ(zone, n, set, file, line);
#else
return TRI_Allocate(zone, n, set);
#endif
}
#ifdef TRI_ENABLE_ZONE_DEBUG
else if (set) {
@ -256,8 +279,23 @@ void* TRI_Reallocate (TRI_memory_zone_t* zone, void* m, uint64_t n) {
return NULL;
}
printf("PANIC: failed to allocate memory in zone '%d', giving up!", zone->_zid);
exit(EXIT_FAILURE);
if (CoreReserve == NULL) {
printf("FATAL: failed to allocate memory in zone '%d', giving up!", zone->_zid);
exit(EXIT_FAILURE);
}
free(CoreReserve);
CoreReserve = NULL;
LOG_FATAL("failed to allocate memory in zone '%d' of size '%ld', retrying!",
(int) zone->_zid,
(unsigned long) n);
#ifdef TRI_ENABLE_ZONE_DEBUG
return TRI_ReallocateZ(zone, m, n, file, line);
#else
return TRI_Reallocate(zone, m, n);
#endif
}
return p;
@ -297,6 +335,7 @@ void TRI_Free (TRI_memory_zone_t* zone, void* m) {
void TRI_InitialiseMemory () {
static bool initialised = false;
static size_t const reserveSize = 1024 * 1024 * 10;
if (! initialised) {
TriCoreMemZone._zid = 0;
@ -305,7 +344,14 @@ void TRI_InitialiseMemory () {
TriUnknownMemZone._zid = 1;
TriUnknownMemZone._failed = false;
TriUnknownMemZone._failable = true;
TriUnknownMemZone._failable = false;
CoreReserve = malloc(reserveSize);
if (CoreReserve == NULL) {
fprintf(stderr, "FATAL: cannot allocate initial core reserve of size %ld, giving up!\n",
(unsigned long) reserveSize);
}
}
}

View File

@ -362,7 +362,7 @@ int AnyServer::startupSupervisor () {
}
// parent
if (pid > 0) {
if (0 < pid) {
char const* title = "arangodb [supervisor]";
TRI_SetProcessTitle(title);
@ -371,17 +371,17 @@ int AnyServer::startupSupervisor () {
prctl(PR_SET_NAME, title, 0, 0, 0);
#endif
WritePidFile(_pidFile, pid);
int status;
waitpid(pid, &status, 0);
bool horrible = true;
if (WIFEXITED(status)) {
// give information about cause of death
// give information about cause of death
if (WEXITSTATUS(status) == 0) {
LOGGER_INFO << "child " << pid << " died of natural causes";
done = true;
horrible = false;
}
else {
t = time(0) - startTime;
@ -405,6 +405,7 @@ int AnyServer::startupSupervisor () {
case 15:
LOGGER_INFO << "child " << pid << " died of natural causes " << WTERMSIG(status);
done = true;
horrible = false;
break;
default:
@ -427,11 +428,27 @@ int AnyServer::startupSupervisor () {
LOGGER_ERROR << "child " << pid << " died a horrible death, unknown cause";
done = false;
}
// remove pid file
if (horrible) {
if (FileUtils::changeDirectory(current)) {
if (! FileUtils::remove(_pidFile)) {
LOGGER_ERROR << "cannot unlink pid file '" << _pidFile << "'";
}
}
else {
LOGGER_ERROR << "cannot unlink pid file '" << _pidFile << "', because directory '"
<< current << "' is missing";
}
}
}
// child
else {
// write the pid file
WritePidFile(_pidFile, TRI_CurrentProcessId());
// reset logging
TRI_InitialiseLogging(TRI_ResetLogging());
safe_cast<ApplicationServer*>(_applicationServer)->setupLogging();
@ -445,32 +462,21 @@ int AnyServer::startupSupervisor () {
prepareServer();
result = startupServer();
// remove pid file
if (FileUtils::changeDirectory(current)) {
if (! FileUtils::remove(_pidFile)) {
LOGGER_ERROR << "cannot unlink pid file '" << _pidFile << "'";
}
}
else {
LOGGER_ERROR << "cannot unlink pid file '" << _pidFile << "', because directory '"
<< current << "' is missing";
}
// remove pid file
if (FileUtils::changeDirectory(current)) {
if (! FileUtils::remove(_pidFile)) {
LOGGER_ERROR << "cannot unlink pid file '" << _pidFile << "'";
}
}
else {
LOGGER_ERROR << "cannot unlink pid file '" << _pidFile << "', because directory '"
<< current << "' is missing";
}
// and stop
exit(result);
}
}
// remove pid file
if (FileUtils::changeDirectory(current)) {
if (! FileUtils::remove(_pidFile)) {
LOGGER_ERROR << "cannot unlink pid file '" << _pidFile << "'";
}
}
else {
LOGGER_ERROR << "cannot unlink pid file '" << _pidFile << "', because directory '"
<< current << "' is missing";
}
}
return result;

View File

@ -1103,6 +1103,38 @@ static v8::Handle<v8::Value> JS_Time (v8::Arguments const& argv) {
return scope.Close(v8::Number::New(TRI_microtime()));
}
////////////////////////////////////////////////////////////////////////////////
/// @brief returns the current time
///
/// @FUN{internal.wait(<seconds>)}
///
/// Wait for <seconds>, call the garbage collection.
////////////////////////////////////////////////////////////////////////////////
static v8::Handle<v8::Value> JS_Wait (v8::Arguments const& argv) {
v8::HandleScope scope;
// extract arguments
if (argv.Length() != 1) {
return scope.Close(v8::ThrowException(v8::String::New("usage: wait(<seconds>)")));
}
double n = TRI_ObjectToDouble(argv[0]);
double until = TRI_microtime() + n;
while(! v8::V8::IdleNotification()) {
}
while (TRI_microtime() < until) {
while(! v8::V8::IdleNotification()) {
}
usleep(100);
}
return scope.Close(v8::Undefined());
}
////////////////////////////////////////////////////////////////////////////////
/// @}
////////////////////////////////////////////////////////////////////////////////
@ -1508,6 +1540,10 @@ void TRI_InitV8Utils (v8::Handle<v8::Context> context, string const& path) {
v8::FunctionTemplate::New(JS_Time)->GetFunction(),
v8::ReadOnly);
context->Global()->Set(v8::String::New("SYS_WAIT"),
v8::FunctionTemplate::New(JS_Wait)->GetFunction(),
v8::ReadOnly);
// .............................................................................
// create the global variables
// .............................................................................

View File

@ -61,6 +61,9 @@ case $TRI_OS_LONG in
START_SCRIPT="rc.arangodb.OpenSuSE"
runlevels="035"
docdir=${prefix}/share/doc/packages/voc/${vers_dir}
# exports for the epm configuration file
export insserv="true"
;;
Linux-Debian*)
@ -158,7 +161,7 @@ export EPM_RPM_OPTION
test -f ${SUBLIST} && rm -f ${SUBLIST}
touch ${SUBLIST}
share_base=${static_dir}/arango
share_base=${static_dir}/arangodb
sfolder_name=$(pwd)
echo
@ -196,10 +199,12 @@ echo "Export vars for epm"
echo " export arangodb_release=$arangodb_release"
echo " export arangodb_version=$arangodb_version"
echo " export bindir=$bindir"
echo " export chkconf=$chkconf"
echo " export data_dir=$data_dir"
echo " export docdir=$docdir"
echo " export exec_prefix=$exec_prefix"
echo " export initdir=$initdir"
echo " export insserv=$insserv"
echo " export prefix=$prefix"
echo " export project_dir=${sfolder_name}"
echo " export rgrp=$rgrp"