1
0
Fork 0
Commit Graph

5136 Commits

Author SHA1 Message Date
Jan 36a9f6e132 show function name in log output (#3453)
this requires `--log.line-number` option to be set to true
2017-10-18 12:40:19 +02:00
Jan 2fee652e77 Bug fix/fixes 1610 (#3425)
* 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
2017-10-18 12:23:39 +02:00
Simon Grätzer a7903495a5 Fix createQueue silent unique constraint violation, Fix asan detection in clang, (#3421) 2017-10-18 12:21:31 +02:00
Wilfried Goesgens bd8d61c1fa use the c++11 way of sleeping (#3429)
* use the c++11 way of sleeping

* fix unit.
2017-10-16 17:40:51 +02:00
Jan Christoph Uhde f0340a0e36 increase message level to ERR for max mappings (#3426) 2017-10-16 17:33:22 +02:00
m0ppers bb1d303473 Cmake 5.0 complains about unused lambda captures (#3390) 2017-10-13 12:20:48 +02:00
Wilfried Goesgens 2c1e4dae98 remove remaints of libev. (#3372) 2017-10-10 15:01:59 +02:00
Max Neunhöffer d86f27bd19 Bug fix/agency leader timeouts (#3373)
* 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.
2017-10-06 10:11:51 +02:00
Jan 769b87d7cf added `--log.color` option to toggle colorful logging to terminal (#3356) 2017-10-05 13:36:32 +02:00
Jan 0561bf45ce Bug fix/isrestore (#3283)
* Make isRestore work in the cluster.

This covers sharded collections with default sharding and non-default
sharding.

* always use locally generate revision ids for storing and looking up documents
2017-10-03 11:53:49 +02:00
Frank Celler f240b8bc16 Feature/roles (#3364) 2017-10-03 10:31:18 +02:00
Frank Celler bd5e84a12f added roles to users (#3354) 2017-10-01 21:00:39 +02:00
Frank Celler 206063c8fe fixed type error 2017-10-01 19:18:38 +02:00
Jan 56fab56ff5 Bug fix/issues 2709 (#3333)
* logging improvements

* fixed copy&paste error

* enable assertions in non-release mode

* updated CHANGELOG

* fix --temp.path (was dysfunctional), fix creation of temporary directories and races
2017-10-01 09:43:03 +02:00
Frank Celler 81e0ca8527 added encryption key generator (#3348) 2017-09-30 14:59:27 +02:00
Frank Celler 70e206fc25 terminal codes 2017-09-28 22:23:54 +02:00
Max Neunhoeffer 3a4cf41270 Revert "Revert "rework process handling (#3322)""
This reverts commit d2b62c99d6.
2017-09-28 15:53:19 +02:00
Max Neunhoeffer d2b62c99d6 Revert "rework process handling (#3322)"
This reverts commit c56e4949b9.
2017-09-28 15:25:05 +02:00
Wilfried Goesgens c56e4949b9 rework process handling (#3322)
- 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
2017-09-28 13:35:54 +02:00
Jan 4ba38bf981 try to work around some assertions (#3296)
* remove obsolete values from relative config

* warn about using obsolete config parameters
2017-09-28 09:21:33 +02:00
Frank Celler 8d01dd0c4e Feature/switch to 3.3 (#3336) 2017-09-27 22:45:31 +02:00
Max Neunhöffer 22e46978a6 Bug fix/sort out agency locks (#3306)
New locking concept in Agency. Ensure empty heartbeats can be sent, answered and processed without long locks. Adjust logging. Fix compaction bugs.
2017-09-27 15:22:30 +02:00
Jan 01cdaed684 increase default value for /proc/sys/vm/max_map_count (#3321) 2017-09-26 15:15:22 +02:00
m0ppers 325065a0c0 show warnings if curl work thread is blocked by error/success cbs (#3316) 2017-09-26 15:12:09 +02:00
Jan 2525a3a1bd Feature/mmfiles hash lookup performance (#3265)
* speed up full collection scans in mmfiles engine

* some API cleanup
2017-09-26 14:48:06 +02:00
Frank Celler 9fe558ed5f Bug fix/localhost mapping (#3312)
* use 127.0.0.1 instead of [::1]
2017-09-21 21:28:47 +02:00
Wilfried Goesgens 83f7903713 Fix temporary directory handling (#3259)
* 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
2017-09-21 10:59:43 +02:00
Jan e8ef1a21b6 fix some issues found by coverity code scan (#3256) 2017-09-21 10:26:59 +02:00
Jan dba4b90754 cleanup a few cases of fatal errors (#3274)
* cleanup a few cases of fatal errors

* fix multiple compile errors (my bad)

* fixed missing brace
2017-09-19 21:58:21 +02:00
Wilfried Goesgens 5327e0d967 output directory name concerned in exception (#3275)
* output directory name concerned in exception
2017-09-19 12:18:58 +02:00
m0ppers f0ae3d3de7 Bug fix/uaf communicator request abort (#3216)
* Fix abortion of requests

* Fix progress callback
2017-09-15 22:42:30 +02:00
Jan 5165155ed1 Bug fix/fixes 0609 (#3227)
* 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
2017-09-13 16:28:21 +02:00
Simon Grätzer ffc465433a No access collections Improvements (#3190)
* consolidated EdgeDocumentToken

* optimizing cluster traversal

* adding skip collection checks

* API cleanup

* copying AQLValue to avoid use-after-free bugs

* Fixing rocksdb SingleServerEdgeCursor

* Fixing a collection resolving issue
2017-09-07 14:55:07 +02:00
Jan eacad99df7 Bug fix/fixes 0409 (#3199)
* 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
2017-09-04 18:04:05 +02:00
Jan 523d99b236 Bug fix/fixes 0109 (#3191)
* fix double free

* simplfy conditions

* fix cppcheck complaint
2017-09-04 17:32:25 +02:00
Jan 26ede63c84 added option `--server.check-max-memory-mappings` (#3185) 2017-09-01 16:11:22 +02:00
jsteemann 0537eb95bc fixes for MSVC 2017-09-01 13:24:44 +02:00
jsteemann 5f9ca3a3e8 potential fix for MSVC 2017-09-01 12:41:02 +02:00
jsteemann 02ac8b0fde fix clang warnings 2017-09-01 12:08:31 +02:00
Kaveh Vahedipour 2348e6d9cc Bug fix/enterprise build quick fix (#3183)
* fix broken enterprise build

* lib affected likewise at build time
2017-09-01 11:25:04 +02:00
Simon Grätzer 88d01b89b5 Optimizations for Caches and Graph Traversals (#3169) 2017-08-31 18:33:10 +02:00
Andreas Streichardt 195da55e98 windows implementation was missing 2017-08-30 14:18:04 +02:00
jsteemann 5677baf561 fixed some MSVC warnings 2017-08-30 13:11:55 +02:00
Jan Christoph Uhde 20e1a673fd Feature/planning 499 different error codes for version check (#3118)
* 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
2017-08-30 10:47:31 +02:00
Kaveh Vahedipour 00650e6a3f Bug fix/agency mt fixes (#3158)
* 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
2017-08-30 10:43:51 +02:00
Dan Larkin 6a068d062e Changed some tasks to post through Scheduler instead of directly. (#3159) 2017-08-30 10:41:41 +02:00
Frank Celler 6d08d4f4aa Bug fix/scheduler delete (#3077)
* removed delete call

* cleanup

* lower cpu activity of log thread too

* fix log messages

* do not enter threads into unordered_set, as it is unneeded

* do not compile in calls to disabled plan cache

* moved AQL regex cache from thread local variables to a class of its own

* more sensible thread creation and destruction
2017-08-25 12:00:17 +02:00
Jan a212f45a86 Bug fix/issues 2308 (#3117)
* remove API docs for endpoints that were deleted in 3.0

* remove unused variable

* set all scalar values in the ctor, so check tools do not complain

* move Result objects

* prevent potential nullptr access

* remove ambiguous boolean parameter with no clear meaning

* make code check tools happy

* don't allow copying cache Findings, allow moving Results

* the debug functionality for counting RocksDB key ranges was broken

this produced sporadic test failures

* remove superfluous iostream include

* fix range checks

* don't leak if an error happens during database removal

* try to simplify Result a bit

* try to deletion checks a bit more robust
2017-08-24 14:47:22 +02:00
m0ppers ca1aeb4ad4 fight msvc warnings (#3112) 2017-08-24 14:44:29 +02:00
Kaveh Vahedipour a8304904ed fixed openssl issue with 1.1 (#3095) 2017-08-22 15:50:25 +02:00
Jan Christoph Uhde df76bbc690 Bug fix/planning issue 514 replication api (#3021)
* add "cluster selectivity estimates" to CHANGELOG

* add some documentation to RocksDBRestReplicationHandler

* fix building with relative paths

* add some more doc

* add some tests for the replication api

* fix RocksDBRestReplicationHandler and add tests

* update documentation

* remove obsolete parameter

* fix error message

* Implementing logger-first-tick, logger-tick-ranges. Fixing dump `chunkSize` documentation
2017-08-22 10:46:06 +02:00
Jan 47e29e6e1f Bug fix/issues 1806 (#3069)
* fix buffer overruns in linenoise for long input lines

* don't make historian repeatedly print the same error messages that nothing can be done about

* make the implementations of the logging operator<<s not throw exceptions, so that logging does throw exceptions as an unintended side effect

* update CHANGELOG

* improve error message

* don't copy strings, but pass them by const reference
2017-08-18 22:58:09 +02:00
Jan 8e65fbb539 Bug fix/issues 1708 (#3060)
* we must now ignore that datafiles are not sealed

this is because an unsealed datafile may have been produced by
renaming multiple journals to datafiles at server start

* acquire collection count after we have acquired the lock

* count the null byte as well

* fix count value acquisition

* send query fragments to the correct servers, even after failover or when a follower drops

the problem with using the previous shard-based approach is that responsibilities for shards may change at runtime
however, an AQL query must send all requests for the query to the initially used servers.
if there is a failover while the query is executing, we must still send all following requests to the same servers, and not the newly responsible servers
otherwise we potentially would try to get data from a query from server B while the query was only
instanciated on server A.
2017-08-17 21:48:27 +02:00
m0ppers 930dd8aad2 MSVC is pendantic (but right) (#3047) 2017-08-17 21:25:34 +02:00
Jan 6180fcfdd1 Bug fix/prevent multiple journals (#3027)
* prevent multiple journals

* fix documentation

* remove _nrDesired, as it is not used anymore
2017-08-15 23:02:08 +02:00
Jan Christoph Uhde 0eaf4cabd9 Feature/js to cpp transaction handler (#2985)
* 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
2017-08-11 09:29:34 +02:00
Jan e6c6c5acda Bug fix/pre release woes (#2988)
* fixed issue #2982

* updated CHANGELOG
2017-08-10 09:39:28 +02:00
Jan ec5dde49ec remove memset parameter from TRI_Allocate signature (#2993) 2017-08-08 16:07:32 +02:00
Jan 3e0a09ea97 fix error message (#2970) 2017-08-08 09:27:55 +02:00
Jan ce2425cade Bug fix/daily fixes (#2958)
* do not rely on non-existing feature "AQL"

using such feature makes the server throw two exceptions (which will be caught) on startup, but its silly for debugging

* use condition variable for signalling shutdown

* do not hard-code the log levels for recovery tests

this has taken so many developers so much of their time that it is about time to fix it

* ensure the 'unittests' script properly finds 'arangosh' and the build directory
2017-08-04 20:46:08 +02:00
Frank Celler fa9246c9f9 fixed locator for icudtl.dat (#2950) 2017-08-04 09:43:49 +02:00
Jan 9ded187324 prevent V8 from causing SIGILL errors (#2932)
* prevent V8 from causing SIGILL errors

* updated CHANGELOG
2017-08-03 22:15:25 +02:00
Simon Grätzer 3f58a44e3b Fix cases where the root user has access to excluded collections (#2856) 2017-08-03 21:16:08 +02:00
Jan 07875791e5 improve shutdown and feature reusability in tests (#2935) 2017-08-03 20:44:04 +02:00
Kaveh Vahedipour 0b6d6d9287 Fixed distributeShardsLike bug in creating collections. numberOfShard… (#2895) 2017-08-03 19:38:16 +02:00
Jan ed9d15156e remove dependency on MMFiles features from non-MMFiles files (#2925) 2017-08-01 22:16:43 +02:00
Jan 871ee6a85f added startsBefore() for ApplicationFeature (#2913) 2017-08-01 17:15:25 +02:00
m0ppers 6fefe5ab31 In high concurrency situations double checking checksums is a must have (#2890) 2017-07-28 00:43:21 +02:00
Simon Grätzer 59dc8d0135 Update rocksdb options (#2880)
* changing some defaults

* Maybe fixing performance

* Modified changelog

* Updated documentation to reflect options
2017-07-27 16:05:31 +02:00
Wilfried Goesgens 7e03187123 When a transaction aborts, add the error messages to the returned sta… (#2848)
* When a transaction aborts, add the error messages to the returned status to aid the development process (as suggested by @DeShadow)

* If we are an arangoerror log out the ArangoError code

* don't send the stacktraces via the 'net, but have better error messages anyway

* static is wrong here - we want to use it with per threads individual values now.

* restructure source just to have one stacktrace processing function.

* Pull array from javascript logging functions up to c++

* js_log now can handle an array of v8-strings, converts it to a vector of std::strings, feeds them one by one into logging for now.

* the stacktraces now don't do individual calls to js_log, but one with an array of log lines.
2017-07-27 12:01:30 +02:00
Jan 33a7b8b853 Bug fix/mini issues (#2878)
* ignore some return codes when closing zip files and do not report them

* hide mostly useless debug message

* clear basic authentication cache after deletion of users and after updating them

otherwise deleted/changed users can still access the database!

* adjust wording

* added notes about mmfiles-specific parameters

* updated CHANGELOG and documentation
2017-07-27 11:37:34 +02:00
Jan Christoph Uhde c7dd2db2cc log supervisor exit (#2846) 2017-07-26 10:00:45 +02:00
Jan af36f6e7b6 fix spurious unzip errors (#2867) 2017-07-25 22:17:37 +02:00
Frank Celler a692577f5b Feature/auth context (#2815) 2017-07-16 09:39:03 +02:00
Max Neunhöffer f458a7d10a Wow...wrong type for httpstatuscode...it would zero out parts of the mutex on the stack (#2800) 2017-07-14 11:36:30 +02:00
Frank Celler a5a25754ed Feature/reduce extraction to projection (#2792)
* 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)
2017-07-14 08:40:29 +02:00
Max Neunhöffer 2f874249bb Bug fix/adjust agency comm timeouts (#2765)
* Take out 503 timeouts altogether.
* Overhaul of AgencyComm::sendWithFailover loop.
* Let performRequests optionally ignore 404 coll not found.
* Fix error message "database not found" when AgencyComm failed.
* Add log entries in Agency if locks are acquired too slowly.
* Reexecute the javascript cluster sync stuff even if there was no plan/current change...So failed sync jobs can retry later...
* Cover callbacks in Communicator by lock. This fixes https://github.com/arangodb/planning/issues/370
* Put in delay in waiting for leader in agency test.
* Schmutz logging to heartbeat topic.
* Add more lock time diagnostic in agent.
* Switch on agencycomm tracing in coordinator.
2017-07-13 00:44:28 +02:00
Frank Celler 40d73d5a8b Revert "[WIP] Feature/reduce extraction to projection (#2735)"
This reverts commit 5bfcff30cd.
2017-07-12 12:52:14 +02:00
Jan 5bfcff30cd [WIP] Feature/reduce extraction to projection (#2735)
* 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
2017-07-12 11:22:29 +02:00
Jan bee32b6325 properly compact ranges so data actually gets deleted after drop etc. (#2771) 2017-07-11 21:47:16 +02:00
Frank Celler 545e861829 Bug fix/agency prepare leading bug (#2752) 2017-07-08 17:08:30 +02:00
Jan e823f86601 fix small issues found by cov-build (#2746) 2017-07-07 12:36:11 +02:00
Jan 6a35df3992 should fix https://github.com/arangodb/planning/issues/413 (#2742) 2017-07-06 18:03:59 +02:00
Jan 27dc53b451 Bug fix/cleanup stuff (#2734)
* cppcheck

* remove unused files

* cppcheck just sucks

* add _FORTIFY_SOURCE
2017-07-05 19:34:16 +02:00
Max Neunhöffer 3387d794a7 Fix configuration file reader in the presence of @include. (#2725)
Vector options in configuration files including others which set
them as well had been ignored. This patch fixes this behaviour.
2017-07-04 22:37:46 +02:00
Jan 1d944b97a4 fix https://github.com/arangodb/planning/issues/388 (#2714)
also fix jslint issues
2017-07-03 18:41:54 +02:00
Frank Celler bbe7484521 Feature/auth context (#2704)
* added read-only users
2017-07-02 23:15:57 +02:00
Jan ccbe1ba792 Bug fix/fix rocksdb options (#2702)
* cleanup rocksdb options
2017-07-02 23:13:42 +02:00
Jan 91bce94e5c to be but not to bee (#2708)
that's not even a question
2017-07-02 12:54:21 +02:00
Frank Celler e1e61baee1 fixed windows unsupported assert (#2707) 2017-07-02 09:17:21 +02:00
Jan a5afdf9437 Bug fix/small issues (#2696)
* remove unused code

* print values of all options

* don't print "warning(s):" if there are none

* remove remainders of old file deletion functionality

* remove unused function
2017-07-01 00:30:45 +02:00
Dan Larkin d7aedbe562 Changed VM overcommit recommendation for user-friendliness. (#2695) 2017-06-30 11:31:04 +02:00
Jan 9fabcafe0e do not terminate the entire server process if a temp file cannot be c… (#2563)
* do not terminate the entire server process if a temp file cannot be created

* various bugfixes
2017-06-28 23:29:36 +02:00
Frank Celler 8f666990c3 fixed LogBuffer in case of too many messages (#2690) 2017-06-28 20:59:17 +02:00
Jan ba1ef89b94 re-introduce one lock for read/write (#2686) 2017-06-28 15:11:56 +02:00
Frank Celler 2807ef559c Feature/move shard fix (#2626)
Major overhaul of handling of synchronous replication.
2017-06-26 16:55:01 +02:00
Frank Celler 91d08645f7 Revert/ssl fix (#2662)
* Revert "Bug fix/task locking (#2618)"

This reverts commit 0e0bf7aae3.

* Revert "fix races in SSL communication (#2591)"

This reverts commit b32db87b67.
2017-06-23 17:07:34 +02:00
Dan Larkin c796b5f93d Fixed a typo in overcommit ratio warning logic and some formatting. (#2650) 2017-06-23 08:44:42 +02:00
Jan 3512745d10 added wrapper for fdopen (#2645) 2017-06-22 19:38:08 +02:00
Jan c873715a18 don't print option value at startup (#2643) 2017-06-22 14:23:20 +02:00