yuqi1129 opened a new issue, #11212:
URL: https://github.com/apache/gravitino/issues/11212
### What would you like to be improved?
We have a shell-based multi-instance consistency test at
`dev/ci/test_multi_instance_consistency.sh` (94 assertions across 14 phases)
that exercises the `JcasbinAuthorizer` cache propagation between two Gravitino
instances backed by the same SQL backend. Today it has to be run manually
against locally-started instances, which means:
- Regressions in the authz cache invalidation paths (owner change, role
grant/revoke, role-privilege change, role/user deletion, etc.) only get caught
when a developer remembers to run the script.
- The recent `versionCheckAndLoadRoles` fix for the role-delete propagation
gap (follow-up to #10996) has no automated coverage gate.
- New caches / pollers added under `server-common/.../jcasbin/` are not
exercised end-to-end across instances.
### How should we improve?
Add a dedicated GitHub Actions workflow that:
1. Starts a MySQL 8.0.33 service container (so both Gravitino instances
share one real backend — H2 is not viable for multi-instance).
2. Applies `scripts/mysql/schema-1.3.0-mysql.sql`.
3. Builds `compileDistribution`, then stages two copies of
`distribution/package` configured with:
- Same JDBC URL → MySQL service.
- `gravitino.cache.enabled = false` (isolates the JcasbinAuthorizer
caches from the entity-store cache).
- `gravitino.authorization.enable = true`.
- `admin` as service admin.
- Distinct ports (A: 8090/9001/9101, B: 8190/9011/9111).
4. Starts both instances and runs
`dev/ci/test_multi_instance_consistency.sh` against them.
5. Uploads logs + confs on failure.
Triggers: push / PR on `main` and `branch-*`, plus manual
`workflow_dispatch`. A `paths-filter` keeps it from running for unrelated
changes (web-only, docs-only, etc.).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]