* Changes for libmusl compilation. (#4294)
* Further fixes for libmusl completely static build. (#4474)
* Make crc assembler code position independent.
* Fix PIE compilation for libmusl in alpine linux.
* Use backtrace library if found.
* 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)
* remove some non-unused V8 persistents
* do not throw that many bogus assertions
* do not rely on server role being defined
* slightly better debug output for V8 context debugging
* fix collection ids in inventory response
* simplify bootstrap a bit
* slightly better error handling
* make elapsed time a queryable value
* use less memory for stub collections
* added assertions that will always make sense
* added assertions
* do not garbage-collect while waiting
* less copying of parameters
* do not show "load indexes into memory" buttons for mmfiles engine
as all indexes are in memory anyway
* when a collection is truncated via the web interface, flush the WAL and rotate all active journals
this will make close all open journals on leader and followers and make them subject to compaction opportunities
* fix invalid server id values being passed from web interface to backend
* introduce afterTruncate method for indexes
* added test case for issue #3447
* updated CHANGELOG
* don't warn about replicationFactor for system collections
* check that the queries actually use the geo index and not some other index
* properly report error in web interface
* fix some internals checks that made truncate fail for bigger collections in maintainer mode
* also run a compact() operation after a serious truncate
in order to make iteration over the truncated range much faster
when the collection is next accessed
* increase default maximum number of V8 contexts to at least 16
* 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
* remove memory zone remainders
* remove useless calls
* attempt to fix non-deterministic CRC test
* attempt to fix non-deterministic replication tests
* fix document removal with multiple documents in cluster
* attempt to fix non-determinism of tests
* fix privilege checks for accessing collections by collection id, not by name
* Send out empty heartbeats regardless of non-empty AppendEntriesRPC.
* Also improve logging:
Note if a log in the empty heartbeat sending takes > 0.01 s.
Clearly mark places where a leader resigns in logging.
Log if no empty heartbeat is sent out.
* Make leader more tolerant w.r.t. incoming AppendEntriesRPC responses.
* Add debug logging for _lastAcked and challengeLeadership.
* Remove some unused code. Do not count ourselves in challengeLeadership.
* Removal of entire activation/deactivation mechanisms in agency
* TRI_microtime up to c++11
* added term to response to sendAppendEntries.
- migrate the process handling to c++ where appropriate
- move code definition / usage closer together
- add function to portably detect external processes (not spawned by us) and whether we may
- send them signals
- add portable code to send signals to processes
- for linux match what impact a signal will have on the process we send it
- check the status of the process we sent the signal, and return if its non-deadly or the process terminated
- after 8 retries with 1 second sleep send a hard kill.
- killExternal() now returns the same structure as statusExternal()
- don't block signals on spawned processes
* Fix temporary directory handling
On linux we create a sub directory under the temp directory with our own name and a unique id.
On windows we would only return the configured system temporary directory and not create a subdirectory.
This PR makes windows behave similar to linux.
* Cleanup windows implementation of locating the base temp path
- don't try to create a temporary file. The calling function will try anyways and fail then.
- properly check for unsupported characters and bail out.
* changelog
* fix c++ string handling
* remove double directory separators, so later on JS_RemoveRecursiveDirectory() won't trip over them
* 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
* added debugging methods
* try to fix invalid access in case of error
* remove unused members
* bugfixes and comments
* all agency fixes in
* merge bug
* partially unguarded Agent::lead fixed
* all agency fixes in
* added nrBlocked to thread startup eval
* added nrBlocked to thread startup eval
* recombination of cases in State::get
* some maps replaced with unordered_maps
* optimized maps some