tree 2227ac139a4e9403dd9673cfb8a83a1d1a855c6d
parent ea7531bef7283cc7a24ccbb9a0b4e0cc1b5ffa8c
author Jacek Centkowski <geminica.programs@gmail.com> 1704620457 +0100
committer Jacek Centkowski <geminica.programs@gmail.com> 1705909422 +0100

Bubble up OWNERS file parsing errors

Problem:
The OWNERS file adheres to the YAML standard. In cases where it is not
parseable (due to simple errors like incorrect indentation or missing
`:`, etc.), the error message is logged and ignored. To discover what
went wrong, one needs access to the error_log.

Solution:
Ensure that information about broken OWNERS files reaches Gerrit's UI
through the following steps (bottom-up):
1. Do not catch `IOException` in the
   `ConfigurationParser.getOwnersConfig` function; let it be caught by
   the caller.
2. Catch it in the `PathOwners.getOwnersConfig` function. However, it is
   too broad to be further conveyed (there are other `IOException`
   instances that shouldn't be confused with OWNERS file issues).
   Therefore, re-throw it as the newly introduced
   `InvalidOwnersFileException`.
3. The OWNERS content is cached; therefore, the
   `InvalidOwnersFileException` can only be thrown during cache value
   load. As such, it is wrapped into an `ExecutionException`. Catch it
   and unwrap it back to `InvalidOwnersFileException` if that was the
   cause, leaving all other cases handled as they were before.
   The `InvalidOwnersFileException` is re-thrown up to the callers.
4. The following handling was applied to `PathOwners` callers:
   - In the owners-autoassign plugin, it is caught and logged at the
     warning level (not much can be done there as there is no UI for it).
   - In `OwnersStoredValues` (used by the owners plugin prolog predicate
     to get the OWNERS file content), it is re-thrown as a runtime
     exception. `PrologRuleEvaluator` nicely handles it and shows the
     `gerrit~PrologRule` label with the status `ERROR`.
   - In `OwnersSubmitRequirement`, it is caught and returned as
     `RULE_ERROR`, represented as the `owners~OwnersSubmitRequirement`
     label with the status `Error`. The following message is displayed
     when hovering over it:

     Invalid owners file: OWNERS, in project: [repo-name], on branch [branch-name]

   - In the `GetFilesOwners` REST API endpoint, it is caught and thrown
     as a `ResourceConflictException` (the same way as in `code-owners`).
     When called, the following response is returned to the caller:

     HTTP/1.1 409 Conflict - Invalid owners file: OWNERS, in project: [repo-name], on branch [branch-name]

The handling of `InvalidOwnersFileException` is confirmed in the
integration tests, but it was also verified manually.

Bug: Issue 310420006
Change-Id: I4425e6ede74332832de39c0769549c7e917e67fc
