summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Set version to 3.6.0v3.6.0Luca Milanesio2022-05-235-5/+5
| | | | | Release-Notes: skip Change-Id: Iec41f2c9e9d23420dd454973a8b6d7b226bec016
* Merge branch 'stable-3.5' into stable-3.6Luca Milanesio2022-05-230-0/+0
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-3.5: Do not try to copy labels with value == 0 Expose the CopyApprovals site program as a command Create site program to persist copied votes on all changes Noop merge with "ours" strategy: all the above commits are for a v3.5-specific migration tool (copy-approvals) that does not make sense from stable-3.6 onwards. Release-Notes: copy-approvals command site program removed Change-Id: I679e401b2806e2b3137ed3c46064acf8a23888f5
| * Do not try to copy labels with value == 0Luca Milanesio2022-05-231-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When calculating the inferred approvals for the copied labels, the ones with value == 0 would never be stored and therefore should not be selected. Selecting an approval with a value == 0 causes the change to receive a series of empty change notes which would cause unneeded noise and create redundant Git objects and commits. Release-Notes: skip Change-Id: I660e350f6f08fc75803f3e34cb00a391f19c3d88
| * Expose the CopyApprovals site program as a commandLuca Milanesio2022-05-236-8/+176
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow Gerrit admins to copy the approval labels on running server by exposing the functionality as a Gerrit SSH command. The copy-approvals command is limited to the Gerrit admin because may potentially cause a significant load on the server and generate a substantial (e.g. hundreds of thousands) ref-update events. NOTE: This command is going to be dropped in v3.6 because the logic for calculating the inferred labels has been removed. Release-Notes: Introduce copy-approvals SSH command Change-Id: I13f469b950e2de0b366f28e089cb114781dbdb11
| * Create site program to persist copied votes on all changesGal Paikin2022-05-236-0/+503
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As an extension of If95c0f8b0, this site program makes sure all changes will have the Copied-Label. When moving to version 3.6, votes will not be copied over on demand but only computed by looking at Copied-Label in the storage. This is useful for open changes to ensure votes are not lost, but also on closed changes so that it's more clear which votes were done that enabled the submission of that change. Release-Notes: Add site program to persists copied votes on all changes Change-Id: I3fec6440c0dd675c71cff2b463f1b06bf3386530
* | Fix typo in InheritedBooleanInfoConfiguredValue enumpaladox2022-05-232-2/+2
| | | | | | | | | | | | Release-Notes: skip Change-Id: I8064ce1d3bb3d9f2f3834da7a35e040906e54f3d (cherry picked from commit 4d71f28f198379482ab266835e02b55f8cc5a2eb)
* | rest-api-projects: Fix documentation for #inherited-boolean-infoPaladox none2022-05-231-1/+1
| | | | | | | | | | | | | | | | | | | | The correct value is "INHERIT" not "INHERITED" [0]. [0] https://github.com/GerritCodeReview/gerrit/blob/stable-3.6/java/com/google/gerrit/extensions/client/InheritableBoolean.java#L20 Release-Notes: rest-api-projects: Fix documentation for #inherited-boolean-info Change-Id: I9719772712b15c937e68c8f1801b912f66e9a146 (cherry picked from commit 348de184608cafdc9c799553891cfcd9f0eb3835)
* | Merge changes I64b553f2,Ied9fc2f7 into stable-3.6David Ostrovsky2022-05-233-0/+198
|\ \ | | | | | | | | | | | | | | | * changes: Introduce general purpose Optional JSON serializer for GSON Add Optional type JSON (de)serialization unit tests
| * | Introduce general purpose Optional JSON serializer for GSONJacek Centkowski2022-05-203-0/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the current version GSON has no dedicated implementation for Optional (more context given in [1]) type and uses reflection in order to (de)serialize it. The problem is that newer versions of JDK (for instance 17) no longer allow for JDK internal classes reflection access. One option to solve it is to pass arg to VM ('--add-opens java.base/java.util=ALL-UNNAMED') but that gets flaky as more tests are written and option keeps getting propagated to more packages and what is more it is not a solution for long term. This change solves it by adding a general purpose Optional (de)serializer that gets registered prior to the specific ones and doesn't rely on reflection. The (de)serialization of this adapter is exactly the same as the reflective (de)serialization. [1] https://github.com/google/gson/pull/2022 Release-Notes: Introduce non-reflection based Optional Type Adapter Bug: Issue 15504 Change-Id: I64b553f2a8c14ce1c83fbac8edfeeb3e6aa2c2cf (cherry picked from commit f0b875b29ef2ebc06650cd98620abfb78c4c2660)
| * | Add Optional type JSON (de)serialization unit testsJacek Centkowski2022-05-201-0/+65
| | | | | | | | | | | | | | | | | | Release-Notes: skip Change-Id: Ied9fc2f702922cc61a8a9e0b2bf9b372539eddb7 (cherry picked from commit da9078c3c3ee92f6c55ce4063603974c70f00c9c)
* | | Merge branch 'stable-3.5' into stable-3.6Luca Milanesio2022-05-208-87/+310
|\ \ \ | | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-3.5: Bump bazel version to 4.2.2 Update git submodules Set PerThreadCache as readonly after creating a new patch-set Set PerThreadCache as readonly when formatting change e-mails Set PerThreadCache as readonly when formatting change JSON Set PerThreadCache as readonly after deleting a change Set PerThreadCache as readonly after abandoning a change Set PerThreadCache as readonly after merging a change Set PerThreadCache as readonly after posting review comments Introduce unloaders on PerThreadCache entries RepoRefCache: Hold a reference to the refDatabase with ref counting Remove use of RefCache in ChangeNotes Revert "Cache change /meta ref SHA1 for each REST API request" Cache change /meta ref SHA1 for each change indexing task Release-Notes: skip Change-Id: I408c75351fac63a3da2caf380aaa666bb8ba4d2d
| * | Merge branch 'stable-3.4' into stable-3.5Luca Milanesio2022-05-209-88/+311
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-3.4: Bump bazel version to 4.2.2 Update git submodules Set PerThreadCache as readonly after creating a new patch-set Set PerThreadCache as readonly when formatting change e-mails Set PerThreadCache as readonly when formatting change JSON Set PerThreadCache as readonly after deleting a change Set PerThreadCache as readonly after abandoning a change Set PerThreadCache as readonly after merging a change Set PerThreadCache as readonly after posting review comments Introduce unloaders on PerThreadCache entries RepoRefCache: Hold a reference to the refDatabase with ref counting Remove use of RefCache in ChangeNotes Revert "Cache change /meta ref SHA1 for each REST API request" Cache change /meta ref SHA1 for each change indexing task Also fix references to Builder of InMemoryRepository flagged by errorprone on RepoRefCacheTest. Release-Notes: skip Change-Id: I9a83cf3a14e1df7c0d80a48d06ada138d305f42c
| | * \ Merge branch 'stable-3.3' into stable-3.4Luca Milanesio2022-05-209-88/+312
| | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-3.3: Bump bazel version to 4.2.2 Update git submodules Set PerThreadCache as readonly after creating a new patch-set Set PerThreadCache as readonly when formatting change e-mails Set PerThreadCache as readonly when formatting change JSON Set PerThreadCache as readonly after deleting a change Set PerThreadCache as readonly after abandoning a change Set PerThreadCache as readonly after merging a change Set PerThreadCache as readonly after posting review comments Introduce unloaders on PerThreadCache entries RepoRefCache: Hold a reference to the refDatabase with ref counting Remove use of RefCache in ChangeNotes Revert "Cache change /meta ref SHA1 for each REST API request" Cache change /meta ref SHA1 for each change indexing task Release-Notes: skip Change-Id: Ie357535a6992a2256252e3b0e77df24bf090a674
| | | * \ Merge branch 'stable-3.2' into stable-3.3Luca Milanesio2022-05-208-87/+311
| | | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-3.2: Set PerThreadCache as readonly after creating a new patch-set Set PerThreadCache as readonly when formatting change e-mails Set PerThreadCache as readonly when formatting change JSON Set PerThreadCache as readonly after deleting a change Set PerThreadCache as readonly after abandoning a change Set PerThreadCache as readonly after merging a change Set PerThreadCache as readonly after posting review comments Introduce unloaders on PerThreadCache entries RepoRefCache: Hold a reference to the refDatabase with ref counting Remove use of RefCache in ChangeNotes Revert "Cache change /meta ref SHA1 for each REST API request" Cache change /meta ref SHA1 for each change indexing task Release-Notes: skip Change-Id: Ic3981c1fad0a1f8c232a72d858b8521d2407c0ff
| | | | * \ Merge branch 'stable-3.1' into stable-3.2Luca Milanesio2022-05-204-1/+300
| | | | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-3.1: Set PerThreadCache as readonly after creating a new patch-set Set PerThreadCache as readonly when formatting change e-mails Set PerThreadCache as readonly when formatting change JSON Set PerThreadCache as readonly after deleting a change Set PerThreadCache as readonly after abandoning a change Set PerThreadCache as readonly after merging a change Set PerThreadCache as readonly after posting review comments Introduce unloaders on PerThreadCache entries [I] RepoRefCache: Hold a reference to the refDatabase with ref counting Remove use of RefCache in ChangeNotes Cache change /meta ref SHA1 for each change indexing task Only the commit prefixed by [I] is included, all the others are reverted in the merge because they are not needed to be merged upstream from stable-3.2 onwards. Since stable-3.2 we have more general solution to the problem with modules/cached-refdb [1] which provides a pluggable cached refdatabase without the need to fiddle with the thread-local caching. [1] https://gerrit-review.googlesource.com/admin/repos/modules/cached-refdb,branches Release-Notes: skip Change-Id: Ibc0485dfb37e6d4c7c46e34959f9ab6513838ecb
| | | | | * \ Merge branch 'stable-3.0' into stable-3.1Luca Milanesio2022-05-2021-245/+1148
| | | | | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-3.0: Set PerThreadCache as readonly after creating a new patch-set Set PerThreadCache as readonly when formatting change e-mails Set PerThreadCache as readonly when formatting change JSON Set PerThreadCache as readonly after deleting a change Set PerThreadCache as readonly after abandoning a change Set PerThreadCache as readonly after merging a change Set PerThreadCache as readonly after posting review comments Introduce unloaders on PerThreadCache entries RepoRefCache: Hold a reference to the refDatabase with ref counting Remove use of RefCache in ChangeNotes Cache change /meta ref SHA1 for each change indexing task Also adapt TestRepositoryWithRefCounting by overriding the getIdentifier() method to adapt to the new Repository interface definition in JGit. Release-Notes: skip Change-Id: Ic7a9772f1624513607ed9a255591466763851490
| | | | | | * \ Merge branch 'stable-2.16' into stable-3.0Luca Milanesio2022-05-2021-244/+1142
| | | | | | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-2.16: Set PerThreadCache as readonly after creating a new patch-set Set PerThreadCache as readonly when formatting change e-mails Set PerThreadCache as readonly when formatting change JSON Set PerThreadCache as readonly after deleting a change Set PerThreadCache as readonly after abandoning a change Set PerThreadCache as readonly after merging a change Set PerThreadCache as readonly after posting review comments Introduce unloaders on PerThreadCache entries RepoRefCache: Hold a reference to the refDatabase with ref counting Remove use of RefCache in ChangeNotes Cache change /meta ref SHA1 for each change indexing task Also fix formatting of: java/com/google/gerrit/acceptance/GerritServer.java java/com/google/gerrit/server/mail/send/OutgoingEmail.java Release-Notes: skip Change-Id: I7fab22d2bfae52294b0f7d237a0d26b9fafa54d6
| | | | | | | * | Set PerThreadCache as readonly after creating a new patch-setLuca Milanesio2022-04-292-14/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apply the same optimisation made for Change-Id: I1b71bfcf to the production of events after creating a new patch-set and for returning the merged change JSON response. The same considerations of performance improvement and reduction of /meta refs lookup are valid in this use-case. Release-Notes: enable the read-only cache of /meta refs for new patch-sets Change-Id: I58abd12f3779e0a57c1f8cda618905c9c0bb9b7e
| | | | | | | * | Set PerThreadCache as readonly when formatting change e-mailsLuca Milanesio2022-04-293-118/+128
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apply the same optimisation made for Change-Id: I1b71bfcf to the formatting the change e-mails body, which is done synchronously to the incoming REST API and thus impacts the latency perceived by the end user. The composition of the e-mail is using multiple information coming from multiple fields from NoteDb and calls the /meta refs lookups multiple times for the same change. The same considerations of performance improvement and reduction of /meta refs lookup are valid in this use-case. Release-Notes: enable the read-only cache of /meta when producing JSON Change-Id: I993d4ddc37cf27b66ea9d7323963e761564603fa
| | | | | | | * | Set PerThreadCache as readonly when formatting change JSONLuca Milanesio2022-04-291-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apply the same optimisation made for Change-Id: I1b71bfcf to the formatting of change JSON output as return value for REST APIs. The ChangeJson class needs to read multiple fields from NoteDb and calls the /meta refs lookups multiple times for the same change JSON output (e.g. formatting the output JSON of an abandoned change generates 23 refs lookups calls for a single change). The same considerations of performance improvement and reduction of /meta refs lookup are valid in this use-case. Release-Notes: enable the read-only cache of /meta when producing JSON Change-Id: Ic0e747352dcd8a0c2c1348a9878a5a4165777abd
| | | | | | | * | Set PerThreadCache as readonly after deleting a changeLuca Milanesio2022-04-292-6/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apply the same optimisation made for Change-Id: I1b71bfcf to the production of events after deleting a change. The same considerations of performance improvement and reduction of /meta refs lookup are valid in this use-case. Release-Notes: enable the read-only cache of /meta refs for deleted changes Change-Id: Ic04e9257b7801bd331390679e00e1f980a9d1d19
| | | | | | | * | Set PerThreadCache as readonly after abandoning a changeLuca Milanesio2022-04-292-15/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apply the same optimisation made for Change-Id: I1b71bfcf to the production of events after abandoning a change. The same considerations of performance improvement and reduction of /meta refs lookup are valid in this use-case. Release-Notes: enable the read-only cache of /meta refs for abandoned changes Change-Id: Iab71eca5ead78f6462fd3aaf41eb9590fce4684e
| | | | | | | * | Set PerThreadCache as readonly after merging a changeLuca Milanesio2022-04-293-15/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apply the same optimisation made for Change-Id: I1b71bfcf to the production of events after merging a change and for returning the merged change JSON response. The same considerations of performance improvement and reduction of /meta refs lookup are valid in this use-case. Release-Notes: enable the read-only cache of /meta refs for merged changes Change-Id: I34e147d644dfcdb5a6b1baa32cd4347805e506fc
| | | | | | | * | Set PerThreadCache as readonly after posting review commentsLuca Milanesio2022-04-298-41/+468
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Once the review comments mutations have been completed, it is safe to cache the results of the /meta refs lookups, avoiding the slowdown of the repeated refs lookups performed during the creation of the event with the added review and the dispatching of the stream event associated. The refs lookups could be as slow as 400 ms per lookup for a 500k refs repository on a shared NFS volume: using a thread-local cache for /meta ref lookup has a significant improvement (50% less refs lookups) on the overall user-experience. Introduce also the safety-net of checking for stale cached refs against the underlying repository, so that errors can arise during testing. The staleness checker can be enabled via system property. NOTE: The execution of the listeners logic associated with the review is left outside the read-only request window because of the risk of a plugin or hook updating the underlying /meta ref and causing a stale read. Also rename the current hasReadonlyRequest method to isReadonlyRequest, which is consistent with the new setter introduced in the PerThreadCache class. P.S. DO REVERT this change from stable-3.2 onwards because the refs lookups have been optimised already with the introduction of the cached-refdb libModule [1] which is enough to cover all use-cases introduced in the PerThreadCache for refs lookups. [1] https://gerrit.googlesource.com/modules/cached-refdb/ Bug: Issue 15798 Release-Notes: enable the read-only cache of /meta refs after review Change-Id: I1b71bfcff081e66eed897d41539d2be675f34af4
| | | | | | | * | Introduce unloaders on PerThreadCache entriesLuca Milanesio2022-04-293-22/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | RepoRefCache holds reference to a Repository object which would need once the cache entry is removed. Add the logic to cleanup the entry resource when the cache is closed and therefore entries need to be cleaned up before being removed from cache. Release-Notes: skip Change-Id: Id201d4a93792b27d2e1ab8214aa6377387eb567f
| | | | | | | * | RepoRefCache: Hold a reference to the refDatabase with ref countingLuca Milanesio2022-04-285-4/+320
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The RepoRefCache was holding a reference to a refDatabase associated to a Repository object that was created externally and could have been already closed once the RepoRefCache.get was called. Increment and decrement the reference counting for the Repository object held in the RepoRefCache, making sure that all accesses to the get() and other methods are always using an active and open repository. The problem existed for years but it was never noticed because of JGit being very flexible on using repositories even when their reference counting is zero and they are effectively closed. However, using a closed repository is inconsistent with its interface and may lead to further issues in the past, because of JGit not being aware of the repository is actually used by an in-memory cache holding a reference to it. Add one extra relevant tests associated with this corner case for showing the issue, using a TestRepositoryWithRefCounting wrapper that fails when accessing a refDatabase of a closed repository. Release-Notes: skip Change-Id: I4b2c43ea430a0506c73101bc4f6bc62926d5a094
| | | | | | | * | Remove use of RefCache in ChangeNotesLuca Milanesio2022-04-253-19/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The RefCache instance stored in the ChangeNotes refs field was passed as a nullable parameter but, effectively, always passed as null value in all invocations form the code-base. The refs field was also final, which means that it wasn't possible to memoize or cache any RefCache instance on it anyway. Remove the field and its use across the code-base, so that the code becomes easier to read and maintain. The cache was initially introduced in ChangeNotes with I5e02032d6 and used by the ChangeRebuilderImpl; however the implementation on how changes are rebuilt was changed with Icc942dba25 which did not require anymore the use of a RepoRefCache in ChangeNotes. However, Dave forgot to remove the refs from ChangeNotes which was left unused since then. Release-Notes: skip Change-Id: I729ad8738fd4ceebe72e61f086631f2d109a817a
| | | | | | | * | Cache change /meta ref SHA1 for each change indexing taskLuca Milanesio2022-04-113-22/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Interactive indexing tasks of changes are executed synchronously with the incoming API: multiple lookups of change /meta ref name to SHA1 during the reindexing can compromise the performance of the API. The refs lookups could be as slow as 400 ms per lookup for a 500k refs repository on a shared NFS volume. Leverage the existing RepoRefCache associated with the PerThreadCache by creating a read-only cache during the execution of the indexing task. NOTE: The indexing task may be part of a mutable API (e.g. review a change); however, the operation itself is readonly because it is executed once the mutation has already happened and no further modifications to the change are done during the reindexing. Bug: Issue 15798 Release-Notes: cache the resolution of change /meta ref upon interactive indexing Change-Id: If137693293e3a6a5aa51babb5576690878d827d3
| | | | * | | | | Revert "Cache change /meta ref SHA1 for each REST API request"Luca Milanesio2022-04-235-86/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 23db8a546b800b2c91629d80b6f5117ff635238a. Reason: refs caching on stable-3.2 can be achieve using [1]. [1] https://gerrit.googlesource.com/modules/cached-refdb/ Release-Notes: skip Change-Id: I44ad6fbe165bed57c3d639a6a0878f704139b7b3
| | | * | | | | | Merge "Bump bazel version to 4.2.2" into stable-3.3Orgad Shaneh2022-05-171-1/+1
| | | |\ \ \ \ \ \
| | | | * | | | | | Bump bazel version to 4.2.2Orgad Shaneh2022-05-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Release-Notes: skip Change-Id: I6a326853221c34d4e20b12e283a19c3bf7a039b9
| | | * | | | | | | Update git submodulesSaša Živkov2022-05-121-0/+0
| | | |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Update plugins/replication from branch 'stable-3.3' to fb4854b57300f1060690b59722eae8c3a18cdab5 - Allow to cancel waiting tasks for non-existing repos without scheduling them A waiting task for a non-existing repository can come into existence when the repository gets deleted before a waiting task gets scheduled, and thus becomes a running task. A waiting task for a non-existing repository cannot be (re)scheduled because there is a check for repository existence in that code-path. However, such a task would remain in the waiting queue and rescheduling would be tried again and again without a chance to get finished as the only way for a task to get finished was to run it. This change allows to finish a waiting task when its repository doesn't exist. The ReplicationTasksStorage now tries to delete task file(s) from both running and waiting directories. Change-Id: Ibbdd5023e2a008484215da02403c9935d21fbf13
* | | | | | | | / Add check for syntax highlighting in diff prefs changedDhruv2022-05-201-0/+2
| |_|_|_|_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Release-Notes: skip Google-bug-id: b/233199790 Change-Id: I1883813f11801e5bbddc033fc149731c102dc925 (cherry picked from commit 1c425f8f5cea3457d96cc9a32814612e06ec14e4)
* | | | | | | | Merge branch 'stable-3.5' into stable-3.6David Ostrovsky2022-05-184-9/+23
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * stable-3.5: gr-access-section: Fix exception when unknown name is set InMemoryModule: Add support for index lib module Expose proto package in plugin API Release-Notes: skip Change-Id: I8933f62998a97367f75b332dacaa3052f3c8c765
| * | | | | | | Merge "gr-access-section: Fix exception when unknown name is set" into ↵Orgad Shaneh2022-05-172-2/+9
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | stable-3.5
| | * | | | | | | gr-access-section: Fix exception when unknown name is setOrgad Shaneh2022-05-172-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For example, if a plugin has a capability, and the plugin was removed. Release-Notes: skip Change-Id: Ie726d39c9be238c4616fd38d192ec7c9c3e882b1
| * | | | | | | | InMemoryModule: Add support for index lib moduleDavid Ostrovsky2022-05-161-7/+14
| |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Release-Notes: skip Change-Id: Id7ef7a53750c81defa04c2017d07ba9ddf125428
| * | | | | | | Expose proto package in plugin APIDavid Ostrovsky2022-05-151-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some plugins, most notably index-elasticsearch module, might need to depend on it. Release-Notes: Expose proto package in plugin API Change-Id: I9926fdce6de28f7696f79eda05c4fd3b3c698a74
* | | | | | | | gr-change-actions-js-api: Remove outdated TODOsOrgad Shaneh2022-05-171-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Done in 885e0e7efc338ca5824e173ea93ed2bb91ecfbb4. Release-Notes: skip Change-Id: Ia5b4288d7915e4e5da9422fc0acde9733c989b1f
* | | | | | | | Set version to 3.6.0-SNAPSHOTLuca Milanesio2022-05-165-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Release-Notes: skip Change-Id: Id59d5dddde68158546039653aef1f4e7d6b6ace2
* | | | | | | | Set version to 3.6.0-rc5v3.6.0-rc5Luca Milanesio2022-05-165-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Release-Notes: skip Change-Id: I15d05b44cd22f9935fc8027e58f8bac052020cba
* | | | | | | | Merge "Remove reload message from dark theme toggle" into stable-3.6Paladox none2022-05-152-4/+3
|\ \ \ \ \ \ \ \
| * | | | | | | | Remove reload message from dark theme toggleDhruv2022-05-132-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace with firing a toast instead. Release-Notes: skip Change-Id: I6c05f49ed78424ab144f65432cb8c00eae7bc255 (cherry picked from commit 2b4fc746b19198e04bc45d0fa02d5eba0f2ff24e)
* | | | | | | | | Prevent 2 same requests for editing commit messageMilutin Kristofic2022-05-132-3/+5
|/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently gr-change-view can get to state when it add twice listener to _handleCommitMessageSave. This results to 2 /message requests with the same content, that currently back-end doesn't process well and change can get corrupted by 2 same patchsets. This is quick fix to disable 2 /message request to be sent. The fix for multiple listeners will be done in following change. Google-Bug-Id: b/231981018 Release-Notes: skip Change-Id: Ib14db7ae3257fc716926c0060d1d749348c56141 (cherry picked from commit cfcf0af437c15d12c9ed2bc9961193afa3af5935)
* | | | | | | | Merge "Load change notes eagerly to omit unparsable changes from results" ↵Patrick Hiesel2022-05-121-1/+5
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | into stable-3.6
| * | | | | | | | Load change notes eagerly to omit unparsable changes from resultsPatrick Hiesel2022-05-121-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When checking ref visibility, we need to parse change metadata. To preserve existing behavior, we pretend that such change refs are not visible. Release-Notes: skip Change-Id: I65331af8e5e8d66669d6a87f24fc945cafad01f7 (cherry picked from commit 766062542fe670ac514a96fbae129a79d185210f)
* | | | | | | | | Merge "Merge branch 'stable-3.5' into stable-3.6" into stable-3.6David Ostrovsky2022-05-121-23/+25
|\ \ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ \ Merge branch 'stable-3.5' into stable-3.6David Ostrovsky2022-05-111-23/+25
| |\ \ \ \ \ \ \ \ \ | | | |/ / / / / / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit was reverted during the merge: Make PatchSetApproval UUID parsing forwards compatible * stable-3.5: Add a build icon for plugin use gr-icons: Update links to material icons Make PatchSetApproval UUID parsing forwards compatible Release-Notes: skip Change-Id: I89c184841aee850d7cf100308d37cffde5232518
| | * | | | | | | | Merge "Make PatchSetApproval UUID parsing forwards compatible" into stable-3.5David Ostrovsky2022-05-112-9/+60
| | |\ \ \ \ \ \ \ \
| | | * | | | | | | | Make PatchSetApproval UUID parsing forwards compatibleMarija Savtchouk2022-05-112-9/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The change 324937 is backward incompatible: the data, written by release stable-3.6+ can not be parsed by prior versions. This fix skips UUID from the footer, allowing old releases to parse new data format. Issue: 15909 Change-Id: I9aeabd2fc34d1d2c616d4a06de368cff72754036 Release-Notes: this change has to be reverted, when merging to stable-3.6 branch.