8000 Feature/arm64 building 20211005 by KVS85 · Pull Request #14871 · arangodb/arangodb · GitHub
[go: up one dir, main page]

Skip to content

Feature/arm64 building 20211005 #14871

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 690 commits into from
Oct 5, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
690 commits
Select commit Hold shift + click to select a range
6f73a6a
Soft coordinator shutdown (#14264)
neunhoef Jun 10, 2021
d5be537
Backport rocksdb diskspace bugfix (#14352)
jsteemann Jun 11, 2021
1d82f5c
Fix URL request parsing. (#14357)
mpoeter Jun 11, 2021
0e20844
fixes warnings about potentially uninitialized vars with g++11 (#14366)
jsteemann Jun 14, 2021
ab350ce
Slightly improve specific warning messages for better readability. (#…
jsteemann Jun 14, 2021
657985c
Bug fix/fix devsup 753 (#14373)
Dronplane Jun 16, 2021
7f9c774
Apm 55 (#14364)
alexbakharew Jun 17, 2021
911c1cb
Bug fix/user manager version race (#14382)
mchacki Jun 22, 2021
ab8d5ce
Update CHANGELOG
KVS85 Jun 22, 2021
819b44c
Improve usability of hidden options: (#14393)
jsteemann Jun 22, 2021
9d2b175
hides wrong label in the statistics memory tooltip + node 16 build su…
hkernbach Jun 23, 2021
694867d
Fixes for shard synchronization (#14384)
jsteemann Jun 26, 2021
ab1b2e1
Fix potential use after free.
mpoeter Jun 27, 2021
f38e952
fix ownership issue
jsteemann Jun 28, 2021
678f568
Add `/_admin/metrics/v2` DocuBlock (#14324) (#14412)
Simran-B Jun 28, 2021
252b2c4
Fix DEVSUP-799 (#14401)
jsteemann Jun 28, 2021
dcb5581
Update arangosync to 2.4.0
KVS85 Jun 28, 2021
0a0cfcb
added test for addOperation returning an error (#14410)
jsteemann Jun 29, 2021
fb61d6a
Add new chaos test suite. (#14406)
mpoeter Jun 29, 2021
cc518a5
Add Intel Comet Lake to the microarchitecture detection script (#14414)
naushniki Jun 29, 2021
98a9744
Update ArangoDB Starter to 0.15.1-preview-1
KVS85 Jun 29, 2021
c055bcc
Bug fix/presupp 358 (#14404)
mchacki Jun 30, 2021
7584472 8000
Introduce callstack splitting to avoid stackoverflows with large AQL …
mpoeter Jun 30, 2021
7155702
adjust wording as in 3.8 PR
jsteemann Jun 30, 2021
a236ac1
partial revert of commit 140beedd04aa036438ffe77dc003cf2c03358313
jsteemann Jun 30, 2021
237e6b2
also revert some added tests
jsteemann Jun 30, 2021
20d8f1d
Update ArangoDB Starter to 0.15.1-preview-2
KVS85 Jun 30, 2021
62422fa
Fix soft shutdown test on Windows (#14374)
KVS85 Jun 30, 2021
5976f89
Sort list of queries in web UI for display (#14428)
jsteemann Jul 1, 2021
cfe0871
Removed redirects for some cluster rest handler (#14425)
Jul 1, 2021
705b35e
Search 161 (#14413)
alexbakharew Jul 1, 2021
e9c6ee9
Revive startup parameter `--server.session-timeout` (#14118)
jsteemann Jul 1, 2021
830056d
added a TTL for Pregel conductors, plus GC (#14311)
jsteemann Jul 1, 2021
a8b8207
Added empty graph tests for generic traversal test. (#14271)
Jul 1, 2021
d8eeb9e
enable assertion in QueryContext::collections() (#14448)
jsteemann Jul 2, 2021
dfea7cb
Update ArangoDB Starter to 0.15.1-preview-3
KVS85 Jul 2, 2021
c4a3be5
Soft coordinator shutdown documentation (#14356)
neunhoef Jul 5, 2021
287b9f3
Fix numeric overflow in WINDOW cost estimtation (#14464)
jsteemann Jul 6, 2021
8270a7e
Enable -Og for debug builds (#14438)
goedderz Jul 6, 2021
ef1bcfc
[BTS-491][devel] ArangoRestore connect Retry (#14461)
Jul 6, 2021
0eaa3b4
Fix potential memleak in Pregel conductor garbage collection. (#14466)
jsteemann Jul 6, 2021
674dfde
enable process metrics on agents (#14453)
jsteemann Jul 6, 2021
4f32cb0
Following term id (#14405)
neunhoef Jul 7, 2021
b7b58a0
fix index selection with prefix indexes (#14424)
jsteemann Jul 7, 2021
c6931da
Fix ArangoAgency::version() (#14476)
jsteemann Jul 7, 2021
00b75b1
Added new command line-option `--version-json`. This will return the …
fceller Jul 7, 2021
01d73e7
APM-112: prevent invalid use of OPTIONS in AQL queries (#14467)
jsteemann Jul 8, 2021
b5f3894
add more output to assertion
jsteemann Jul 8, 2021
d894cce
fix macros (#14481)
Dronplane Jul 8, 2021
430f624
lower takeover leadership current log level (#14379)
kvahed Jul 8, 2021
170b13f
Bug fix/non recursive plan handling (#14475)
mpoeter Jul 8, 2021
5e917d4
Added (gauge) metric "rocksdb_read_only" (#14470)
jsteemann Jul 9, 2021
477186f
fix locking of write transactions on DB servers (#14450)
jsteemann Jul 9, 2021
b877321
fix typo
jsteemann Jul 9, 2021
d1a2e3e
Feature/guarded mutex (#13996)
goedderz Jul 12, 2021
4164c1c
quod licet iovi non licet bovi (#14490)
jsteemann Jul 12, 2021
57cb9e5
remove duplicate log message
jsteemann Jul 13, 2021
f98dd99
Upgrade non-breaking JS dependencies (#14152)
pluma Jul 13, 2021
8d6ead9
Remove please upgrade rest handler. Useless. (#14495)
Jul 14, 2021
07bab24
Replicated Logs Companion PR (#14484)
Jul 14, 2021
40af73e
improve shell-aql-query-setup-timeout test (#14489)
jsteemann Jul 14, 2021
2699e9d
Fix handling of empty WAL files with encryption at rest (#14477)
jsteemann Jul 14, 2021
ab53aa4
Fix invalid assertion and always remove blocker object on replication…
jsteemann Jul 14, 2021
ea62066
Add limits for AQL query complexity (#14480)
jsteemann Jul 14, 2021
506d802
Improve internal AQL and transaction timeouts (#14283)
jsteemann Jul 16, 2021
9a13d96
Remove chalk (#14505)
pluma Jul 16, 2021
7d34504
pragma oncify (#14507)
jsteemann Jul 16, 2021
6aebaaf
BTS-519: avoid holding 2 mutexes at the same time (#14511)
jsteemann Jul 16, 2021
bd5497f
remove stray semicolon
jsteemann Jul 16, 2021
5786402
fix a g++-9 compile warning for a potentially uninitialized var (#14509)
jsteemann Jul 16, 2021
14f612f
Fixed BTS-408 (#14513)
jsteemann Jul 19, 2021
ceaec2a
Improve startup file copying of JavaScript files (#14512)
jsteemann Jul 19, 2021
6d812e2
Restore media-typer, upgrade mocha to 6.2.3 (#14517)
pluma Jul 19, 2021
d9e2450
Fix duplicate log id in ExecutionBlockImpl (#14522)
goedderz Jul 19, 2021
e76f873
simplify blocker handling (#14508)
jsteemann Jul 20, 2021
9ff3c68
JavaScript file handling improvements: (#14529)
jsteemann Jul 22, 2021
1fd0ef9
Use lower defaultMaxNodesPerCallstack for Mac. (#14533)
mpoeter Jul 23, 2021
940369d
Code cleanup (linting, formatting, deduping, and minor refactoring. (…
adityamukho Jul 23, 2021
7b112f2
Improve query memory usage tracking for graph operations (#14535)
jsteemann Jul 23, 2021
dc3aa2d
Improving the router initialization checking logic: polling --> event…
adityamukho Jul 26, 2021
e6d96eb
APM-132: Clean up collection statuses (#14539)
jsteemann Jul 27, 2021
eb68014
Update ArangoDB Starter to 0.15.1-preview-4
KVS85 Jul 27, 2021
1c85cdf
Bug fix/refactor rocks db transaction state and rocks db methods (#14…
mpoeter Jul 27, 2021
b6d14b1
Update RestoreFeature.cpp
KVS85 Jul 28, 2021
aabea6b
Update CHANGELOG
KVS85 Jul 28, 2021
f34edd0
Update CHANGELOG
KVS85 Jul 28, 2021
aad0dd2
Remove mutexes from Logging (#14550)
jsteemann Jul 28, 2021
d491680
experiment to check if SyncWAL works on Windows (#14551)
jsteemann Jul 28, 2021
70ea80f
Agency hasAsXXX using std::optional (#14376)
Jul 29, 2021
48ea30f
do not use -n on echo, this might not be supported and is not nesecca…
fceller Jul 29, 2021
78c067e
attempt to pacify clang-1100 (#14554)
jsteemann Jul 29, 2021
0a13ac4
disable a test that only works with failure points enabled (#14552)
jsteemann Jul 29, 2021
ab4238e
Update arangosync to 2.5.0
KVS85 Jul 29, 2021
14196bd
Removed unused function declaration (#14556)
cpjulia Jul 29, 2021
c645947
Update ArangoDB Starter to 0.15.1
KVS85 Jul 29, 2021
49937d1
Search-216 - Distance functions in AQL (#14555)
alexbakharew Jul 29, 2021
d930127
fix a test which didn't run without failure tests
jsteemann Jul 30, 2021
2c73237
timely update of database servers in cluster cache (#14569)
kvahed Jul 30, 2021
038485f
Add test cases for _admin/metrics/v2 endpoint in cluster mode (#14446)
naushniki Jul 31, 2021
8b5efb5
Cleanup random stuff (#14563)
mpoeter Aug 2, 2021
c81be57
better URL-encoding in UI (#14252)
jsteemann Aug 2, 2021
91fa79b
only disable a startup warning for actually wrong configs (#14579)
jsteemann Aug 3, 2021
cd39be5
fixed path (#14586)
fceller Aug 4, 2021
adaa8a6
Feature/refactor arangobench (#14548)
cpjulia Aug 4, 2021
573f7eb
Reduce memory usage of Merkle trees (#14549)
jsteemann Aug 4, 2021
50c0da7
Follow-up for APM-79 (#14584)
jsteemann Aug 4, 2021
8000
dc386da
Fix BTS-527 (#14538)
kvahed Aug 4, 2021
276bf69
Bug fix/UI logs view removed dom element (#14520)
hkernbach Aug 5, 2021
06a1544
Bug-fix eslint (#14335)
fceller Aug 6, 2021
4f05769
Repair GEO_INTERSECTS (#14492)
neunhoef Aug 6, 2021
d7b6fed
Update InstallArangoDBJSClient.cmake
KVS85 Aug 7, 2021
d26aa40
fix BTS-536 "Upgrading without rest-server is aborted by error". (#14…
jsteemann Aug 9, 2021
c7dcf04
Revert change from `-O0` to `-Og` (#14613)
jsteemann Aug 10, 2021
4e1c936
bts 542: huge memory use agent (#14614)
kvahed Aug 10, 2021
c3c390b
Introducing Replicated Logs (#14486)
Aug 10, 2021
69f22fa
Search-37 - optimizer rules (#14585)
alexbakharew Aug 10, 2021
d19d5e1
Fix BTS-539 (#14612)
Dronplane Aug 10, 2021
6c82524
Fixing immer gcc x.1 compilation issues. (#14620)
Aug 10, 2021
e69b73d
fixed issue #14592: IS_NULL(@x) isn't recognized as a constant expres…
jsteemann Aug 10, 2021
db449c9
Bug fix/replicated logs missing column family (#14622)
Aug 10, 2021
b45839f
Fix duplicate log id (#14625)
goedderz Aug 11, 2021
c624b0e
update README_maintainers (#14627)
ajurdak Aug 11, 2021
c814561
Disable replication 2.0. (#14629)
Aug 13, 2021
e9a5e9e
improve Pregel log messages by giving them more context (#14631)
jsteemann Aug 13, 2021
8b95339
Added more recent architectures to OptimizeForArchitecture (#14628)
jsteemann Aug 13, 2021
a33e95c
Bug fix/graph node keep all flags on clone (#14635)
mchacki Aug 16, 2021
94aba32
Bug fix/begin trx disjoint (#14641)
mchacki Aug 16, 2021
64bf322
Added ChangeLogEntry (#14647)
mchacki Aug 17, 2021
967afe0
use more sensible values for timeouts/renewals (#14638)
jsteemann Aug 17, 2021
93e5b32
Improvements for Pregel memory-mapped files (#14636)
jsteemann Aug 17, 2021
e01000d
Add -fstandalone-debug for Clang Debug builds (#14439)
goedderz Aug 17, 2021
cac9b3c
Suppress a useless warning (#14624)
goedderz Aug 17, 2021
33e42b7
make AQL modification operations async (#14644)
goedderz Aug 17, 2021
0bff56b
Fix erroneous "access after data-modification" errors (#14646)
jsteemann Aug 17, 2021
5eaf1d2
Fix shutdown in --console mode (#14621)
jsteemann Aug 17, 2021
7afb1d0
Fixed a velocypack type error in maintenance::reportInCurrent (#14361)
goedderz Aug 18, 2021
b0cd75d
Added MutexGuard::unlock(), fixed tryLockedGuard, added tests (#14652)
goedderz Aug 18, 2021
bb39d8a
Reduce the amount of exception macros (#14504)
goedderz Aug 18, 2021
be8b157
Feature/iresearch test latest format (#14542)
Dronplane Aug 18, 2021
e6b1770
Improve supportability (#14639)
jsteemann Aug 18, 2021
da700d2
fix a typo in a parse error message (#14666)
jsteemann Aug 18, 2021
a043d4f
Remove fixPrototypeChain agency migration (#14658)
neunhoef Aug 19, 2021
a34b0c9
suppress intentional failures for cppcheck tests (#14665)
jsteemann Aug 19, 2021
414dae6
Fix wrong assertion in fuerte (#14660)
neunhoef Aug 19, 2021
6f6be66
Revert JSUnity improvement, testCase names now need to be unique per …
mchacki Aug 20, 2021
7fd6a7f
docs for APM-132 (#14675)
jsteemann Aug 23, 2021
9276e58
improvements for index creation (#14653)
jsteemann Aug 24, 2021
2439a9c
Increase default number of threads for client tools (#14673)
8000 jsteemann Aug 24, 2021
54b6e1e
Add more checks to YAML metrics script, cleanup (#14587)
Simran-B Aug 24, 2021
3d56230
implement APM-120 (#14677)
jsteemann Aug 24, 2021
f364629
reintroduce --cluster.index-create-timeout for testing (#14678)
jsteemann Aug 24, 2021
4eacbde
add missing "." to metric help text :thinking_face:
jsteemann Aug 25, 2021
67aed64
documentation/swagger-2021-08-24 (#14682)
Simran-B Aug 25, 2021
866a723
Protocol specific metrics (#14674)
neunhoef Aug 25, 2021
62872f2
fix potential issue during cluster index creation (#14692)
jsteemann Aug 25, 2021
59274d2
Docs: Correct database and user API statements (BTS-429) (#14617)
Simran-B Aug 25, 2021
dfbe4b9
Feature/remove shared ptrs from analyzers (#14694)
Dronplane Aug 25, 2021
f31afe1
Feature/minor cleanup (#14661)
goedderz Aug 26, 2021
1e970ee
TRI_ASSERT Log Stream (#14676)
Aug 26, 2021
5624179
properly renamed test
jsteemann Aug 26, 2021
c184b51
Update arangosync to 2.6.0
KVS85 Aug 26, 2021
1fefb9b
Lower priority of AQL lanes (#14695)
goedderz Aug 26, 2021
b716551
add a test for disabled statistics (#14704)
jsteemann Aug 26, 2021
0d87895
Update ArangoDB Starter to 0.15.2-preview-1
KVS85 Aug 26, 2021
45deb5e
Analyzers UI (#14599)
adityamukho Aug 28, 2021
909648b
Fix a rare shutdown race in RocksDBShaCalculatorThread (#14708)
jsteemann Aug 30, 2021
3e90e49
Add some arangosearch tests (#14664)
gnusi Aug 30, 2021
59964a3
add test for concurrent access to the typed analyzer (#14714)
Dronplane Aug 30, 2021
7055864
make iterator usage safer after intermediate commits (#14346)
jsteemann Aug 31, 2021
b81d313
Aardvark: Add missing word in tooltip
Simran-B Aug 31, 2021
73bf4d3
Bug fix/search 238 late materialization with constrained heap (#14722)
Dronplane Sep 1, 2021
3778371
Fix for memory leaks (#14727)
alexbakharew Sep 2, 2021
b6933c1
Feature/arangosearch link version (#14717)
gnusi Sep 2, 2021
b2d76d9
Update ArangoDB Starter to 0.15.2
KVS85 Sep 3, 2021
07bbd47
noexcept requirement ScopeGuard (#14713)
Sep 3, 2021
128d570
fix for old clang (#14733)
fceller Sep 5, 2021
a2eba02
prototype for forceOneShardAttributeValue (#14701)
jsteemann Sep 7, 2021
c4bc88e
deduplicated TestAnalyzer and TestAttribute (#14737)
goedderz Sep 8, 2021
2d6b0e1
disable RTTI for snappy compilation (#14747)
jsteemann Sep 9, 2021
8730e36
Fix cluster-internal network protocol to HTTP/1 (#14749)
jsteemann Sep 9, 2021
51c71fe
allow for long supervision job runtimes (#14741)
kvahed Sep 9, 2021
b12ef28
ReplicatedLog 2.0.1 Follow up PR (#14728)
Sep 9, 2021
0849e98
Feature/hybrid smart graph (#14602)
mchacki Sep 10, 2021
8c2374f
ZKD Indexes (#13650)
Sep 10, 2021
b9a2b16
Feature/search 213 optimize levenshtein startswith (#14744)
Dronplane Sep 10, 2021
65165c4
Fixes for Analyzers Web UI (#14739)
adityamukho Sep 10, 2021
42ec01c
Fix: truncate must not trigger intermediate commits in streaming trx.…
jsteemann Sep 10, 2021
0168cd1
Allow startup of arangod with an existing database (#14760)
jsteemann Sep 10, 2021
08284b4
deprecate several extra arangobench testcases (#14756)
jsteemann Sep 13, 2021
c623c5e 8000
Feature/add write pipe func (#14736)
dothebart Sep 13, 2021
244ddd2
Feature/apm 70 (#14748)
cpjulia Sep 13, 2021
b00cc4f
micro-optimize RocksDBComparator (#14758)
jsteemann Sep 13, 2021
41c82b3
ensure Query is created via shared_ptr (#14755)
jsteemann Sep 13, 2021
268df38
workaround for assertion failure (#14711)
jsteemann Sep 13, 2021
5170538
Update OpenSSL to 1.1.1l and OpenLDAP to 2.4.59 (#14768)
KVS85 Sep 13, 2021
d661234
fix example
jsteemann Sep 14, 2021
7721412
Fixed issue #14720 (#14773)
jsteemann Sep 14, 2021
d33f9c8
Bug fix/fix active failover foxx failover (#14754)
dothebart Sep 15, 2021
cd8d048
Fix windows unicode issues (#14757)
mpoeter Sep 15, 2021
aa9c736
properly detect MacOS (#14771)
jsteemann Sep 15, 2021
fef43cc
fix UB in DistributeExecutor (#14774)
jsteemann Sep 15, 2021
958ae77
Reduce nr of combinations and runtime of nightly chaos load tests. (#…
mpoeter Sep 15, 2021
4551e53
Adapt scheduler to support bounded and unbounded queue operations. (#…
mpoeter Sep 15, 2021
708154b
output database directory of instance for better reference (#14783)
dothebart Sep 15, 2021
e7783f3
docs: fix github docs link (#14787)
Zyqsempai Sep 16, 2021
8a65d8c
fix typo in URL
jsteemann Sep 16, 2021
0543b00
Avoid acquisition of recursive read lock on server shutdown (#14792)
jsteemann Sep 17, 2021
a293372
fix logId check (#14793)
jsteemann Sep 17, 2021
25798eb
Add `--datatype` option to arangoimport (#14761)
jsteemann Sep 17, 2021
d91bfd5
Fixed BTS-562 (#14800)
jsteemann Sep 19, 2021
4bd72d9
make AQL modification operations blocking again (#14795)
jsteemann Sep 19, 2021
1898ac4
prevent stealing of values from Aql const registers (#14798)
jsteemann Sep 19, 2021
b251a0c
Feature/apm 60 (#14700)
cpjulia Sep 20, 2021
a1e8b50
Remove sendRequestRetry in health API to contact agents. (#14785)
neunhoef Sep 20, 2021
4e555c6
add REST API endpoint GET /_admin/debug/failat/all (#14687)
jsteemann Sep 20, 2021
e6589a6
Stabilize Hybrid Smart Graph Test [EE only] (#14809)
mchacki Sep 22, 2021
817defd
dead code removal and cleanup (#14803)
jsteemann Sep 22, 2021
3b2180a
Hide help text fragment about VST connection strings (#14812)
jsteemann Sep 22, 2021
f6e3c7d
Make all synchronous transaction methods set skipScheduler for networ…
goedderz Sep 23, 2021
724054c
Fix BTS-548 array index wrong optimization (#14779)
neunhoef Sep 23, 2021
9b6c51b
APM-164: Add basic overload control to arangod. (#14796)
jsteemann Sep 23, 2021
ea7cada
add more documentation about how tests work (#14804)
dothebart Sep 23, 2021
0c2fbee
fixed TRI_ASSERT warnings (#14789)
fceller Sep 24, 2021
d4bea91
Feature/iresearch update (#14823)
Dronplane Sep 27, 2021
eec3f1c
Fix crash in optimizer rule remove-collect-variables (#14824)
goedderz Sep 27, 2021
9e3e291
enterprise license support (#14753)
kvahed Sep 28, 2021
4f9a712
Update CHANGELOG
KVS85 Sep 28, 2021
871396a
Fix memory leaks in replicated log tests (#14808)
goedderz Sep 29, 2021
09185d4
fixed issue #14819 (#14832)
jsteemann Sep 29, 2021
398faae
Feature/apm 121 (#14817)
cpjulia Sep 29, 2021
dd640df
attempt to first uninstall the old service on silent upgrade as well …
dothebart Sep 30, 2021
4fd30a6
Feature/escape unicode control chars (#14805)
cpjulia Sep 30, 2021
1e02f2b
Feature/apm 173 (#14830)
cpjulia Sep 30, 2021
a1acc5d
Bug fix/dont start license feature in upgrade (#14838)
kvahed Sep 30, 2021
549c8a7
DocuBlocks: Remove some direct and indirect MMFiles references (#14842)
Simran-B Oct 1, 2021
24d920f
willi (#14847)
jsteemann Oct 1, 2021
e05881d
Added support for adding ZKD index through Web UI. (#14845)
adityamukho Oct 1, 2021
1e6d135
Bug fix/analyzers UI test automation (#14841)
KVS85 Oct 4, 2021
81ad901
Added label to mark ZKD index as experimental. (#14855)
adityamukho Oct 4, 2021
2602f4e
Fixing CppCheck warnings. (#14854)
Oct 4, 2021
6e171d4
improve usage of `__has_include` (#14851)
jsteemann Oct 4, 2021
4825d2e
properly throw an exception in case an invalid state is encountered (…
jsteemann Oct 4, 2021
111ef66
Fix SEARCH-235 - Stored values copying in case of encryption (#14764)
Dronplane Oct 4, 2021
2feac3f
Micro-optimization for ArangoSearch executor (#14862)
gnusi Oct 5, 2021
60802cf
LCI was not properly deserialized and thus the coordinator did not di…
Oct 5, 2021
29dcd14
Update AqlItemBlock.h
KVS85 Oct 5, 2021
df5103e
[R2] Remove Dead WaitForQueue Code (#14858)
Oct 5, 2021
caceb41
Capture immutable fields during view creation through web UI. (#14726)
adityamukho Oct 5, 2021
d871342
Merge branch 'devel' of https://github.com/arangodb/arangodb into fea…
KVS85 Oct 5, 2021
dac9e79
ARM support update: 05.10.2021
Oct 5, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Revive startup parameter --server.session-timeout (#14118)
Co-authored-by: Tobias Gödderz <tobias@arangodb.com>
  • Loading branch information
jsteemann and goedderz authored Jul 1, 2021
commit e9c6ee9dcca7b9b4fbcd02a0b323d205bee838d3
7 changes: 7 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
devel
-----

* Revive startup parameter `--server.session-timeout` to control the timeout
for web interface sessions and other sessions that are based on JWTs created
by the `/_open/auth` API.

This PR also changes the default session timeout for web interface sessions
to one hour. Older versions of ArangoDB had longer session timeouts.

* Add prefix parameter to LEVENSHTEIN_MATCH function in ArangoSearch

* Removed redirects from /_admin/cluster* to /_admin/cluster/*. Adjusted
Expand Down
31 changes: 27 additions & 4 deletions arangod/GeneralServer/AuthenticationFeature.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@ AuthenticationFeature::AuthenticationFeature(application_features::ApplicationSe
_authenticationSystemOnly(true),
_localAuthentication(true),
_active(true),
_authenticationTimeout(0.0) {
_authenticationTimeout(0.0),
_sessionTimeout(static_cast<double>(1 * std::chrono::hours(1) / std::chrono::seconds(1))) { // 1 hour
setOptional(false);
startsAfter<application_features::BasicFeaturePhaseServer>();

Expand Down Expand Up @@ -89,10 +90,23 @@ void AuthenticationFeature::collectOptions(std::shared_ptr<ProgramOptions> optio
"--server.authentication-timeout",
"timeout for the authentication cache in seconds (0 = indefinitely)",
new DoubleParameter(&_authenticationTimeout));

options->addOption("--server.session-timeout",
"timeout in seconds for web interface JWT sessions",
new DoubleParameter(&_sessionTimeout),
arangodb::options::makeFlags(
arangodb::options::Flags::DefaultNoComponents,
arangodb::options::Flags::OnCoordinator,
arangodb::options::Flags::OnSingle))
.setIntroducedIn(30900);

options->addOption("--server.local-authentication",
"enable authentication using the local user database",
new BooleanParameter(&_localAuthentication));
new BooleanParameter(&_localAuthentication),
arangodb::options::makeFlags(
arangodb::options::Flags::DefaultNoComponents,
arangodb::options::Flags::OnCoordinator,
arangodb::options::Flags::OnSingle));

options->addOption(
"--server.authentication-system-only",
Expand All @@ -102,10 +116,13 @@ void AuthenticationFeature::collectOptions(std::shared_ptr<ProgramOptions> optio
#ifdef ARANGODB_HAVE_DOMAIN_SOCKETS
options->addOption("--server.authentication-unix-sockets",
"authentication for requests via UNIX domain sockets",
new BooleanParameter(&_authenticationUnixSockets));
new BooleanParameter(&_authenticationUnixSockets),
arangodb::options::makeFlags(
arangodb::options::Flags::DefaultNoOs,
arangodb::options::Flags::OsLinux,
arangodb::options::Flags::OsMac));
#endif

// Maybe deprecate this option in devel
options
->addOption("--server.jwt-secret",
"secret to use when doing jwt authentication",
Expand Down Expand Up @@ -151,6 +168,12 @@ void AuthenticationFeature::validateOptions(std::shared_ptr<ProgramOptions> opti
FATAL_ERROR_EXIT();
}
}

if (_sessionTimeout <= 1.0) {
LOG_TOPIC("85046", FATAL, arangodb::Logger::AUTHENTICATION)
<< "--server.session-timeout has an invalid value: " << _sessionTimeout;
FATAL_ERROR_EXIT();
}

if (options->processingResult().touched("server.jwt-secret")) {
LOG_TOPIC("1aaae", WARN, arangodb::Logger::AUTHENTICATION)
Expand Down
3 changes: 3 additions & 0 deletions arangod/GeneralServer/AuthenticationFeature.h
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,8 @@ class AuthenticationFeature final : public application_features::ApplicationFeat
/// verification only secrets
std::pair<std::string, std::vector<std::string>> jwtSecrets() const;
#endif

double sessionTimeout() const { return _sessionTimeout; }

// load secrets from file(s)
[[nodiscard]] Result loadJwtSecretsFromFile();
Expand All @@ -91,6 +93,7 @@ class AuthenticationFeature final : public application_features::ApplicationFeat
bool _localAuthentication;
bool _active;
double _authenticationTimeout;
double _sessionTimeout;

mutable std::mutex _jwtSecretsLock;

Expand Down
56 changes: 29 additions & 27 deletions arangod/RestHandler/RestAuthHandler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@
#include <velocypack/Builder.h>
#include <velocypack/velocypack-aliases.h>

#include "Basics/ScopeGuard.h"
#include "Basics/StringUtils.h"
#include "GeneralServer/AuthenticationFeature.h"
#include "Logger/LogMacros.h"
#include "Logger/Logger.h"
#include "Logger/LoggerStream.h"
#include "Ssl/SslInterface.h"
#include "Utils/Events.h"

using namespace arangodb;
Expand All @@ -41,15 +41,7 @@ using namespace arangodb::rest;

RestAuthHandler::RestAuthHandler(application_features::ApplicationServer& server,
GeneralRequest* request, GeneralResponse* response)
: RestVocbaseBaseHandler(server, request, response),
_validFor(60 * 60 * 24 * 30) {}

std::string RestAuthHandler::generateJwt(std::string const& username,
std::string const& password) {
AuthenticationFeature* af = AuthenticationFeature::instance();
TRI_ASSERT(af != nullptr);
return fuerte::jwt::generateUserToken(af->tokenCache().jwtSecret(), username, _validFor);
}
: RestVocbaseBaseHandler(server, request, response) {}

RestStatus RestAuthHandler::execute() {
auto const type = _request->requestType();
Expand All @@ -75,23 +67,36 @@ RestStatus RestAuthHandler::execute() {
return badRequest();
}

_username = usernameSlice.copyString();
std::string const username = usernameSlice.copyString();
std::string const password = passwordSlice.copyString();

bool isValid = false;

auto guard = scopeGuard([&]() {
try {
if (isValid) {
events::LoggedIn(*_request, username);
} else {
events::CredentialsBad(*_request, username);
}
} catch (...) {
// nothing we can do
}
});

auth::UserManager* um = AuthenticationFeature::instance()->userManager();
if (um == nullptr) {
std::string msg = "This server does not support users";
LOG_TOPIC("2e7d4", ERR, Logger::AUTHENTICATION) << msg;
generateError(rest::ResponseCode::UNAUTHORIZED, TRI_ERROR_HTTP_UNAUTHORIZED, msg);
} else if (um->checkPassword(_username, password)) {
} else if (um->checkPassword(username, password)) {
VPackBuilder resultBuilder;
{
VPackObjectBuilder b(&resultBuilder);
std::string jwt = generateJwt(_username, password);
resultBuilder.add("jwt", VPackValue(jwt));
resultBuilder.add("jwt", VPackValue(generateJwt(username)));
}

_isValid = true;
isValid = true;
generateDocument(resultBuilder.slice(), true, &VPackOptions::Defaults);
} else {
// mop: rfc 2616 10.4.2 (if credentials wrong 401)
< F42D tool-tip id="tooltip-d56f0262-4886-4720-9a0c-e7fa2c7d1948" for="expand-link-73-diff-a1b8a5a470972d907b67213708ef3bc28b1cf20774b3905017295b2fa2459d61" popover="manual" data-direction="ne" data-type="label" data-view-component="true" class="sr-only position-absolute">Expand All @@ -101,20 +106,17 @@ RestStatus RestAuthHandler::execute() {
return RestStatus::DONE;
}

std::string RestAuthHandler::generateJwt(std::string const& username) const {
AuthenticationFeature* af = AuthenticationFeature::instance();
TRI_ASSERT(af != nullptr);
return fuerte::jwt::generateUserToken(
af->tokenCache().jwtSecret(),
username,
std::chrono::seconds(uint64_t(af->sessionTimeout())));
}

RestStatus RestAuthHandler::badRequest() {
generateError(rest::ResponseCode::BAD, TRI_ERROR_HTTP_BAD_PARAMETER,
"invalid JSON");
return RestStatus::DONE;
}

void RestAuthHandler::shutdownExecute(bool isFinalized) noexcept {
try {
if (_isValid) {
events::LoggedIn(*_request, _username);
} else {
events::CredentialsBad(*_request, _username);
}
} catch (...) {
}
RestVocbaseBaseHandler::shutdownExecute(isFinalized);
}
9 changes: 1 addition & 8 deletions arangod/RestHandler/RestAuthHandler.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,21 +33,14 @@ class RestAuthHandler : public RestVocbaseBaseHandler {
public:
RestAuthHandler(application_features::ApplicationServer&, GeneralRequest*, GeneralResponse*);

std::string generateJwt(std::string const&, std::string const&);

public:
char const* name() const override final { return "RestAuthHandler"; }
RequestLane lane() const override final { return RequestLane::CLIENT_SLOW; }
RestStatus execute() override;
void shutdownExecute(bool isFinalized) noexcept override;

private:
std::string generateJwt(std::string const& username) const;
RestStatus badRequest();

private:
std::string _username;
bool _isValid = false;
std::chrono::seconds _validFor;
};
} // namespace arangodb

4 changes: 0 additions & 4 deletions arangod/RestServer/ServerFeature.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -103,10 +103,6 @@ void ServerFeature::collectOptions(std::shared_ptr<ProgramOptions> options) {
options->addObsoleteOption("--vst.maxsize", "maxim 179B al size (in bytes) "
"for a VelocyPack chunk", true);

options->addObsoleteOption(
"--server.session-timeout",
"timeout of web interface server sessions (in seconds)", true);

// add obsolete MMFiles WAL options (obsoleted in 3.7)
options->addSection("wal", "WAL of the MMFiles engine", "", true, true);
options->addObsoleteOption("--wal.allow-oversize-entries",
Expand Down
88 changes: 88 additions & 0 deletions tests/js/client/server_parameters/test-server-session-timeout.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
/*jshint globalstrict:false, strict:false */
/* global getOptions, assertEqual, arango */

////////////////////////////////////////////////////////////////////////////////
/// @brief test for server parameters
///
/// DISCLAIMER
///
/// Copyright 2010-2012 triagens GmbH, Cologne, Germany
///
/// Licensed under the Apache License, Version 2.0 (the "License");
/// you may not use this file except in compliance with the License.
/// You may obtain a copy of the License at
///
/// http://www.apache.org/licenses/LICENSE-2.0
///
/// Unless required by applicable law or agreed to in writing, software
/// distributed under the License is distributed on an "AS IS" BASIS,
/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
/// See the License for the specific language governing permissions and
/// limitations under the License.
///
/// Copyright holder is ArangoDB Inc, Cologne, Germany
///
/// @author Jan Steemann
/// @author Copyright 2019, ArangoDB Inc, Cologne, Germany
////////////////////////////////////////////////////////////////////////////////

if (getOptions === true) {
return {
'server.session-timeout': '5',
'server.authentication': 'true',
'server.jwt-secret': 'haxxmann',
};
}
const jsunity = require('jsunity');
const request = require('@arangodb/request');

function testSuite() {
let baseUrl = function () {
return arango.getEndpoint().replace(/^tcp:/, 'http:').replace(/^ssl:/, 'https:');
};

return {
testSessionTimeout: function() {
let result = request.get(baseUrl() + "/_api/version");
// no access
assertEqual(401, result.statusCode);

result = request.post({
url: baseUrl() + "/_open/auth",
body: {
username: "root",
password: ""
},
json: true
});

assertEqual(200, result.statusCode);
const jwt = result.json.jwt;

result = request.get({
url: baseUrl() + "/_api/version",
auth: {
bearer: jwt,
}
});

// access granted
assertEqual(200, result.statusCode);

require("internal").sleep(7);

result = request.get({
url: baseUrl() + "/_api/version",
auth: {
bearer: jwt,
}
});

// JWT expired
assertEqual(401, result.statusCode);
},
};
}

jsunity.run(testSuite);
return jsunity.done();
0