summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| | * | | | | | Explain in /projects/ REST API when the "parent" field is "?-N"Alvaro Vilaplana Garcia2023-10-101-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update the documentation for the /projects/ REST API to incorporate details about retrieving project inheritance in a tree-like format. If the calling user fails to satisfy any of the following conditions: - Parent project is "ACTIVE" or "READ ONLY", and the user has READ permission to at least one ref. - Parent project is "HIDDEN", and the user has READ permission for 'refs/meta/config'. Then the 'parent' JSON field will be denoted as '?-N' where N represents the nesting level within the project's tree. Release-Notes: Explain in /projects/ REST API when the "parent" field is "?-N" Change-Id: I301ae1e158bf63bba954006c7c8567db1d439434
* | | | | | | | Merge "Revise getFromProjectLookup" into stable-3.8Luca Milanesio2023-10-014-58/+79
|\ \ \ \ \ \ \ \
| * | | | | | | | Revise getFromProjectLookupBen Rohlfs2023-06-274-58/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need a decent fallback when the change query fails for looking up the repo. It is very likely that the repo could be derived from the URL in the meantime. So let's check for that before throwing a page error. Also add some comments and improve clarity of the project lookup methods. Other attemps at solving the issue were change 373241 and change 349956. Release-Notes: skip Bug: Issue 40015476 Change-Id: Iacda3ad3602289c0bc9f1f241afd4bf36658c7eb (cherry picked from commit c39984ea78c7dd8b786fd22f00c3116e12ff334f)
* | | | | | | | | Merge branch 'stable-3.7' into stable-3.8Martin Fick2023-09-2915-104/+574
|\ \ \ \ \ \ \ \ \ | | |/ / / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-3.7: Add in memory change data cache by project Change-Id: Icf31e1c992558f48894e429c17929da926934766 Release-Notes: skip
| * | | | | | | | Merge branch 'stable-3.6' into stable-3.7Martin Fick2023-09-2915-102/+572
| |\ \ \ \ \ \ \ \ | | | |/ / / / / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-3.6: Add in memory change data cache by project Change-Id: Iaaefec06ef74205b0611372eb5fb7c6086086066 Release-Notes: skip
| | * | | | | | | Merge branch 'stable-3.5' into stable-3.6Martin Fick2023-09-2915-103/+572
| | |\ \ \ \ \ \ \ | | | | |/ / / / / | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-3.5: Add in memory change data cache by project Change-Id: I4ef0e654385fce50782d96c498ef9bc140aa2a22 Release-Notes: skip
| | | * | | | | | Add in memory change data cache by projectMartin Fick2023-09-2814-123/+570
| | | | |/ / / / | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This cache only stores the data needed to speedup ref advertisements. The index is used to populate this cache when it is available otherwise it falls back to scanning noteDb (generally on replicas). This cache is most useful when using 'git upload-pack' with projects with large change counts on replicas. The following times were seen when running 'git ls-remote' on a project with around 380K changes stored on NFS: With ES index (primary): Before this change: (cold 1m3s) 12-17s (with large enough "changes" cache) After this change: (cold 1m3s) 12-17s (with large enough "changes" cache) No Index (replica): Before this change: (cold ~4m) ~4m After this change: (cold 2m25s) 12-17s Although the numbers above do not show an improvement on "best" times for primaries using ES, that's because those numbers represent the times achieved with the existing "changes" cache enabled. However, since the existing "changes" cache is disabled by default, most sites will see an improvement after this change with 'git upload-pack' on primaries also, and additionally with 'git receive-pack'. Thus the warm times after this change are more achievable and more likely to stay fast, even when other projects are accessed in between. Before this change it is harder to achieve and maintain the warm times. The existing "changes" cache can also is used to help cache changes by project, however, it is documented as not being appropriate for multi-primary setups since it will be out of date if alterations are made to changes outside of the current server. The existing cache is also not useable on replicas where there is no index. It is noteworthy that the existing cache provide value beyond just its ability to cache results since loading change data from the index (even with ES), is faster than loading change data via a noteDb scan. Similar to the existing cache, the new cache is able to take advantage of the index when it is available on primaries, however it is actually multi-primary friendly because it stores the meta-ref id for each change and out-of-date changes are detected on each cache fetch resulting in the cache being incrementally kept up-to-date. The new cache is also useable on replicas by also falling back to a noteDb scan when the index is not available, however here too it is able to incrementally stay up to date after the first scan. The new cache is much more space efficient than the existing "changes" cache as it takes advantage of the fact that determining visibility for public changes requires access only to a change's destination branch and that many changes are generally destined for each branch. So although the existing cache is fairly compact, this new cache stores even fewer change data fields. This makes it likely possible to keep all the projects on a server cached in memory, even on servers with large projects and change counts. It may make sense to eventually remove the existing changes cache. Release-Notes: Add cache to speedup ref advertisements (particularly on replicas) and receive-pack Forward-Compatible: checked Change-Id: Ib9c77ee03d9012cdeb6ad05eed3492c3009e4334
* | | | | | | | Merge branch 'stable-3.7' into stable-3.8Prudhvi Akhil Alahari2023-09-2732-124/+443
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-3.7: (26 commits) Fix cache.<name>.maxAge gerrit config doc Read refreshAfterWrite and maxAge from config for persistent caches Fix gerrit config doc for expireAfterWrite Fix loading and state of <gr-repo> Fix H2CacheFactory to correctly set refreshAfterWrite GitVisibleChangeFilter: Avoid throwing exceptions Show edit icon for topic only if it is not readonly Fix SSH set-topic cmd to consider 'editTopicName' permission Avoid NPE when deleting single ref SubmitRuleEvaluator: Do not recreate metrics for each instance SubmitRuleEvaluator: Move Factory interface above fields DefaultRefFilter: Do not recreate metrics for each instance Fix NPE when remote display name unset Fix 'force topic edit' permission to consider change owner rule QueryProcessor: Create Singleton metrics instances for subclasses Retry SSH set-reviewers cmd on lock failures InactiveAccountDisconnector: Fix NPE when sessionUser is null Reword Eclipse dev guide about plugins test dependencyies CloudSpannerAccountPatchReviewStore#convertError: Fix endless recursion SSH Query: Show copied approvals on respective patchsets ... Release-Notes: skip Change-Id: I837025bd07f0d2e63a7915306a4dcfc2f8a29afe
| * | | | | | | Merge branch 'stable-3.6' into stable-3.7Prudhvi Akhil Alahari2023-09-274-36/+63
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-3.6: Fix cache.<name>.maxAge gerrit config doc Read refreshAfterWrite and maxAge from config for persistent caches Fix gerrit config doc for expireAfterWrite Fix H2CacheFactory to correctly set refreshAfterWrite GitVisibleChangeFilter: Avoid throwing exceptions Show edit icon for topic only if it is not readonly Fix SSH set-topic cmd to consider 'editTopicName' permission Release-Notes: skip Change-Id: If428c47a6ed8064f0dacb15ee606c12819d98e96
| | * | | | | | Merge branch 'stable-3.5' into stable-3.6Prudhvi Akhil Alahari2023-09-272-18/+28
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-3.5: Fix cache.<name>.maxAge gerrit config doc Read refreshAfterWrite and maxAge from config for persistent caches Fix gerrit config doc for expireAfterWrite Fix H2CacheFactory to correctly set refreshAfterWrite Show edit icon for topic only if it is not readonly Release-Notes: skip Change-Id: I02e70284d6893da52e808693eade44c61254ec2f
| | | * | | | | Merge "Fix cache.<name>.maxAge gerrit config doc" into stable-3.5Nasser Grainawi2023-09-271-2/+1
| | | |\ \ \ \ \
| | | | * | | | | Fix cache.<name>.maxAge gerrit config docPrudhvi Akhil Alahari2023-09-271-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The statement "refreshed from source data every maxAge interval" is not true. The Guava [1] and Caffeine [2] docs specify that each entry should be automatically removed from the cache once a fixed duration has elapsed after the entry's creation. The value is not refreshed automatically after its removal. Thus remove the misleading statement. [1] https://guava.dev/releases/19.0/api/docs/com/google/common/cache/CacheBuilder.html#expireAfterWrite(long,%20java.util.concurrent.TimeUnit) [2] https://www.javadoc.io/doc/com.github.ben-manes.caffeine/caffeine/2.1.0/com/github/benmanes/caffeine/cache/Caffeine.html#expireAfterWrite-long-java.util.concurrent.TimeUnit- Release-Notes: skip Change-Id: Ie83a22f1936ea6208456b2fac05f5d4c46cae8ad
| | | * | | | | | Read refreshAfterWrite and maxAge from config for persistent cachesPrudhvi Akhil Alahari2023-09-271-2/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Similar to in memory cache, override persistent cache's refreshAfterWrite and maxAge settings from gerrit config when available. Release-Notes: refreshAfterWrite and maxAge settings in gerrit config are now honored for both persistent and in-memory caches Change-Id: Iab8667cd44dc6bcc5d54d217ea273209e4754e50
| | | * | | | | | Fix gerrit config doc for expireAfterWritePrudhvi Akhil Alahari2023-09-271-14/+0
| | | |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cache.<name>.expireAfterWrite is never read from gerrit config. We use cache.<name>.maxAge setting to define the expiry time for a cache entry. Thus remove expireAfterWrite from doc, so that gerrit config doc is not misleading. Release-Notes: skip Change-Id: I9e9d502e5ac889423aefa002558d26f82faf1a8a
| | | * | | | | Merge "Show edit icon for topic only if it is not readonly" into stable-3.5Nasser Grainawi2023-09-261-1/+1
| | | |\ \ \ \ \
| | | | * | | | | Show edit icon for topic only if it is not readonlyKaushik Lingarkar2023-09-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Release-Notes: skip Change-Id: I1859785435014765deb4dc23240ffcfd3d6a67b2
| | | * | | | | | Fix H2CacheFactory to correctly set refreshAfterWritePrudhvi Akhil Alahari2023-09-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change Ibc188bf663 unintentionally sets expireAfterAccess value to refreshAfterWrite for persistent caches. Release-Notes: Setting refreshAfterWrite for persisted cache now works and does not mistakenly use expireAfterAccess instead of refreshAfterWrite Change-Id: Ia9617e9b14b97670ca14bcf4b6a88eb2da6e20c8
| | * | | | | | | Merge branch 'stable-3.5' into stable-3.6Kaushik Lingarkar2023-09-251-15/+28
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-3.5: Fix SSH set-topic cmd to consider 'editTopicName' permission Release-Notes: skip Change-Id: I8dd10029c8f68c20a286ca8636a8fe4abc043b2f
| | | * | | | | | Fix SSH set-topic cmd to consider 'editTopicName' permissionKaushik Lingarkar2023-09-221-16/+28
| | | |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Call the PutTopic API to set the topic on a change via SSH as it has the required conditions to validate access. Release-Notes: SSH set-topic cmd is fixed to consider edit topic permission Change-Id: I870dc50a5ea68867f1e17390eeba14c73f7904de
| | * | | | | | GitVisibleChangeFilter: Avoid throwing exceptionsNasser Grainawi2023-09-221-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The predecessor to this class, VisibleChangesCache, tried to ensure exceptions didn't prevent returning as complete of a response as possible and the loadChangeDatasOneByOne() method in this class maintained that behavior. Fix the scanRepoForChangeDatas() and getVisibleChanges() methods to also have that behavior, replacing the cases where they would throw a StorageException with log warning messages and an empty/negative result. This also matches the behavior of SearchingChangeCacheImpl.getChangeData(). Change-Id: I25982ffd95b039edb821054000476a7c32f70a3d Release-Notes: Fixed case where an exception in change visibility checking could break visibility of all refs in that repo
| * | | | | | | Merge "Merge branch 'stable-3.6' into stable-3.7" into stable-3.7Jacek Centkowski2023-09-2629-89/+381
| |\ \ \ \ \ \ \
| | * | | | | | | Merge branch 'stable-3.6' into stable-3.7Antonio Barone2023-09-2629-89/+381
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-3.6: Avoid NPE when deleting single ref SubmitRuleEvaluator: Do not recreate metrics for each instance SubmitRuleEvaluator: Move Factory interface above fields DefaultRefFilter: Do not recreate metrics for each instance Fix NPE when remote display name unset Fix 'force topic edit' permission to consider change owner rule QueryProcessor: Create Singleton metrics instances for subclasses Retry SSH set-reviewers cmd on lock failures InactiveAccountDisconnector: Fix NPE when sessionUser is null Reword Eclipse dev guide about plugins test dependencyies CloudSpannerAccountPatchReviewStore#convertError: Fix endless recursion SSH Query: Show copied approvals on respective patchsets Update git submodules Update git submodules Update git submodules Skip building bloom filters by default during offline reindex Disable cache cleanup during offline reindex Add toString method to project list cache Release-Notes: skip Change-Id: Ibbecaf1f9f17d0e2faac9f0b14f7faf22beb6fa1
| | | * | | | | | Merge "Fix NPE when remote display name unset" into stable-3.6Luca Milanesio2023-09-222-2/+82
| | | |\ \ \ \ \ \
| | | | * | | | | | Fix NPE when remote display name unsetDarius Jokilehto2023-09-212-2/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix a NullPointerException thrown when `auth.httpDisplaynameHeader` is configured, but the header isn't set. Bug: Issue 300976121 Release-Notes: Fix NPE when auth.httpDisplaynameHeader is configured but header is unset Change-Id: Ib92fea2f29092d096dc03f232c47ca0661b23864
| | | * | | | | | | Merge branch 'stable-3.5' into stable-3.6Nasser Grainawi2023-09-2124-80/+288
| | | |\ \ \ \ \ \ \ | | | | | |/ / / / / | | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-3.5: SubmitRuleEvaluator: Do not recreate metrics for each instance SubmitRuleEvaluator: Move Factory interface above fields DefaultRefFilter: Do not recreate metrics for each instance Fix 'force topic edit' permission to consider change owner rule QueryProcessor: Create Singleton metrics instances for subclasses Retry SSH set-reviewers cmd on lock failures InactiveAccountDisconnector: Fix NPE when sessionUser is null SSH Query: Show copied approvals on respective patchsets Update git submodules Update git submodules Update git submodules Skip building bloom filters by default during offline reindex Disable cache cleanup during offline reindex Add toString method to project list cache Change-Id: I5d086c496c9b7901abfbe51ace9d0e46b3f47e20 Release-Notes: skip
| | | | * | | | | | Merge changes I02aafb92,I3450875b,Ia9630124,I7cf5471e into stable-3.5Nasser Grainawi2023-09-217-50/+108
| | | | |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * changes: SubmitRuleEvaluator: Do not recreate metrics for each instance SubmitRuleEvaluator: Move Factory interface above fields DefaultRefFilter: Do not recreate metrics for each instance QueryProcessor: Create Singleton metrics instances for subclasses
| | | | | * | | | | | SubmitRuleEvaluator: Do not recreate metrics for each instanceNasser Grainawi2023-09-211-17/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The expected pattern is to create a Singleton class for the metrics so that they're created once and then inject that same instance into every newly created SubmitRuleEvaluator instance. Change-Id: I02aafb9229588f96e398c0d7bdb8c42ca2e08ecb Release-Notes: Fixed potential OOM due to SubmitRuleEvaluator creating new metrics whenever an instance was created
| | | | | * | | | | | SubmitRuleEvaluator: Move Factory interface above fieldsNasser Grainawi2023-09-211-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixing the code organization to align with our style guide. Change-Id: I3450875bf6f76db9decb6246f3dd185409662400 Release-Notes: skip
| | | | | * | | | | | DefaultRefFilter: Do not recreate metrics for each instanceNasser Grainawi2023-09-211-17/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The expected pattern is to create a Singleton class for the metrics so that they're created once and then inject that same instance into every newly created DefaultRefFilter instance. Change-Id: Ia96301247df550e7ba960cd0134c0fd1e547f539 Release-Notes: Fixed potential OOM due to DefaultRefFilter creating new metrics whenever an instance was created
| | | | | * | | | | | QueryProcessor: Create Singleton metrics instances for subclassesNasser Grainawi2023-09-205-11/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When change.QueryProcessor was refactored to support AccountQueryProcessor in change Iaa76a69ff9, the Singleton Metrics class became a per-instance class. This does not appear to be the intent for classes creating metrics in general and specifically is a problem when plugins get a query processor instance from a provider because then the PluginMetricsMaker is used to create the new metric. That PluginMetricsMaker keeps a reference to any created metrics instances, which means a plugin that runs queries would forever accumulate memory. Fix that issue by creating Singleton subclasses of QueryProcessor.Metrics for each of QueryProcessor's subclasses. This way the provided *QueryProcessor instances will always get the appropriate Metrics instance without continually creating new ones. Change-Id: I7cf5471e29a4357df65af67864f1517133db1ecc Release-Notes: Fixed potential OOM due to *QueryProcessor classes creating new metrics whenever an instance was provided
| | | | * | | | | | | Fix 'force topic edit' permission to consider change owner ruleKaushik Lingarkar2023-09-203-5/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On closed changes, the permission to edit topic name currently ignores the rule to allow the change owner. Fix this by updating RefControl#canForceEditTopicName to require whether the user is owner of the change. Release-Notes: 'force topic edit' permission is fixed to work with change owner rule Change-Id: I5d014dd44cf3a0cb4a84318ab69791376d41eb68
| | | | * | | | | | | Merge "Retry SSH set-reviewers cmd on lock failures" into stable-3.5Kaushik Lingarkar2023-09-201-6/+29
| | | | |\ \ \ \ \ \ \ | | | | | |/ / / / / / | | | | |/| | | | | |
| | | | | * | | | | | Retry SSH set-reviewers cmd on lock failuresKaushik Lingarkar2023-09-191-6/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For the same reasons mentioned in Ieb84f0a65, retry set-reviewers cmd. It is prone to lock failures as there can be a contention to lock the notedb ref. Release-Notes: SSH set-reviewers cmd now handles lock failures with retries Change-Id: Ib68d3152bd0fdfc237f522b427280455e682947b
| | | | * | | | | | | InactiveAccountDisconnector: Fix NPE when sessionUser is nullNasser Grainawi2023-09-191-1/+3
| | | | |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most SSH sessions are initially created without the sessionUser set, so there's a race where an account is deactivated and iterates over sessions and one of those sessions has a null sessionUser. Change-Id: I1dd15e9240e7e690881bf61df262f0de14ed1c6e Release-Notes: Fixed InactiveAccountDisconnector NPE due to race condition
| | | | * | | | | | SSH Query: Show copied approvals on respective patchsetsKaushik Lingarkar2023-09-054-1/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Copied approvals are currently only shown on the current patch-set. CI systems parsing the query result to get approvals on non-current patch-sets will run into issues if copied approvals are not returned on respective patch-sets. Release-Notes: SSH queries now show copied approvals on respective patch-sets Bug: Issue 295457464 Change-Id: I40a605be7f27c70233d94130ae6c5aba22e8818c
| | | | * | | | | | Update git submodulesNasser Grainawi2023-08-301-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Update plugins/replication from branch 'stable-3.5' to 694b34084ca623756a9ec7e6a60631ab6027d5c2 - TasksStorage: Remove synchronized from methods These aren't expected to be necessary for correctness. Change-Id: Id23d3b385e289ba453638b76d6523016a5aabf2a
| | | | * | | | | | Update git submodulesMartin Fick2023-08-301-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Update plugins/replication from branch 'stable-3.5' to f447543ba5493bae04cc9a5a2844f2745541e27a - Place the replaying flag clearing in a finally This ensure that 'replaying' will be set to false even if an exception occurs in pruneNoLongerPending(), otherwise if would be possible for the distributor to get "stuck" and never be able to run again. Release-Notes: Avoid opportunity to inadvertently block the distributor Change-Id: I4628a574ad54ca6abd591138edc48e12a39447e7
| | | | * | | | | | Update git submodulesMartin Fick2023-08-231-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Update plugins/replication from branch 'stable-3.5' to 082c710e28901ec6aeb5d135b1f11bacf4ae7a00 - Demote delete errors when distributor is enabled Since delete errors for Tasks is expected after recovery (when another nodes starts up) when running with a multi-primary setup, demote them to "atFine()" level when the distributor is enabled. This avoids errors in the logs during normal multi-primary operation. Release-Notes: Reduced log level for Task deletion errors in MP setups Change-Id: Iccca2e1bd2b91b91e12a14c4e473c8a6df6fd4b7
| | | | * | | | | | Skip building bloom filters by default during offline reindexKaushik Lingarkar2023-08-117-6/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Building bloom filters can take a really long time, especially when fully populated disk caches are used with large Gerrit installations. Skipping it avoids unnecessary work when fully populated caches are being used. Even when reindexing with caches that aren't populated, bloom filters don't provide a significant performance improvement. Release-Notes: Bloom filters are no longer built during offline reindex Change-Id: I33095383a13f6de4f10a21c2a215e63dfa7972d1
| | | | * | | | | | Disable cache cleanup during offline reindexKaushik Lingarkar2023-08-111-12/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Offline reindex can potentially suffer from poor performance if the caches are being pruned, especially when populated caches are used to speed up reindex. As there is no obvious benefit from pruning caches during reindex, disable it. Release-Notes: skip Change-Id: Ia82f2f03efbbcd6954252721a052b9827faa8194
| | | | * | | | | | Merge branch 'stable-3.4' into stable-3.5Yash Chaturvedi2023-07-311-0/+5
| | | | |\ \ \ \ \ \ | | | | | | |_|/ / / | | | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-3.4: Add toString method to project list cache Release-Notes: skip Change-Id: I232ba0d1ad43dcaba150c3b34ebe22f22c32c8ed
| | | | | * | | | | Merge "Add toString method to project list cache" into stable-3.4Yash Chaturvedi2023-07-311-0/+5
| | | | | |\ \ \ \ \
| | | | | | * | | | | Add toString method to project list cacheYash Chaturvedi2023-07-261-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add meaningful string representation for PeriodicProjectListCacheWarmer class so that task entry corresponding to it is readable in gerrit show-queue output. Change-Id: I8138f19c4354911d76233cd1fe7a7f89e6c4262d Release-Notes: skip
| | | * | | | | | | | Avoid NPE when deleting single refAntonio Barone2023-09-211-3/+6
| | | | |_|_|/ / / / | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change I8e19d756db fixed a bug where an NPE was thrown during the deletion of multiple refs if one of them didn't exist, or possibly already removed by a concurrent caller. The `deleteMultipleRefs()` method however, falls back to calling the `deleteSingleRef()` method, which also suffers from the same issue. Fix the `deleteSingleRef()` method to account for unexisting refs, so that a concurrent execution from another caller does not cause an NPE. Release-Notes: Avoid NullPointerException when deleting a single ref Bug: Issue 291102119 Change-Id: Ibe79290f4eb7332cc22e72c906fe5f60bedbcca6
| | | * | | | | | | Reword Eclipse dev guide about plugins test dependencyiesDariusz Luksza2023-09-191-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Release-Notes: skip Change-Id: Idce1f97c3988e2042b37e2701334dc81f4f09e36
| | | * | | | | | | CloudSpannerAccountPatchReviewStore#convertError: Fix endless recursionEdwin Kempin2023-09-151-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the given SQLException cannot be mapped to DuplicateKeyException the method recursively invoked itself resulting in an endless loop. Release-Notes: skip Change-Id: Ie4c1afb2b543cf0437e1fb85271e5844704f1070 Signed-off-by: Edwin Kempin <ekempin@google.com> (cherry picked from commit a590f25374f3fb2b9e20b2663be6b5c48d578f7f)
| * | | | | | | | | Fix loading and state of <gr-repo>Ben Rohlfs2023-09-262-118/+122
| |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The goal was to just fix the bug reported in b/266010917: This was caused by the component being rendered with undefined `repoConfig`, then handlers such as `handleDescriptionTextChanged` were called with empty values at a moment where `repoConfig` was already loaded. The immediate fix is just not render the DOM while `repoConfig` is undefined or `loading` is true. That could have been achieved with a few lines of change, but using a `loading` css class along with `display:none` is so polymer-style that we are also cleaning this up along the way. Release-Notes: Fix the repository configuration loading and rendering when switching tabs Bug: Issue 301481564 Google-Bug-Id: b/266010917 Change-Id: Iabb30640319583e1d646dc68d508ab89044aba8b
* | | | | | | | | Merge "Remove property drilling for `gr-smart-search`" into stable-3.8Paladox none2023-09-196-38/+20
|\ \ \ \ \ \ \ \ \
| * | | | | | | | | Remove property drilling for `gr-smart-search`Ben Rohlfs2023-09-186-38/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Release-Notes: skip Change-Id: I1e2b5d352ed64a0e3b4953775299b0df5d6f2a38 (cherry picked from commit 2e5aca9c5de8cf517204e72e00191ec6de4c68ea)
* | | | | | | | | | Make HttpCanonicalWebUrlProvider extendableDariusz Luksza2023-09-182-2/+6
|/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change HttpCanonicalWebUrlProvider constructor access to `protected` to make this clas extendable. This way plugins like virtualhost can change value of `canonicalWebUrl` based on the HTTP context request. The problem with different canonical web urls comes into play when virtualhost and download-commands plugins are used together. When looking at the virtual host site and opening `Downloads` dialog, the main host canononical web url will be used in download urls. This may confuse users. In order to fix that problem we need to make the default HttpCanonicalWebUrlProvider extendable. Then we can bind it to a custom implemenation in virtualhost plugin. Bug: Issue 299833801 Release-Notes: Allow modules to provide different logic for the HTTP canonicalWebUrl Change-Id: I8321b153782e0bf8131c66ebe477902a434c6dc1 (cherry picked from commit f0301a2d00950cc1a67f6f917ff0a881230a2a27)