| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* origin/v3.5.2-based:
Fix issue of some changes not loading
Clear attention set when change is deferred
Add label score extension points for plugin customization
Add integrating section to change dashboard
Fix submodule urls
Modify Gerrit version string to indicate that this is a Qt fork
Add QtStage permission
Update status values staged, integrating and deferred for client side modules
Update status values staged, integrating and deferred for java modules
Change-Id: I7a780ad7b08f97982d86d5a34d472c5b7bc3e3c5
Task-number: QTQAINFRA-5213
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
After v3.5.2 version update the changes that had once failed an
integration were not loading. This was because qt gerrit plugin
has been using TAG_REVERTED when adding comment messages to failed
builds, and the new Gerrit version is expecting a certain message
structure on the comment.
Change-Id: I752c323d6de8be4bdd99d8408804091895e8aebb
Reviewed-by: Toni Saario <toni.saario@qt.io>
|
| |
| |
| |
| |
| |
| | |
Change-Id: Id3a6a93b1db9904bc29d6330ccd867b375dd61de
Fixes: QTQAINFRA-4794
Reviewed-by: Daniel Smith <Daniel.Smith@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Ia2cfa4473b37dbbeab08e906a8aa7444c2e47d9c
Reviewed-by: Daniel Smith <Daniel.Smith@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I482a9fe69c6ca39ee35f005d3443913657e28cc5
Reviewed-by: Daniel Smith <Daniel.Smith@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
We do not want to mirror all plugins. Make it convenient to work on
gerrit.
Change-Id: I686e9952292ddcdf5036c3eba5be8ed934a11b44
Reviewed-by: Daniel Smith <Daniel.Smith@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
And also: Use postfix for QtFork in version number
There are tools parsing the version number and using QtFork-version
breaks them. It's generally against conventions (semver).
To make maintaining these changes easier,
Ie1b91539c2fcb8fe66a7da119e4277a88ef4d291 was merged into this
change.
Change-Id: I2248e110a327ffc1bb1cf033a6c319117df12d26
Reviewed-by: Daniel Smith <Daniel.Smith@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
QtStage permission controls stage and unstage functionality.
Change-Id: Iea161ee5c2f86c48421c50ee8c6b87d8094d3c68
Reviewed-by: Daniel Smith <Daniel.Smith@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Ib5fcc3fe61c09680c9ea5d60e37915e7e26e8660
Reviewed-by: Daniel Smith <Daniel.Smith@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I8a3bd92229be84b075e31b3d969107e667a60afb
Reviewed-by: Daniel Smith <Daniel.Smith@qt.io>
|
| |
| |
| |
| |
| | |
Release-Notes: skip
Change-Id: I19d3715186557a80484d35f18291a7047608915a
|
|\ \
| | |
| | |
| | | |
into stable-3.5
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The copy-approvals pgm tool is creating new commits in the meta ref
branches of changes. The commit timestamp of the latest commit in a
meta ref will be taken as the last updated timestamp. This would
confuse users, since very old changes could be shown as recently
updated.
Now the new commit timestamp will be overwritten with the timestamp of
the last commit in the meta ref branch, thereby preserving the
previous update timestamp.
Bug: Issue 15998
Release-Notes: Preserve last updated timestamp during copying approvals
Change-Id: Ib56133b39b4b980d84a1b8c6b1786ef0902bd926
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Optionally check user permissions on a given list of source refs
instead of looking through all refs. Create branch read validation
is more restrictive when user inputs a ref. This change improves
the performance of create branch REST API when user inputs a ref.
Test project stats:
Total refs: 1222552
Total tags: 344763
Total commits: 16770216
Site setup:
Index: Lucene
git data: local disk
Performance of create branch REST API [1] (5 samples):
before: 2m55s, 2m52s, 2m49s, 2m49s, 2m50s
after: 1m20s, 1m22s, 1m22s, 1m22s, 1m22s
[1]
curl --netrc --location --request POST \
'http://<server>/a/projects/test_project/branches/test_branch' \
--header 'Content-Type: application/json' \
--data-raw '{"revision" : "refs/heads/branch1"}'
Release-Notes: performance of create branch REST API is improved
Change-Id: Ifaefc3bd1e0e73f0e676487bed5edfcb2701e06d
|
|\ \ \
| |/ /
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* stable-3.4:
Fix javadoc summary for Google Java Style
Don't depend on predicate order as they get sorted based on cost
Fix DefaultMemoryCacheFactory to correctly set refreshAfterWrite
Shortcut CreateRefControl#checkCreateCommit only for push processing
Paginate internal change index queries
Fix index pagination to set 'more_changes' correctly
Fix Lucene change index search-after implementation
Elasticsearch tests: Recreate container for each test suite
Allow different data reservoirs for metrics
Update git submodules
Fix AndSource to run #match() of predicate whose cost is least
Bump JGit to latest stable-5.13 (035e0e23f)
Add getter for registered events
Change-Id: Ia5ad13da4e15781c40bf1dc6abfc98ebca000b32
Release-Notes: skip
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The summary shouldn't use @return and should use "Returns".
[1] https://google.github.io/styleguide/javaguide.html#s7.2-summary-fragment
Change-Id: I631f0be5c048c2f93d62993c41583fb382d714ac
Release-Notes: skip
|
| |\ \
| | | |
| | | |
| | | | |
into stable-3.4
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
ChangeIndexRewriterTest are dependent on predicate order for assertion.
As the predicates are sorted based on cost, the order will not be same.
Release-Notes: skip
Change-Id: I4ac7b66132eed3151a0128117e049e869454ae81
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Change Ibc188bf663f49, unintentionally sets refreshAfterWrite value to
expireAfterAccess.
Release-Notes: Setting refreshAfterWrite in gerrit.config now works and does not mistakenly set expireAfterAccess
Change-Id: I2d0da340805c74d1acde09c97b0c97550b6c606b
|
| |\ \
| | | |
| | | |
| | | | |
into stable-3.4
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The shortcut is valid when processing pushes, as the connectivity
check in JGit (class ConnectivityChecker) ensures that the client can
only push objects that point to objects they have access to.
The CreateBranch REST API does not do a connectivity check, so we have
to verify visiblity of the new commit even if the user has UPDATE
access.
Add a test.
This fixes a data leak, where users with both UPDATE and CREATE_REF
permission could obtain read access to commits by creating a branch
pointing at the secret commit.
Bug: Issue 16054
Release-Notes: fixes confidentiality leak in create branch API
Change-Id: Icc16c2dc4d1356b9538fdc7f98b4265e32cd5e8a
Co-authored-by: Han-Wen Nienhuys <hanwen@google.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Internal index queries by default have a limit of Integer.MAX_VALUE.
Performance of queries against supported index backends such as Lucene
and Elasticsearch is known to degrade with a high limit. Paginate these
queries instead to improve performance.
Release-Notes: skip
Change-Id: I2f5a6aad3798365a407bdcd050c218d4aa160b0e
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The logic which determines if results must be paginated to meet
the desired query limit does not handle the case where exactly
one change is not visible in the first page. Fix it to always
attempt to get one result more than the limit, so that
'more_changes' is set appropriately.
Release-Notes: skip
Change-Id: I27751facecaabed77e0dbbe0ab6d82e70598054b
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This change fixes queries (such as [1]) which search more than one
change sub-index with search-after pagination type. The current
search-after implementation may skip results for such queries.
This can occur when we end-up with more results than the desired
page-size and then trim the results down to page-size when merging
results from the sub indices. Instead, keep track of the remaining
results needed after each sub-index search so that, they don't exceed
the page-size.
[1] gerrit query project:foo --no-limit
Release-Notes: skip
Change-Id: I86f8bf5e475feac57c37c19e2e813397b2efcba7
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since Change If3f8d914d5f there are multiple index configs executed in
different config suites in the tests and that means the ElasticContainer
will be stopped after each suite completes. Handle that by always
recreating the container at the start of a suite.
Also fix a couple places that were using the default index config
instead of the config from the ConfigSuite.
Release-Notes: skip
Bug: Issue 16300
Change-Id: I39926a3dc65a2313fbcfc566f6b2b72238c6fff6
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The default reservoir for collecting data with DropWizard may not
be suitable for all types of metrics collection.
The default ExponentiallyDecayingReservoir is typically suitable
for data with a lots of values per unit whilst shows inaccurancy
for smaller data sets spread over a longer period of time.
Introduce a new DropWizardReservoirProvider which reads the
reservoir type from gerrit.config in a new section called [metrics].
The reservoir can be subsequently configured in the subsection
[metrics "<reservoir>"] and its parameters tailored to the Gerrit
admin's metrics collection system.
For example, when using Prometheus scraper on a 1 mins interval
basis, it is possible to swap the default reservoir with a more
suitable SlidingTimeWindow:
[metrics]
reservoir = SlidingTimeWindow
[metrics "SlidingTimeWindow"]
window = 1 min
Release-Notes: introduce metrics configuration for different data reservoirs
Change-Id: Iaf73bc5c1a73423d06f423ea813df2d96e151f9e
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* Update plugins/gitiles from branch 'stable-3.4'
to 6338aee4179d932b06bcc7fda37dd8a9e0c016bb
- Don't depend on update ACL to create a branch
Change-Id: I8067d5885c92798fde6af289e49f7b56bfe05ae0
|
| |\ \
| | | |
| | | |
| | | | |
stable-3.4
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Change I0785952bf2cee, unintentionally introduced a bug where AndSource
no longer picks the predicate based on cost to run #match(). Fix this
issue by sorting the predicates based on cost & cardinality. Add a test
for this scenario. Also fix a test which depends on predicate order.
With a 3.4 test site which contains ~20k open changes, the performance
of query [1] where reviewerin is costlier than destination (3 samples):
before: 336s, 366s, 402s
after: 4s, 4s, 4s
[1] status:open reviewerin:ldap/example AND destination:name=foo
With this change, queries containing predicates with poorly defined
costs or cardinalities could perform worse now.
Release-Notes: queries with different and accurate predicate costs are always performant despite ordering
Change-Id: Ib2cb25329fddf9ff931a168fa8b5b9eff8d783c7
|
| |\ \ \ |
|
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Since we need to keep 3.4 compatible with Java 8, we can't update it
past the JGit stable-5.13 branch as 6.0+ is Java 11 only.
* modules/jgit 5efd32e91...035e0e23f (7):
035e0e23f UploadPack: don't prematurely terminate timer in case of error
4bb469363 Do not create reflog for remote tracking branches during clone
66ace4b9a UploadPack: do not check reachability of visible SHA1s
f4cbf31ae Add missing package import javax.management to org.eclipse.jgit
db074a135 Prepare 5.13.2-SNAPSHOT builds
b34961a49 JGit v5.13.1.202206130422-r
e9a5430c2 AmazonS3: Add support for AWS API signature version 4
Change-Id: I7705445191d4b44a343ebedaa0ff73c718e1a469
Release-Notes: Corrected error logging during UploadPack failures
Release-Notes: Improved performance for UploadPack reachability checks
|
| |\ \ \
| | |/ /
| |/| | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Before this change, the only way to access the registered types was
abusing the Java reflection to access private field
`EventTypes.typesByString`.
Allow instead to expose the registered types as public supported
method `EventTypes.getRegisteredEvents()`.
Release-Notes: Add public `EventTypes.getRegisteredEvents()`
Change-Id: I7b4369112e838b820e452a24b4ea0da80d7664d2
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
* Update plugins/gitiles from branch 'stable-3.5'
to 406c99fc5c5a5b88d09767690e07a5488d7496b2
- Merge branch 'stable-3.4' into stable-3.5
* stable-3.4:
Don't depend on update ACL to create a branch
Change-Id: Iebbd7750e8a97c1c035dacac80d3939baa2ed2f5
- Don't depend on update ACL to create a branch
Change-Id: I8067d5885c92798fde6af289e49f7b56bfe05ae0
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This is a big update of JGit (but not quite catching up to Gerrit
master) in order to 1) ensure no JGit regressions and 2) include the
JGit change [1] which adapts to the SSHD 2.8.0 release and fixes the
issues listed below.
The highlights of SSHD update from Gerrit's perspective are:
SSHD-1163: Wrong server key signature algorithm chosen in DH group key exchange
SSHD-1197: A race condition in key exchange fixed.
SSHD-1216: Server-side implementation of the RFC 8332 server-sig-algs
extension: the server announces that it prefers the SHA-2 signatures
for RSA keys.
Additionally, SSHD 2.8.0 now supports (and prefers) the
chacha20-poly1305@openssh.com cipher (SSHD-1017), and supports the
curve25519 and curve448 KEX algorithms (SSHD-704).
Official change list at [2].
Also adapt Gerrit code base to recent JGit changes.
This update includes the following commits:
$ git log --oneline --no-merges 5efd32e91...d01376106
035e0e23f UploadPack: don't prematurely terminate timer in case of error
4bb469363 Do not create reflog for remote tracking branches during clone
66ace4b9a UploadPack: do not check reachability of visible SHA1s
f4cbf31ae Add missing package import javax.management to org.eclipse.jgit
db074a135 Prepare 5.13.2-SNAPSHOT builds
b34961a49 JGit v5.13.1.202206130422-r
e9a5430c2 AmazonS3: Add support for AWS API signature version 4
8984e1f66 HTTP Smart: set correct HTTP status on error
8f7ef245f Prepare 6.1.1-SNAPSHOT builds
e982de3fc JGit v6.1.0.202203080745-r
f26ab4ebe [checkout] Use .gitattributes from the commit to be checked out
72bba7bd5 Don't use final for method parameters
8a2c76941 [push] support the "matching" RefSpecs ":" and "+:"
90df7c123 [push] Call the pre-push hook later in the push process
72ae234e7 IndexDiff: use tree filter also for SubmoduleWalk
46d58b84c Run license check with option -Ddash.projectId=technology.jgit
c77284ab7 Exclude transitive dependencies of sshd-sftp
aed354a1e Update DEPENDENCIES for 6.1.0 release
996e651c1 Add dependency to dash-licenses
877c79dc6 Fix typos of some keys in LfsText
5ac27a55b Sort LfsText entries alphabetically
a229072fc Support for "lfs.url" from ".lfsconfig"
e2a484f33 Update Orbit to R20220302172233 for 2022-03
60d52c9cf Prepare 6.1.0-SNAPSHOT builds
4b9fb3161 JGit v6.1.0.202203021511-rc1
6f175ea6c Describe: add support for core.abbrev config option
9244c07d7 Add a typed config getter for integers confined to a range
9284ed5db Remove odd prefix of PersonIdent test class
67097f5de PersonIdent: Add ctors that accept Instant in addition to Date
889b82f0e Remove ignored potentiallyUnclosedCloseable check
c543b8ee1 Make precedence more explicit
9c27002c4 [pgm] Add describe --abbrev option
85d8b31cb Cap describe abbrev option
a2d5650b8 DescribeCommand: Add support for --abbrev=0
8845f2e91 Prepare 6.1.0-SNAPSHOT builds
261f46dc4 JGit v6.1.0.202202221755-m3
00bb7cc9a Remove SuppressWarnings since currently ignored
73831b34b Add comment to explain why try-with-resource is not used
a7386ffe3 DescribeCommand: Support configuring the hash abbreviation
69ef598bd Simplify implementation of WorkingTreeIterator
d73b7cdeb Update Orbit to S20220215213605
63c1c6e4d Transport: load all refs only if push refspecs have wildcards
855a73487 PushCommand: determine remote from git config if not given
504001228 PushCommand: consider push.default when no RefSpecs are given
c3fbd2cdf Prevent that an instance of PushCommand is reused
db2d379c9 Remove unused warning suppression
288376221 Support for git config push.default
0d2825cdc Update Orbit to S20220208191225
a054f3ce7 Support LFS Server URL without .git suffix
7e752364a [rebase] InteractiveHandler2: handle Gerrit Change-Ids
d0553759a [errorprone] Fix DefaultCharset warning in BareSuperprojectWriterTest
20bdcf9ea Introduce a constant for the length of an abbreviated hash string
f7707e402 Make sure to close Repository in tests
70e9ace02 Fix resource leak in CancellableDigestOutputStreamTest
d929e72d7 Fix "Empty block should be documented" warning
e84988f2a Replace deprecated org.eclipse.jgit.lib.RefDatabase.getRefs
035d24097 RebaseCommand: fix commit message in "fixup" case
92158af52 reftable: close old Db in FileRepository#convertToPackedRefs
a650ae8ad reftable: tweaks for Windows
58d203fc7 [test] Fix EolRepositoryTest for eol=native
8dcb86b60 Fix FS_Win32 if a non-directory is listed
0588dd0a9 [test] Fix ConfigTest for Windows
961d5e687 [test] Fix CommitTemplateConfigTest for Windows
fbe7f9c29 [test] RepoCommandTest: guard tests for executable files
dba66dbfc RepoCommand: Offer to set extra files in the destination repository
dee4240ce RepoCommand: Move bare/regular superproject writing to their own classes
1fd15e40c Merge conflict messages: prefix conflict lines with a hash
e297f503a RebaseCommand: better commit message rewording
513c7318d CommitCommand: commit message cleanup
318a25f0e Provide git config commit.cleanup
2b01ac338 [test] Fix closing of test repositories
8633ea4f0 [test] DirCacheCheckoutTest: fix test expectation for eol=native
4bb87a957 ObjectWalk: close ObjectReader on close() if needed
d4d30bc71 [test] Fix a Windows-only test in CheckoutCommandTest
f8eb53071 [test] Fix ApplyCommandTest for Windows
002e13f0f [test] Fix OpenSshConfigFileTest for Windows
8bca5245e BinaryHunkInputStream: accept CR-LF
0fb5f47d2 sshd: Add README.md for SSH agents
8e9a42b7c sshd: support the ConnectTimeout ssh config
f41929708 sshd: Skip unknown keys from the SSH agent
b73548bc4 sshd: support the AddKeysToAgent ssh config
68bd2c146 sshd: handle "IdentityAgent SSH_AUTH_SOCK" in ssh config
e0281c5ad sshd: Connector for the Win32-OpenSSH SSH agent
071084818 sshd: handle IdentitiesOnly with an SSH agent
4efc6a396 sshd: support IdentityAgent config
ad098b3b8 LFS: Fix error occurring during delete branch
1a86c1044 PackOutputStream: Extract cancellation and digest to superclass
75e7d0848 Bazel: Include bazel resource configuration file for RBE build
b536dbdb9 DFS block cache: report index load and evict stats
788f439c0 Fix warning: The value of the parameter otp is not used
969601c74 Bazel: Add RBE support
be732c16a Bazel: Switch to using toolchain resolution for java rules
c81294796 Bazel: Simplify java 11 toolchain definition
bf3298478 Bazel: Format build files with buildifier
9a16e9a20 Bazel: Remove JDK 15 toolchain definition
8227098d7 Bazel: Remove version check
132ba05c8 ExternalToolTest: Rename class name to usual name for test cases
f8a96e1a0 Bazel: Add missing java packages to error_prone package group
51b909d9e Adapt junit_tests invocation to removal of resource_jars attribute
56f45e36d Update orbit to I20220111151929
685cc5404 Update org.apache.maven.wagon:wagon-ssh to 3.5.1
32cc4c56a Update org.eclipse.jdt:ecj to 3.28.0
73c398a95 Update org.osgi:org.osgi.core to 6.0.0
4aca4e0a3 [errorprone] Fix implicit use of platform default charset
8e306e7a6 [bazel] Fix build of ExternalDiffToolTest
9a57ae470 Let org.eclipse.jgit.pgm use BooleanTriState
b33133497 [bazel] Skip ConfigTest#testCommitTemplatePathInHomeDirecory
a268faf72 [errorprone] Fix InfiniteRecursion error in RecordingLogger
6fde4d3a6 [errorprone] Suppress Finally error in ObjectDownloadListener
8b00cb932 [errorprone] Fix implicit use of default charset in FileBasedConfigTest
2fed62528 [errorprone] Suppress FutureReturnValueIgnored in FileRepository#autoGc
1e932c2e5 Complete update to servlet api 4.0.0
d30447e26 Switch to Apache MINA sshd 2.8.0
4c555f074 sshd: backport upstream fix for SSHD-1231
e4f6e0af4 Add myself to .mailmap
709087c58 [releng] bump japicmp base version and configure sshd bundles
14a59bdc7 Add config reader for user-defined difftools
4e915f956 PackBitmapIndexV1: support parallel loading of reverse index
fb684a382 Add o.e.j.ssh.apache.agent to maven central deployment scripts
30b79cd0e Prepare 6.0.1-SNAPSHOT builds
9492e84fe JGit v6.0.0.202111291000-r
26fb2b7f0 Don't block in GC#gc until garbage collection finished
cce547d6d FS: debug logging only if system config file cannot be found
a26618f86 Update .factorypath used by annotation processor for benchmarks
81482008c Use maven-compiler-plugin's release tag instead of source and target
8d2650773 Fix MANIFEST.MF of org.eclipse.jgit to correctly export packages:
48f4d97a2 Add command line support for "git difftool"
0a3aaac33 Don't use deprecated Repository#getAllRefs in Repository
403338e11 Don't use deprecated Repository#getAllRefs in FileRepository
c20dd8206 RevListTest: fix warning that method parameter hides field 'git'
75c716f5d Implement RecordingLogger based on org.slf4j.Logger
c05d711bb Let ObjectDatabase implement AutoClosable
4453a6e04 Prepare 6.1.0-SNAPSHOT builds
e3707a6ce Prepare 6.0.0-SNAPSHOT builds
ad8d89b9c JGit v6.0.0.202111241155-rc1
fc60efff0 Add 4.22 target platform for 2021-12
009c043b0 Update Orbit to R20211122181901 for 2021-12
791d3b0eb AppServer: fix keystore used to setup test SSL context factory
515458543 [6.0 API cleanup] Public interface for PackLock
1e37438cb [6.0 API cleanup] StoredObjectRepresentationNotAvailableException
cde3ed9ec RepoCommand: Do not wrap GitApiExceptions in GitApiExceptions
ce6826f50 [6.0 API cleanup] CancelledException vs. CanceledException
a4542d06b Javadoc fixes
9446e6273 Better git system config finding
84a6ac3b6 HttpClientConnectionTest: organize imports
f91e47f5b Update Jetty to 10.0.6
dedb58604 Fix missing @since 6.0 tag
00f6fe72a Support commit.template config property
6807661d3 Prepare 6.0.0-SNAPSHOT builds
400b5acae JGit v6.0.0.202111161950-m3
49d243b13 DFS block cache: harden against race over ref locks.
ee28780bf Make BinaryBlobException stackless
78b7d9e4f Typo fix in o.e.j.ssh.{jsch,apache}/README.md
057f1d912 ssh: Handle "ProxyJump none" from SSH config file
180bc67e2 ssh: use a single SecureRandom instance for hashing hostnames
af0126e1d OpenSshConfigFile: line comments and quoted strings
c4b3ec72f OpenSshConfigFile: update token replacements
ffb5cac36 Add missing .gitignore in o.e.j.ssh.apache.agent
d4296d96b Upgrade plexus-compiler version to 2.9.0
e7838b9c0 [sshd agent] Introduce ConnectorDescriptor
b84738c36 Update version of last release defining the API baseline to 5.13.0
a74dfb090 Update Orbit to S20211108222137
5cbf70fd9 Update README
a92ff5369 Update jetty to 9.4.44.v20210927
3a7db8b78 Simplify SshdFtpChannel
c6d48ab2f [test] test OpenSshConfigFile directly, not via the JSch config
634302d2d sshd: add support for ssh-agent
68017a029 sshd: prepare for using an SSH agent
c04884fc9 [releng] bazel: Enable errorprone on o.e.j.ssh.apache
4184ff095 [releng] Make the bazel build use Java 11
f6ef2f620 [doc] Add README and package-info to the SSH bundles
83eddaf7f Binary and CR-LF detection: lone CRs -> binary
3444a3be8 Factor out parsing git-style size numbers to StringUtils
c2204bb68 Make the buffer size for text/binary detection configurable
99b06900b Prepare 6.0.0-SNAPSHOT builds
6fd7a25d9 JGit v6.0.0.202110270955-m2
b3a8a94a9 Fix checkout of files with mixed line endings on text=auto eol=crlf
fc6fe793c Don't rely on an implicit default character set
ff3c3d8ff Fix bad indentation in pom.xml
6640baf57 Minor code-clean-up in OpenSshConfigFile
4b4a95b1b Remove use of deprecated getAllRefs() in UploadPack
3b960ae72 DFS block cache: fix lock issue and support parallel index loading
f698fbf91 JSch: fix service publication for ServiceLoader
f8b0c00e6 Set JSch global config values only if not set already
7d4f3c22a DFS block cache: allow multiple passes for blocks before eviction
578b6a79a GarbageCollectCommand: add numberOfBitmaps to statistics
0cfb1f77b Prepare 6.0.0-SNAPSHOT builds
ffe678f08 JGit v6.0.0.202110060947-m1
4657e7a99 Rename a local variable
bdba9edd5 Remove redundant type arguments
3d86d3e81 Delete old target platforms and corresponding Orbit releases
39d4daefd Update tycho to 2.5.0 and target platform to jgit-4.17
e4550807a Update ecj to 3.27.0
1aa19c67e Replace XMLReaderFactory deprecated since Java 9
81771d862 IndexDiffWithSymlinkTest: handle InaccessibleObjectException
9683bc71b Fix split package in bundle org.eclipse.jgit.ssh.jsch
68a638deb KeyGrip: fix build error on java 15
05cd1fa5c Enable using JMH annotation processor on Java>=9
72b89b4b6 Update errorprone to 2.9.0 and enable using it on java 16
9ba3a521a [errorprone] fix ReturnValueIgnored in PushCertificateStore#next
f3eff2308 [errorprone] NameRevCommand: remove ignored call of #toString
1d280db14 Enable compiler option --release
f81a3fc91 Bump minimum required Java version to 11
211900aaf Update maven plugins
5334586d2 Removed unused API filters
9951dce84 RepoCommand: Move building the index for base repos to its own method
b6d4844b5 Enable CommitCommand to use a fluent style
c885cbd11 Prepare 6.0.0-SNAPSHOT builds
[1] https://git.eclipse.org/r/c/jgit/jgit/+/188371
[2] https://github.com/apache/mina-sshd/blob/master/docs/changes/2.8.0.md
Bug: Issue 12758
Bug: Issue 13930
Change-Id: I9d823f8eb5912112076c4330ab32d0b5dea053ce
Release-Notes: Update JGit to d01376106 which requires Java 11
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
no-limit query pagination was introduced in Ifb1f6f54
but a test could not be added in that change as the
fake index implementation did not allow it.
Release-Notes: skip
Change-Id: If088f45597b9d2bcdbe8f9a7ea2d0d3e4c2744ed
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Add test to ensure we stop querying index when there are
no more results. This test actually adds coverage for the
fix done in I3143e6935 but could not be added in that
change as the fake index implementation did not allow it.
Release-Notes: skip
Change-Id: I3ce8604893aa11830346d2a04cd3d428a6425c64
|
|\| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
* stable-3.4:
Paginate no-limit queries
Fix pagination to stop querying when there are no more results
Avoid fetching more results than needed in paginated index queries
Protect query limit effectively against integer overflows
Add missing return values in MetricMaker
Provide configuration to paginate index queries with increasing size
Introduce a SEARCH_AFTER index pagination type
ChangeIsVisibleToPredicate: Only create PermissionBackend.WithUser once
Move permission filtering for All-Projects from ProjectState to ProjectConfig
Change-Id: I11600ad4c11c2c546a23058b1606056d76825cd7
Release-Notes: skip
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Currently, no-limit queries do a single index search with a rather
large limit (around the size of change index). For Elasticsearch
index backend, this can be problematic as Elasticsearch's REST
client will fail with an error like [1] if too many changes have
to be returned. The REST client has a default limit of 100MB for
content it can process. This effectively implies that no-limit
queries with ES index backend are likely non-functional for most
sites as the 100MB limit is reached by as low as ~50k changes.
Changing this default limit is not recommended as it can overload
ES data nodes and the client as well. Instead, this change updates
no-limit queries to paginate rather than doing a single index search
with a large limit. It is recommended to set an appropriate value
for 'index.maxPageSize' to avoid the error [1] especially when
'index.pageSizeMultiplier' is set to value greater than 1.
Here are some stats with a Lucene based site and ~20k docs in open
changes index and ~4M in closed changes index (with ~1M abandoned
and ~3M merged).
status:open staus:abandoned
no-limit no-limit
without this change 7.6s 436s
with change
paginationType=OFFSET 7.9s 2622s
pageSizeMultiplier=1
with change
paginationType=SEARCH_AFTER 7.8s 480s
pageSizeMultiplier=1
with change
paginationType=OFFSET 7.4s 417s
pageSizeMultiplier=10
with change
paginationType=SEARCH_AFTER 7.7s 418s
pageSizeMultiplier=10
If 'index.pageSizeMultiplier' is set to 1 (default), we update it to
10 for no-limit queries as it helps improve performance and also
prevents no-limit queries from severely degrading when pagination type
is OFFSET.
[1] entity content is too long [..] for the configured buffer limit [104857600]
Release-Notes: no-limit queries are now usable with Elasticsearch index backend
Change-Id: Ifb1f6f5411140c430f2520fb252e688b67d5333c
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If the first query to the index did not fill the full limit the caller
wants, we paginate to obtain more results. However, subsequent queries
are not needed if there are no more results from the previous query.
On a test site with ~25k open changes, query-limit of 30k and ES as
index backend, a 'status:open' query when run with a user (who can't
see most changes) now does 1 index search and finishes in ~30s with
this change as opposed to 2 and ~45s without it. Note that, in most
setups which have a default query-limit of 500 and open changes more
than the query-limit, we won't see any performance improvement.
Release-Notes: skip
Change-Id: I3143e69354e19f3eb99c82102a3ce045af8ebc18
|
| |\ \ \
| | | | |
| | | | |
| | | | | |
into stable-3.4
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The 'limit' when paginating the source already has 'start' added
to it when query options are converted for index backend. We already
have tests ensuring it. Adding it again to 'limit' will fetch us
more results than we need. These extra results will eventually be
trimmed, but we end-up doing more work than needed.
On a test site with ~25k open changes, query-limit of 50 and ES as
index backend a query like [1], when run with a user (who can't see
most changes) now does 3 index searches and finishes in ~200ms with
this change as opposed to 4 and ~250ms without it. Note that, this
stat also depends on the fact the visible and non-visible changes
are intertwined together.
[1] gerrit query 'status:open' --start 40
Release-Notes: skip
Change-Id: I99bc17d059b06ec0a904cb0c4036ab2ec2f45d23
|
| |\ \ \ \
| | | | | |
| | | | | |
| | | | | | |
stable-3.4
|
| | |/ / /
| | | | |
| | | | |
| | | | |
| | | | | |
Release-Notes: skip
Change-Id: Iddb338551c80e4f739a5bc4fc836c43a94604a70
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When new[Callback|Constant]Metric methods are called as an opposite to
the remaining methods they don't return the RegistrationHandle. As a
result it is no longer possible to de-register metrics created with that
methods.
Release-Notes: skip
Change-Id: I06d48535702a8acd0bcb4e1315a35b3c1d1768cb
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
A 'pageSizeMultiplier' config entry is added to allow paginating
index queries with increasing size. Default multiplier is set to
1 to keep the current pagination unchanged. 'maxPageSize' has
also been added to limit the maximum results a repeated index
query can request.
Increasing page sizes can help with performance of queries such
as [1] where the visibility is being queried for an account that
cannot see most/all changes. On a site with 1M abandoned changes,
queries like [1] finish in:
45.1 mins with paginationType=OFFSET and pageSizeMultipler=1
8.5 mins with paginationType=OFFSET and pageSizeMultipler=10
9.1 mins with paginationType=SEARCH_AFTER and pageSizeMultipler=1
8.2 mins with paginationType=SEARCH_AFTER and pageSizeMultipler=10
This change also acts as a stepping stone for the next one in the
series where no-limit will be updated to paginate without any
regressions.
[1] gerrit query 'status:abandoned visibleto:guest'
Release-Notes: Index searches can now paginate with increasing size
Change-Id: Iee014d1391c15d7ef31770b4fca538122944eb6b
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Current Paginated interface only allows to restart a query from
a given offset. Update it to also allow restarting queries using
a searchAfter key. searchAfter can help with performance of queries
such as [1] where the visibility is being queried for an account
that cannot see most/all changes. [1] finishes in ~45 mins with
OFFSET and ~10 mins with SEARCH_AFTER when the site has around
1M abandoned changes.
Index config has been updated to add a paginationType entry with
OFFSET and SEARCH_AFTER as supported values. The default is set
to OFFSET to keep the current pagination type unchanged.
Gerrit's Lucene index implementation has been updated to support
this new pagination type with search-after[2]. Elasticsearch
index implementation has also been updated to paginate using
search-after[3] and can be further improved to use PIT[4]. Lucene
and Elasticsearch tests have been updated to run with both pagination
types. Also, Elasticsearch tests now use the official docker image
as it can handle running tests with multiple index config suites.
Note that, searchAfter will not impact using offsets in Gerrit
query APIs.
[1] gerrit query 'status:abandoned visibleto:guest'
[2] https://lucene.apache.org/core/6_6_5/core/org/apache/lucene/search/IndexSearcher.html#search-org.apache.lucene.search.Query-int-org.apache.lucene.search.Sort-boolean-boolean-
[3] https://www.elastic.co/guide/en/elasticsearch/reference/current/paginate-search-results.html#search-after
[4] https://www.elastic.co/guide/en/elasticsearch/reference/current/point-in-time-api.html
Release-Notes: Index searches now support search-after pagination
Change-Id: If3f8d914d5fd3f350c026cf099f08cf9a13f2195
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
No need to repeat this work for every change we're trying to match and
unless the `user` is the current user, we'll be creating a
new IdentifiedUser each time which adds an overhead that degrades
query performance.
On a site with around 20k open changes a query where the visibility is
checked for an account that cannot see most/all changes improves from
~14s to ~9s.
Change-Id: I9e797fcb3622ed1b0d8313d843c95f7dfaf490f5
Release-Notes: Improve performance of queries that check the visibility of changes wrt a non-current user
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Certain permissions cannot be used in All-Projects and are filtered
out before we evaluate them. This used to be done in ProjectState
and was cached when that entity was cached. Now, we cache immutable
data objects (mostly AutoValues) for better thread safety.
When the ProjectCache was refactored, this logic was left in
ProjectState. This means it has to be recomputed quite often when
permissions are evaluated. A recent profile showed that we can
save CPU time (hence request time) as well as heap if we cache
the outcome of this filtering.
This is what this commit does. Existing tests check that permissions
that are not allowed on All-Projects (e.g. OWNERS on refs/*) are
indeed not evaluated.
Since this filtering depends on if a project is considered to
be All-Projects or not, we have to invalidate the cache when
the name of All-Projects changes. We document this fact.
Release-Notes: Cache permission filtering for All-Projects
Change-Id: I01e08e70bf36aaf4be522564286ab4a86e7681a3
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This bug was fixed in I5262ed8454dac3249385e9c996c07ec2177ff614.
Change-Id: Ie007ef7e62c5fa77080f6fd1e5d94e0cf634f052
Release-Notes: n/a
|