* fix some deadlocks found by evil lock manager (tm)
* fix duplicate lock
* fix indentation
* ensure proper lock dependencies
* fix lock acquisition
* removed useless comment
* do not lock twice
* create either a V8 transaction context or a standalone transaction context, depending on if we are called from within V8 or not
* AQL micro optimizations
* use explicit constructor
* only use V8DealerFeature's ConditionLocker for acquiring a free V8 context
entering and exiting the selected context is then done later on without having to hold the ConditionLocker
* remove some recursive locks
* Disable custom deadlock detection when Thread Sanitizer is enabled
* Changing ifdef's
* grr
* broke gcc
* Using atomic for ApplicationServer::_server
* fix premature unlock
* add some asserts
* honor collection locking in cluster
* yet one more lock fix
* removed assertion
* some more bugfixes
* Fixing assert
(cherry picked from commit 1155df173bfb67303077fbe04ee8d909517bfd21)
* Switching from ttl to supervision based failover mechanism
* Allowing canceling of ongoing actions
* refactored asyncjobmanager
* refactoring some code
* adding read-only flag
* Fixing some bugs
* Fixing tests
* Canceling ongoing operations
* removing some unused code + some asserts
* catching some exceptions to reduce log pollution, removing unnecessary code, removing tests for _changeMode
* fixing "createsANewDatabaseWithAnInvalidUser"
* Current work
* proper ifs
* Migrate resthandler to c++ and implement mode
* readonly server mode spec test
* Add changelog
* change code so it expects a full object and not just a string
* Fix jslint
* Switching from ttl to supervision based failover mechanism
* Allowing canceling of ongoing actions
* refactored asyncjobmanager
* refactoring some code
* adding read-only flag
* catching some exceptions to reduce log pollution, removing unnecessary code, removing tests for _changeMode
* fixing "createsANewDatabaseWithAnInvalidUser"
* auth = off does not longer make everyone superuser
* Fixing cluster_sync and maybe resilience
* properly initialize all properties
* use faster comparison
* properly detect and handle "method not allowed"
* code-style
* remove unused variable
* narrow variable scope
* handle non-existance of AuthenticationFeature
* remove dead code
* replace some C string handling with std::strings
* moved assertion to the correct place
* honor number of array members for IN operator
* slightly adjust error messages
* slighty adjust some error messages
* try to fix issue with lingering replication contexts on shutdown
* clean up heartbeat thread a little bit
* small fixes
* intermediate commit
* Refactoring the ExecContext
* Fixing authentication
* Added start script
* some fixes
* fixed access to nullptr
* some c++
* fixed misleading message
* Made DatabaseGuard movable. Also adapted map insertions to _vocbase in Syncer classes, which failed to compile under older GCC versions
* added support for global flag to replication handler
* Started Refactoring in replication-static
* Fixing syncer code
* store applier configuration
* Static replication tests now test replication in a non system Database
* added flags to replication feature
* Adding some extra checks
* Fixing issue with rocksdb rest replication handler
* replication static now runs _system and otherdatabase replication tests.
* Fixing crash on startup
* Replication_sync now tests _system as well as other Database
* Fixing up heartbeat thread, adding global flag to rest handler
* Fixing wrong assert
* some cleanup, probably some tests are broken
* Made non-system db version of replication-ongoing tests
* fix determine-open-transaction
* Fixed ongoing tests. And added a test where we drop a database on slave while replication is still ongoing
* test fixes
* Activated ongoing other db tests. Also added a test that drops the DB on master, while the slave is still syncing.
* some better error reporting
* gradually switch to Result
* createCollection -> create
* re-activate using of collection ids for now
* enable auto-start
* Fixed create collection in replication ongoing test
* Added first draft of a test for global replication
* move to Result
* use system database for global applier
* improved error reporting
* fixed invalid URLs
* add test case filter
* load existing global applier configuration
* improve error reporting
* Added further tests for global replication
* Fixed global replication test, it now properly waits for replication. Timeouts after 10 seconds.
* Removed erronious assertion
* improve error reporting
* intermediate commit
* Added a test-case for global replication where the Master already has some data and the slave is clean
* fix deletion of replication contexts
* Fixed JSLint
* compiling code
* fix typo
* do not fail for global applier when no database is configured
* intermediate commit
* syncer supports switch for 3.3 / 3.2
* fixed errors
* Fixing some replication bugs
* Fixing some assertions
* Fixed missing commit markers
* Fixing assertion on database drop
* Attempt to fix deadlock in applier and assertion
* Fixing some stupid things
* Support for collection parameter
* Acidentally turned off some tests
* Grrr
* Fixing wrong method call
* Fixed startscript
* Fixed assignmet instead of equality check typo
* Added a test far interrupted replication. For now it justs tests basics on _system database.
* Improved index tests on replication.
* properly initialize variable
* fixed some replication problems
* MMFiles wal access support
* fix replication issues
* Started mmfiles replication support
* fixing a bug
* Fixing an issue
* fixing some mmfiles stuff
* fix test
* reload users
* prevent pure virtual method call
* intermediate commit
* Making from exclusive
* do not call getMasterState if child syncer
* some reformatting
* Adding global support for handleCommandSync
* Fixing assertion
* removing some debug logs
* Changing return codes
* Fixing some issues in the rest handler
* Make replication less susceptible to errors
* remove some debug output
* return last log tick
* remove waits from tests
* fix two tests
* changing header for open-transactions call
* some fixes
* fix test
* invalidate cached databases
* merging request and execcontext
* try to fix assertion error
* renamed method
* fix compile warning
* small changes
* Always use execcontext
* Fixing an assert
* fix replication issues
* try to fix collection lookups
* try to fix master/slave start
* Changing comments in heartbeat thread
* fix wrong signature of READ_LOCKER_EVENTUAL
* log server role in testing mode
* Fixed authentication, removed execContext in favor of request context
* Adding cluster rest api
* Fixing cluster rest handler
* Fixing cluster callback
* Some refactoring
* Queue creation is not a single operation
* Allowed for leader redirects
* Setting start of batch
* Disabling 2.8 compat tests
* fix start/stop bugs
* jslint
* various little changes
* add flag for exposing jwt
* indentation
* cleanup
* Some changed to guid
* fixing tcp to http, vst
* changed endpoint header
* small fixes
* Reorder servers by health status
* Higher timeout
* Changing error messages
* update the fromTick when fetching multiple batches from the coordinator
* more debug info
* Reducing copy pasted code
* change uid generation
* reducing logspam
* more exceptions for redirects
* more exceptions
* attempt to fix uniqids in cluster
* centralize printing of HTTP errors in replication
* debug output
* fix messages for authentication
* cleanup
* removing --cluster.my-id, --cluster.my-local-info
* Added leadership race to bootstrap, determine foxxmaster on boostrap, removing obsolete code
* improve error reporting in RestAqlHandler
* Changing heartbeat thread, fixing cluster_sync
* some more debug output
* added master
* attempt to make tests more deterministic
* added logging about indexes
* added some safety checks to the logger
* slighty better error messages
* fix location header for SSL
* fix error message
* try to make tests more deterministic
* change error code from TRI_ERROR_INTERNAL (which we want to avoid) to TRI_ERROR_FAILED
* Fixing broken webinterface access
* reverting groovy change
* Fixing read-only internal users
* Using superuser rights for dashboard now
* Adding mode field to _admin/server/role
* added mode TRYAGAIN
* remove inventory lock (does not seem necessary here)
* remove invalid assertion
* fixing agency bugs
* Removing debug output
* return proper errors in case of "method not allowed"
* Fixed up some info messages
* jslint
* improve error reporting in RestAqlHandler
* added logging about indexes
* added some safety checks to the logger
* slighty better error messages
* fix location header for SSL
* fix error message
* try to make tests more deterministic
* change error code from TRI_ERROR_INTERNAL (which we want to avoid) to TRI_ERROR_FAILED
[arangod/GeneralServer/AuthenticationFeature.cpp:42]: (warning) Member variable 'AuthenticationFeature::_authenticationTimeout' is not initialized in the constructor.
[arangod/Utils/Authentication.h:49]: (performance) Function parameter 'roles' should be passed by reference.
[arangod/VocBase/AuthInfo.h:47]: (warning) Member variable 'AuthResult::_expiry' is not initialized in the constructor.
* do not use V8 variant of AQL functions in early optimization stage when a C++ variant is available
* additionally, simplify AQL function definitions and aliases
* warn when more than 90% of max mappings are in use
* added C++ variant of replication catchup
* added `--log.role` option
* updated CHANGELOG
* removed non-existing scheduler.threads option from config
* removed useless __FILE__, __LINE__ invocations
* updated CHANGELOG
* allow a priority V8 context
* remove TRI_CORE_MEM_ZONE
* try to fix Windows errors & warnings
* cleanup
* removed memory zones altogether
* exclude system collections from collection tests
* some authentication optimizations...
don't query the permissions for one database three times, and don't build up tons of useless temporary strings for each request
* fix some floating point inaccuracies in AstNode value comparisons
* return different error codes for check-version
* Adds data file for exit codes that can be used by ArangoDB applications
* add some exit codes
* better return codes for centos
* add codes in arangod
* remove test code
* prevent re-downloading of starter and other small improvements
* fix some erros
* finish centos
* update urls
* add info about systemd detection
* move further towards a working systemd setup
* set service type to simple
* add arangodb-update-db script
* start work on debian packages
* a db dir that is already in place (former installation) should be reused now
* fix minor bugs
* Implement exit code translation in the windows installer.
* add autogenerated NSIS exit code mapping
* extend linenoise character buffer size
* dont make it throw exceptions all the time
* set INSTANCE to nullptr at a later stage
otherwise a nullptr may be accessed during shutdown
* implement transaction handler in c++
* add fake request object
* move general code into extra file
* improve error messages for RestJobHandler
* support cancel operation for async jobs with RestTransactionHandler
* fix integration test and add some optional debugging output
* fix returning of context
* fix error type
* fix code in cluster test
* remove unused variable
* reduce extractions to projections
* recycle string buffers in SocketTask
* micro optimizations for mmfiles indexes
* added special lookup function for _key
* moved function into the correct file
* speed up key buffer allocations a bit
* added noexcept specifier
* correctly name variable
* explicitly move bounds
* fix and speedup from/toPersistent functions
* reuse string from ManagedDocumentResult for multiple lookups
* use move-assign
* a bit less work for single server
* speedup AQL function HASH
* single fetch optimization
* performance optimization for the case when no documents need to be returned
* make reduce-extraction-to-projection a RocksDB-only optimizer rule
* cppcheck
* try to fix compile error on MacOS
* bug fix for MacOSX
* missing namespace (in Windows compile)
* reduce extractions to projections
* recycle string buffers in SocketTask
* micro optimizations for mmfiles indexes
* added special lookup function for _key
* moved function into the correct file
* speed up key buffer allocations a bit
* added noexcept specifier
* correctly name variable
* explicitly move bounds
* fix and speedup from/toPersistent functions
* reuse string from ManagedDocumentResult for multiple lookups
* use move-assign
* a bit less work for single server
* speedup AQL function HASH
* single fetch optimization
* performance optimization for the case when no documents need to be returned
* make reduce-extraction-to-projection a RocksDB-only optimizer rule
* working documents rest handler
* fixed cluster tests
* Consolidating database APIs
* clang-format
* Fixing issue with user creation through db._createDatabase
* replaced and refactored api-index and index api
* fixed cluster
* renaming some files
* added user methods
* removed files intended for later
* Fixed CC build
* Fixed method signature
* Fixing shell_server, shell_client tests
commit 19a7210119cc284af64251b202f690ab62bf615c
Author: Max Neunhoeffer <max@arangodb.com>
Date: Fri May 12 23:20:10 2017 +0200
Allow access to /_api/user/ without database check in VST as in HTTP.
This is a try to fix#2465
commit f973c1335652540174bf6b78df42290bded357da
Merge: 30bdc4c 365de45
Author: Max Neunhoeffer <max@arangodb.com>
Date: Fri May 12 21:32:15 2017 +0200
Merge remote-tracking branch 'origin/devel' into vst-cleanup
commit 30bdc4ca38e028d58cebea8268683d9f94e87ad7
Merge: 14acaea 086f6a2
Author: Max Neunhoeffer <max@arangodb.com>
Date: Fri May 12 14:52:23 2017 +0200
Merge remote-tracking branch 'origin/devel' into vst-cleanup
commit 14acaea8cb5fff2c1c8c27eee32294bfd612f629
Merge: 5bd0e79 fb088d3
Author: Max Neunhoeffer <max@arangodb.com>
Date: Fri May 12 12:40:29 2017 +0200
Merge remote-tracking branch 'origin/devel' into vst-cleanup
commit 5bd0e79ab053447f94f2fd959a33b1e15302b6a8
Author: Max Neunhoeffer <max@arangodb.com>
Date: Fri May 12 12:36:23 2017 +0200
Fix bug in authentication in VST
commit 9a999ce5e629aee5816a4f61b194b086d11fd169
Author: Max Neunhoeffer <max@arangodb.com>
Date: Fri May 12 12:24:35 2017 +0200
Open up endpoints /_open/* in VST without being authenticated
commit 32f62db42af6d5bfc24214ebb4ca7c1fb473b55e
Author: Max Neunhoeffer <max@arangodb.com>
Date: Fri May 12 12:11:31 2017 +0200
Simplify logic by not using boost::optional.
commit 925ce2f7b890c6f14205fd3e98553939d89bec61
Author: Max Neunhoeffer <max@arangodb.com>
Date: Fri May 12 12:11:20 2017 +0200
Add JWT case for authentication for VST
commit f1d7f67a9fc20c91ca000e9a4dad91e0f50f1652
Merge: 040ace3 7a9ccc9
Author: Max Neunhoeffer <max@arangodb.com>
Date: Fri May 12 08:58:51 2017 +0200
Merge remote-tracking branch 'origin/devel' into vst-cleanup
commit 040ace3e9dce47ddea5f51d29f0153a70d257c9e
Author: Max Neunhoeffer <max@arangodb.com>
Date: Fri May 12 08:23:16 2017 +0200
Write out chunk buffer using little endian uints
commit 66ad4c0e8d3bc94091664505986b00e7cff39f2f
Author: Max Neunhoeffer <max@arangodb.com>
Date: Fri May 12 08:12:38 2017 +0200
Move maxChunkSize query to constructor, remove dead code
commit f7b4c26cc09c6d512362340c6bf6061bbaae61a9
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 17:57:14 2017 +0200
Do not take protocolVersion from request for VST.
commit c76d6685f9507701715abf882f0ac0e192ead59f
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 13:20:58 2017 +0200
Remove dead code for compression which did never work well.
commit b823765b7c041dc5d143f7ab2e13d92f5f42d3eb
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 13:09:53 2017 +0200
Fix renaming to make compiler happy.
commit b327830012d146f4f4e2d0f0467dab351fbd3bd0
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 13:07:36 2017 +0200
Rename _defaultPortVpp to _defaultPortVst.
commit 5eb98a9e64d702476e8ec098b7506b1a63145d64
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 13:06:28 2017 +0200
Rename header guards VPP -> VST.
commit a3e96be26d49d6151898d8d757ede6225ac6abd2
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 13:05:55 2017 +0200
Rename VppRequest and VppResponse files to Vst.
commit 1d5f6f196490c3cf9312be5927b967b4abc03b67
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 13:04:19 2017 +0200
Change names of header guards VPP -> VST.
commit f004b25fbef75050b34bcd4eae4eb17b8b467230
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 13:03:19 2017 +0200
Rename files VppNetwork.h and VstMessage.h
commit c04d3aec19e8f0a8a3b90cd48e7736bff037359d
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 12:59:15 2017 +0200
Implement correct chunk header for sending out VelocyStream 1.1 messages.
commit 73aeedfbbef24d5929c44bd26c16343480514270
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 01:11:23 2017 +0200
A lot more renaming VPP -> VST.
commit 2acedc77f16a82251bc4f9e39526184e2a6f0dec
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 00:49:20 2017 +0200
Rename header guard.
commit 2ade43946aa5ea0048dab81eed5ffd931ce35ea8
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 00:48:01 2017 +0200
Rename files VppCommTask.* to VstCommTask.*
commit 0ffcda02a51cbad35e5ec06117d397aac37323cd
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 00:46:31 2017 +0200
Rename class VppCommTask to VstCommTask.
commit 9478c6c56c995b014b7a14408544b76fa676a317
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 00:30:47 2017 +0200
Rename protocol versions to VST in ProtocolVersion enum.
commit 0b69b7add6d7b5155ac71b8257def282ab4a1637
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 00:29:29 2017 +0200
Recognize incoming chunk headers in VST/1.1 format.
commit f40173c4fc6dc48613ae67ac3fd810d002c9b6cd
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 00:11:54 2017 +0200
Recognise and remember VST/1.0 and VST/1.1 protocol versions.
commit 29c798dc1af2d650c41eb9ed06f635786faf10f6
Author: Max Neunhoeffer <max@arangodb.com>
Date: Thu May 11 00:11:23 2017 +0200
Create protocol version VST/1.1 and disable vst+ prefix for endpoints.
An invalid rev should lead to a 1200 ("conflict") error rather than a
1239 ("illegal document revision") error. This is more intuitive and
in line with the corresponding change in the HTTP API. No tests needed
adjustment.