MonkeyCanCode opened a new pull request, #4755:
URL: https://github.com/apache/polaris/pull/4755

   <!--
   ๐Ÿ“ Describe what changes you're proposing, especially breaking or user-facing 
changes. 
   ๐Ÿ“– See https://github.com/apache/polaris/blob/main/CONTRIBUTING.md for more.
   -->
   
   This PR introduces maintenance support for helm via generic K8S CronJob 
where users can define various jobs supported (or will be support soon) by 
polaris admin tool.
   
   Couple designed decisions made in this PR:
   1. User should be able to choose which jobs to enable/disable without 
comment out in-used ones in values.yaml but via `enabled` flag per job
   2. No strict jobs associations with persistent type. Instead of tie an given 
job to a given persistent type, we should let user handle those as job name is 
just a key and users should make the call on which jobs are needed for their 
persistent type/bakcend.
   3. Default `restartPolicy` to `Never` as oppose to default K8S `Always` as 
each retry creates a fresh pod, it is cleaner logs per attempt.
   4. Default `concurrencyPolicy` to `Forbid` as oppose to default K8S `Allow` 
as there shouldn't be multiple maintenance jobs of same job running in parallel.
   5. Set `automountServiceAccountToken` to `false` as oppose to default K8S 
`true` (not change-able) as admin tool doesn't call the K8S API.
   6. Allow per job level resources/config and also inheritance certain configs 
from root level (e.g. securityContext and serviceAccountName) 
   7. Allow maintenance level configs to all jobs such as `annotations`, 
`extraEnv`, `envFrom`, `extraVolumes`, `extraVolumeMounts`, and `image`. Those 
are not overwritable at the job level as they are global to the maintenance 
level.
   8. Added a new helper `polaris.maintenanceConfigVolume` to ensure we exclude 
token-broker auth artifacts from cron jobs. 
   9. Set correct `quarkus.config.locations` as the admin-tool image's working 
dir is `/home/polaris` as oppose to `/deployment`.
   10. Set correct `quarkus.mongodb.active` when persistence type is `nosql` 
and nosql.backend is `MongoDb`.
   
   Couple things I am not sure if we should do:
   1. Use different service account for global maintenance jobs to enforce 
least-privilege. Currently this is shared SA from the parent one which will 
likely has way more access than it really needed such as IAM role annotation 
attached to the SA
   2. As the workdir for admin image is not default to `/deployment`, I had to 
fix it in chart, maybe we should fix this in Dockerfile instead
   
   
   Here are sample jobs (manual and scheduled):
   ```
   โžœ  polaris git:(helm_maintenance_jobs) โœ— k get pods -n polaris | grep 
Completed
   manual-6bd8f                                     0/1     Completed   0       
   37m
   polaris-maint-nosql-maintenance-29690795-5nv4z   0/1     Completed   0       
   32m
   ```
   
   Sample logs from the completed job:
   ```
   โžœ  polaris git:(helm_maintenance_jobs) โœ— k logs 
pods/polaris-maint-nosql-maintenance-29690795-5nv4z -n polaris
   2026-06-14 14:35:00,997 WARN  [io.qua.config] [,] [,,,] (main) Unrecognized 
configuration key "quarkus.otel.sdk.disabled" was provided; it will be ignored; 
verify that the dependency extension for this configuration is set or that you 
did not make a typo
   2026-06-14 14:35:00,997 WARN  [io.qua.config] [,] [,,,] (main) Unrecognized 
configuration key "quarkus.log.file.json.enabled" was provided; it will be 
ignored; verify that the dependency extension for this configuration is set or 
that you did not make a typo
   2026-06-14 14:35:01,206 INFO  [org.mon.dri.client] [,] [,,,] (main) 
MongoClient with metadata {"driver": {"name": 
"mongo-java-driver|quarkus|reactive-streams", "version": "5.6.5"}, "os": 
{"type": "Linux", "name": "Linux", "architecture": "aarch64", "version": 
"6.12.76-linuxkit"}, "platform": "Java/Red Hat, Inc./21.0.11+10-LTS", "env": 
{"container": {"orchestrator": "kubernetes"}}} created with settings 
MongoClientSettings{readPreference=primary, writeConcern=WriteConcern{w=null, 
wTimeout=null ms, journal=true}, retryWrites=false, retryReads=true, 
readConcern=ReadConcern{level=null}, credential=null, 
transportSettings=NettyTransportSettings{eventLoopGroup=io.netty.channel.nio.NioEventLoopGroup@158f4cfe,
 socketChannelClass=class io.netty.channel.socket.nio.NioSocketChannel, 
allocator=PooledByteBufAllocator(directByDefault: true), sslContext=null}, 
commandListeners=[], 
codecRegistry=ProvidersCodecRegistry{codecProviders=[ProvidersCodecRegistry{codecProviders=[ValueCodecProvider{},
 Bs
 onValueCodecProvider{}, DBRefCodecProvider{}, DBObjectCodecProvider{}, 
DocumentCodecProvider{}, CollectionCodecProvider{}, IterableCodecProvider{}, 
MapCodecProvider{}, GeoJsonCodecProvider{}, GridFSFileCodecProvider{}, 
Jsr310CodecProvider{}, JsonObjectCodecProvider{}, BsonCodecProvider{}, 
com.mongodb.client.model.mql.ExpressionCodecProvider@35f639fa, 
com.mongodb.Jep395RecordCodecProvider@5aaaa446, 
com.mongodb.KotlinCodecProvider@6c6333cd, EnumCodecProvider{}]}, 
ProvidersCodecRegistry{codecProviders=[org.bson.codecs.pojo.PojoCodecProvider@3e47a03]}]},
 loggerSettings=LoggerSettings{maxDocumentLength=1000}, 
clusterSettings={hosts=[mongodb:27017], srvServiceName=mongodb, mode=SINGLE, 
requiredClusterType=UNKNOWN, requiredReplicaSetName='null', 
serverSelector='null', clusterListeners='[]', serverSelectionTimeout='30000 
ms', localThreshold='15 ms'}, 
socketSettings=SocketSettings{connectTimeoutMS=10000, readTimeoutMS=0, 
receiveBufferSize=0, proxySettings=ProxySettings{host=null, port=null, 
 username=null, password=null}}, 
heartbeatSocketSettings=SocketSettings{connectTimeoutMS=10000, 
readTimeoutMS=10000, receiveBufferSize=0, 
proxySettings=ProxySettings{host=null, port=null, username=null, 
password=null}}, connectionPoolSettings=ConnectionPoolSettings{maxSize=100, 
minSize=0, maxWaitTimeMS=120000, maxConnectionLifeTimeMS=0, 
maxConnectionIdleTimeMS=0, maintenanceInitialDelayMS=0, 
maintenanceFrequencyMS=60000, connectionPoolListeners=[], maxConnecting=2}, 
serverSettings=ServerSettings{heartbeatFrequencyMS=10000, 
minHeartbeatFrequencyMS=500, serverMonitoringMode=AUTO, serverListeners='[]', 
serverMonitorListeners='[]'}, sslSettings=SslSettings{enabled=false, 
invalidHostNameAllowed=false, context=null}, applicationName='null', 
compressorList=[], uuidRepresentation=UNSPECIFIED, serverApi=null, 
autoEncryptionSettings=null, dnsClient=null, inetAddressResolver=null, 
contextProvider=null, timeoutMS=null}
   2026-06-14 14:35:01,239 INFO  [org.mon.dri.cluster] [,] [,,,] 
(cluster-ClusterId{value='6a2ebc15c78056edf3db20c2', 
description='null'}-mongodb:27017) Monitor thread successfully connected to 
server with description ServerDescription{address=mongodb:27017, 
type=STANDALONE, cryptd=false, state=CONNECTED, ok=true, minWireVersion=0, 
maxWireVersion=27, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, 
roundTripTimeNanos=16290417, minRoundTripTimeNanos=0}
   2026-06-14 14:35:01,277 INFO  [org.apa.pol.per.nos.qua.dis.AddressResolver] 
[,] [,,,] (main) Using nameserver 
kube-dns.kube-system.svc.cluster.local/10.96.0.10 with search list 
[polaris.svc.cluster.local, svc.cluster.local, cluster.local]
   2026-06-14 14:35:01,302 INFO  [org.mon.dri.client] [,] [,,,] (main) 
MongoClient with metadata {"driver": {"name": "mongo-java-driver|quarkus|sync", 
"version": "5.6.5"}, "os": {"type": "Linux", "name": "Linux", "architecture": 
"aarch64", "version": "6.12.76-linuxkit"}, "platform": "Java/Red Hat, 
Inc./21.0.11+10-LTS", "env": {"container": {"orchestrator": "kubernetes"}}} 
created with settings MongoClientSettings{readPreference=primary, 
writeConcern=WriteConcern{w=null, wTimeout=null ms, journal=true}, 
retryWrites=false, retryReads=true, readConcern=ReadConcern{level=null}, 
credential=null, transportSettings=null, commandListeners=[], 
codecRegistry=ProvidersCodecRegistry{codecProviders=[ProvidersCodecRegistry{codecProviders=[ValueCodecProvider{},
 BsonValueCodecProvider{}, DBRefCodecProvider{}, DBObjectCodecProvider{}, 
DocumentCodecProvider{}, CollectionCodecProvider{}, IterableCodecProvider{}, 
MapCodecProvider{}, GeoJsonCodecProvider{}, GridFSFileCodecProvider{}, 
Jsr310CodecProvider{
 }, JsonObjectCodecProvider{}, BsonCodecProvider{}, 
com.mongodb.client.model.mql.ExpressionCodecProvider@35f639fa, 
com.mongodb.Jep395RecordCodecProvider@5aaaa446, 
com.mongodb.KotlinCodecProvider@6c6333cd, EnumCodecProvider{}]}, 
ProvidersCodecRegistry{codecProviders=[org.bson.codecs.pojo.PojoCodecProvider@1abebef3]}]},
 loggerSettings=LoggerSettings{maxDocumentLength=1000}, 
clusterSettings={hosts=[mongodb:27017], srvServiceName=mongodb, mode=SINGLE, 
requiredClusterType=UNKNOWN, requiredReplicaSetName='null', 
serverSelector='null', clusterListeners='[]', serverSelectionTimeout='30000 
ms', localThreshold='15 ms'}, 
socketSettings=SocketSettings{connectTimeoutMS=10000, readTimeoutMS=0, 
receiveBufferSize=0, proxySettings=ProxySettings{host=null, port=null, 
username=null, password=null}}, 
heartbeatSocketSettings=SocketSettings{connectTimeoutMS=10000, 
readTimeoutMS=10000, receiveBufferSize=0, 
proxySettings=ProxySettings{host=null, port=null, username=null, 
password=null}}, connectionPoolSetti
 ngs=ConnectionPoolSettings{maxSize=100, minSize=0, maxWaitTimeMS=120000, 
maxConnectionLifeTimeMS=0, maxConnectionIdleTimeMS=0, 
maintenanceInitialDelayMS=0, maintenanceFrequencyMS=60000, 
connectionPoolListeners=[], maxConnecting=2}, 
serverSettings=ServerSettings{heartbeatFrequencyMS=10000, 
minHeartbeatFrequencyMS=500, serverMonitoringMode=AUTO, serverListeners='[]', 
serverMonitorListeners='[]'}, sslSettings=SslSettings{enabled=false, 
invalidHostNameAllowed=false, context=null}, applicationName='null', 
compressorList=[], uuidRepresentation=UNSPECIFIED, serverApi=null, 
autoEncryptionSettings=null, dnsClient=null, inetAddressResolver=null, 
contextProvider=null, timeoutMS=null}
   2026-06-14 14:35:01,307 INFO  [org.mon.dri.cluster] [,] [,,,] 
(cluster-ClusterId{value='6a2ebc15c78056edf3db20c3', 
description='null'}-mongodb:27017) Monitor thread successfully connected to 
server with description ServerDescription{address=mongodb:27017, 
type=STANDALONE, cryptd=false, state=CONNECTED, ok=true, minWireVersion=0, 
maxWireVersion=27, maxDocumentSize=16777216, logicalSessionTimeoutMinutes=30, 
roundTripTimeNanos=1920291, minRoundTripTimeNanos=0}
   2026-06-14 14:35:01,360 INFO  [io.quarkus] [,] [,,,] (main) Apache Polaris 
Admin Tool 1.6.0-SNAPSHOT on JVM (powered by Quarkus 3.36.2) started in 0.728s. 
Listening on: http://0.0.0.0:8181
   2026-06-14 14:35:01,361 INFO  [io.quarkus] [,] [,,,] (main) Profile prod 
activated.
   2026-06-14 14:35:01,361 INFO  [io.quarkus] [,] [,,,] (main) Installed 
features: [agroal, amazon-sdk-rds, cdi, jdbc-postgresql, micrometer, 
mongodb-client, narayana-jta, picocli, smallrye-context-propagation, vertx]
   2026-06-14 14:35:01,416 INFO  [org.apa.pol.per.nos.qua.bac.BackendProvider] 
[,] [,,,] (main) Opened new persistence backend 'MongoDb' database name: polaris
   
   Maintenance configuration:
               created-at grace time: PT3H
                   delete batch size: 10
                       retained runs: 50
               expected object count: 100000
            expected reference count: 100
                 last-run multiplier: 1.100000
                     initialized FPP: 0.000010
                        expected FPP: 0.000050
     reference scan rate limit / sec: (unlimited)
     object    scan rate limit / sec: (unlimited)
   2026-06-14 14:35:01,448 INFO  
[org.apa.pol.per.nos.imp.cac.CaffeineCacheBackend] [,] [,,,] (main) Initialized 
persistence cache with a capacity of ~ 1040 MB
   2026-06-14 14:35:01,459 INFO  
[org.apa.pol.per.nos.mai.imp.MaintenanceServiceImpl] [,] [,,,] (main) Using 5 
realm retained identifiers
   2026-06-14 14:35:01,459 INFO  
[org.apa.pol.per.nos.mai.imp.MaintenanceServiceImpl] [,] [,,,] (main) Realm 
retained identifier: Privileges Mapping
   2026-06-14 14:35:01,459 INFO  
[org.apa.pol.per.nos.mai.imp.MaintenanceServiceImpl] [,] [,,,] (main) Realm 
retained identifier: Maintenance service
   2026-06-14 14:35:01,460 INFO  
[org.apa.pol.per.nos.mai.imp.MaintenanceServiceImpl] [,] [,,,] (main) Realm 
retained identifier: Catalog data
   2026-06-14 14:35:01,460 INFO  
[org.apa.pol.per.nos.mai.imp.MaintenanceServiceImpl] [,] [,,,] (main) Realm 
retained identifier: Nodes
   2026-06-14 14:35:01,460 INFO  
[org.apa.pol.per.nos.mai.imp.MaintenanceServiceImpl] [,] [,,,] (main) Realm 
retained identifier: Realm management
   2026-06-14 14:35:01,460 INFO  
[org.apa.pol.per.nos.mai.imp.MaintenanceServiceImpl] [,] [,,,] (main) Using 0 
object type identifiers:
   
   Process system realm: true
   Realms to process:
   (none)
   Realms to purge:
   (none)
   
   Starting NoSql persistence maintenance run...
   This can run for quite some time, messages may be not be printed 
immediately, stay patient...
   
   2026-06-14 14:35:01,539 INFO  
[org.apa.pol.per.nos.mai.imp.MaintenanceServiceImpl] [,] [,,,] (main) 
Triggering maintenance run with 0 realms to purge and 0 realms to process
   2026-06-14 14:35:01,602 INFO  
[org.apa.pol.per.nos.mai.imp.MaintenanceServiceImpl] [,] [,,,] (main) Sized 
retained collector for 1000 references and 100000 objects with an fpp of 
1.0E-5, approximate bloom filter heap sizes: 375 and 37442 bytes
   2026-06-14 14:35:01,604 DEBUG [org.apa.pol.per.nos.imp.com.CommitterImpl] 
[,] [,,,] (main) commit start
   2026-06-14 14:35:01,608 DEBUG [org.apa.pol.per.nos.imp.com.CommitterImpl] 
[,] [,,,] (main) commitAttempt
   2026-06-14 14:35:01,614 DEBUG [org.apa.pol.per.nos.imp.com.CommitterImpl] 
[,] [,,,] (main) Referenced object 
Optional[MaintenanceRunsObj{id=170541215596052480, numParts=1, seq=1, tail=[], 
maintenanceRunId=ObjRef{type=mtr, id=170541215583469568}}] for commit attempt 
for reference 'maintenance-runs'
   2026-06-14 14:35:01,632 DEBUG 
[org.apa.pol.per.nos.nod.imp.NodeManagementImpl] [,] [,,,] (main) Leasing a 
node ID...
   2026-06-14 14:35:01,634 DEBUG 
[org.apa.pol.per.nos.nod.imp.NodeManagementImpl] [,] [,,,] (main) Try lease 
node ID 802 ...
   2026-06-14 14:35:01,645 INFO  
[org.apa.pol.per.nos.nod.imp.NodeManagementImpl] [,] [,,,] (main) New lease for 
node#802 acquired, valid until 2026-06-14T15:35:01.635246291Z (renewal 
scheduled in PT44M59S).
   2026-06-14 14:35:01,656 DEBUG [org.apa.pol.per.nos.imp.com.CommitterImpl] 
[,] [,,,] (main) Successfully committed change from 
Reference{name=maintenance-runs, pointer=ObjRef{type=mtrs, 
id=170541215596052480}, createdAtMicros=1781447394131320, previousPointers=[]} 
to Reference{name=maintenance-runs, pointer=ObjRef{type=mtrs, 
id=170542504699109377}, createdAtMicros=1781447394131320, 
previousPointers=[170541215596052480]}
   2026-06-14 14:35:01,656 DEBUG [org.apa.pol.per.nos.imp.com.CommitterImpl] 
[,] [,,,] (main) commit() yielding result
   2026-06-14 14:35:01,657 INFO  
[org.apa.pol.per.nos.mai.imp.MaintenanceServiceImpl] [,] [,,,] (main) 
Identifying referenced data in realm '::system::'
   2026-06-14 14:35:01,658 INFO  
[org.apa.pol.per.nos.mai.imp.MaintenanceServiceImpl] [,] [,,,] (main) Running 
maintenance for realm '::system::' via 'Privileges Mapping'
   2026-06-14 14:35:01,660 INFO  
[org.apa.pol.per.nos.mai.imp.MaintenanceServiceImpl] [,] [,,,] (main) Realm 
identifier 'Privileges Mapping' did not handle ::system::
   2026-06-14 14:35:01,660 INFO  
[org.apa.pol.per.nos.mai.imp.MaintenanceServiceImpl] [,] [,,,] (main) Running 
maintenance for realm '::system::' via 'Maintenance service'
   2026-06-14 14:35:01,663 INFO  
[org.apa.pol.per.nos.mai.imp.MaintenanceServiceImpl] [,] [,,,] (main) Realm 
identifier 'Maintenance service' handled ::system::
   2026-06-14 14:35:01,664 INFO  
[org.apa.pol.per.nos.mai.imp.MaintenanceServiceImpl] [,] [,,,] (main) Running 
maintenance for realm '::system::' via 'Catalog data'
   2026-06-14 14:35:01,664 INFO  
[org.apa.pol.per.nos.met.mai.CatalogRetainedIdentifier] [,] [,,,] (main) 
Cleaning stale grant records...
   2026-06-14 14:35:01,665 DEBUG 
[org.apa.pol.per.nos.met.mai.CatalogRetainedIdentifier] [,] [,,,] (main) 
Reference not found: grants
   2026-06-14 14:35:01,665 INFO  
[org.apa.pol.per.nos.met.mai.CatalogRetainedIdentifier] [,] [,,,] (main) 
Cleaning stale policy mappings...
   2026-06-14 14:35:01,666 DEBUG 
[org.apa.pol.per.nos.met.mai.CatalogRetainedIdentifier] [,] [,,,] (main) 
Reference not found: policy-mappings
   2026-06-14 14:35:01,666 INFO  
[org.apa.pol.per.nos.met.mai.CatalogRetainedIdentifier] [,] [,,,] (main) 
Identifying root object...
   2026-06-14 14:35:01,667 DEBUG 
[org.apa.pol.per.nos.met.mai.CatalogRetainedIdentifier] [,] [,,,] (main) 
Reference not found: root
   2026-06-14 14:35:01,667 INFO  
[org.apa.pol.per.nos.met.mai.CatalogRetainedIdentifier] [,] [,,,] (main) 
Identifying principals...
   2026-06-14 14:35:01,784 DEBUG 
[org.apa.pol.per.nos.met.mai.CatalogRetainedIdentifier] [,] [,,,] (main) 
Reference not found: principals
   2026-06-14 14:35:01,784 INFO  
[org.apa.pol.per.nos.met.mai.CatalogRetainedIdentifier] [,] [,,,] (main) 
Identifying principal roles...
   2026-06-14 14:35:01,786 DEBUG 
[org.apa.pol.per.nos.met.mai.CatalogRetainedIdentifier] [,] [,,,] (main) 
Reference not found: principal-roles
   2026-06-14 14:35:01,786 INFO  
[org.apa.pol.per.nos.met.mai.CatalogRetainedIdentifier] [,] [,,,] (main) 
Identifying grants...
   2026-06-14 14:35:01,787 DEBUG 
[org.apa.pol.per.nos.met.mai.CatalogRetainedIdentifier] [,] [,,,] (main) 
Reference not found: grants
   2026-06-14 14:35:01,787 INFO  
[org.apa.pol.per.nos.met.mai.CatalogRetainedIdentifier] [,] [,,,] (main) 
Identifying immediate tasks...
   2026-06-14 14:35:01,788 DEBUG 
[org.apa.pol.per.nos.met.mai.CatalogRetainedIdentifier] [,] [,,,] (main) 
Reference not found: immediate-tasks
   2026-06-14 14:35:01,788 INFO  
[org.apa.pol.per.nos.met.mai.CatalogRetainedIdentifier] [,] [,,,] (main) 
Identifying policy mappings...
   2026-06-14 14:35:01,789 DEBUG 
[org.apa.pol.per.nos.met.mai.CatalogRetainedIdentifier] [,] [,,,] (main) 
Reference not found: policy-mappings
   2026-06-14 14:35:01,789 INFO  
[org.apa.pol.per.nos.met.mai.CatalogRetainedIdentifier] [,] [,,,] (main) 
Identifying catalogs...
   2026-06-14 14:35:01,790 DEBUG 
[org.apa.pol.per.nos.met.mai.CatalogRetainedIdentifier] [,] [,,,] (main) 
Reference not found: catalogs
   2026-06-14 14:35:01,790 INFO  
[org.apa.pol.per.nos.mai.imp.MaintenanceServiceImpl] [,] [,,,] (main) Realm 
identifier 'Catalog data' handled ::system::
   2026-06-14 14:35:01,790 INFO  
[org.apa.pol.per.nos.mai.imp.MaintenanceServiceImpl] [,] [,,,] (main) Running 
maintenance for realm '::system::' via 'Nodes'
   2026-06-14 14:35:01,798 INFO  
[org.apa.pol.per.nos.mai.imp.MaintenanceServiceImpl] [,] [,,,] (main) Realm 
identifier 'Nodes' did not handle ::system::
   2026-06-14 14:35:01,798 INFO  
[org.apa.pol.per.nos.mai.imp.MaintenanceServiceImpl] [,] [,,,] (main) Running 
maintenance for realm '::system::' via 'Realm management'
   2026-06-14 14:35:01,800 INFO  
[org.apa.pol.per.nos.mai.imp.MaintenanceServiceImpl] [,] [,,,] (main) Realm 
identifier 'Realm management' did not handle ::system::
   2026-06-14 14:35:01,801 INFO  
[org.apa.pol.per.nos.mai.imp.MaintenanceServiceImpl] [,] [,,,] (main) Start 
scanning backend database, too-new: 1781436901657488 ...
   2026-06-14 14:35:01,804 DEBUG [org.apa.pol.per.nos.mai.imp.ScanHandler] [,] 
[,,,] (main) Got '::system::' reference maintenance-runs -> too new, 
createdAtMicros = 1781447394131320
   2026-06-14 14:35:01,804 DEBUG [org.apa.pol.per.nos.mai.imp.ScanHandler] [,] 
[,,,] (main) Got '::system::' reference realms -> too new, createdAtMicros = 
1781447394183477
   2026-06-14 14:35:01,805 DEBUG [org.apa.pol.per.nos.mai.imp.ScanHandler] [,] 
[,,,] (main) Got '::system::' object ObjRef{type=nodes, id=9223372036854775807} 
-> too new, createdAtMicros = 1781447394274600
   2026-06-14 14:35:01,805 DEBUG [org.apa.pol.per.nos.mai.imp.ScanHandler] [,] 
[,,,] (main) Got '::system::' object ObjRef{type=node, id=9223372036853366784} 
-> too new, createdAtMicros = 1781447394544878
   2026-06-14 14:35:01,805 DEBUG [org.apa.pol.per.nos.mai.imp.ScanHandler] [,] 
[,,,] (main) Got '::system::' object ObjRef{type=mtr, id=170541215583469568} -> 
too new, createdAtMicros = 1781447394522099
   2026-06-14 14:35:01,805 DEBUG [org.apa.pol.per.nos.mai.imp.ScanHandler] [,] 
[,,,] (main) Got '::system::' object ObjRef{type=mtrs, id=170541215596052480} 
-> too new, createdAtMicros = 1781447394301272
   2026-06-14 14:35:01,805 DEBUG [org.apa.pol.per.nos.mai.imp.ScanHandler] [,] 
[,,,] (main) Got '::system::' object ObjRef{type=node, id=9223372036853866496} 
-> too new, createdAtMicros = 1781447701638304
   2026-06-14 14:35:01,805 DEBUG [org.apa.pol.per.nos.mai.imp.ScanHandler] [,] 
[,,,] (main) Got '::system::' object ObjRef{type=mtr, id=170542504699109376} -> 
too new, createdAtMicros = 1781447701646462
   2026-06-14 14:35:01,806 DEBUG [org.apa.pol.per.nos.mai.imp.ScanHandler] [,] 
[,,,] (main) Got '::system::' object ObjRef{type=mtrs, id=170542504699109377} 
-> too new, createdAtMicros = 1781447701646462
   2026-06-14 14:35:01,806 INFO  
[org.apa.pol.per.nos.mai.imp.MaintenanceServiceImpl] [,] [,,,] (main) Finished 
scanning backend database
   2026-06-14 14:35:01,807 INFO  
[org.apa.pol.per.nos.mai.imp.MaintenanceServiceImpl] [,] [,,,] (main) 
Maintenance run completed successfully
   2026-06-14 14:35:01,807 INFO  
[org.apa.pol.per.nos.mai.imp.MaintenanceServiceImpl] [,] [,,,] (main) 
Persisting maintenance result 
MaintenanceRunInformation{started=2026-06-14T14:35:01.646156833Z, 
finished=2026-06-14T14:35:01.807584458Z, success=true, detailedInformation=, 
referenceStats=MaintenanceStats{scanned=2, retained=0, newer=2, purged=0}, 
objStats=MaintenanceStats{scanned=7, retained=0, newer=7, purged=0}, 
perRealmReferenceStats={::system::=MaintenanceStats{scanned=2, retained=0, 
newer=2, purged=0}}, 
perRealmPerObjTypeStats={::system::={node=MaintenanceStats{scanned=2, 
retained=0, newer=2, purged=0}, nodes=MaintenanceStats{scanned=1, retained=0, 
newer=1, purged=0}, mtr=MaintenanceStats{scanned=2, retained=0, newer=2, 
purged=0}, mtrs=MaintenanceStats{scanned=2, retained=0, newer=2, purged=0}}}, 
purgedRealms=0, identifiedObjs=1030, identifiedReferences=10}
   
   
==================================================================================
   
   Run started: 2026-06-14T14:35:01.646156833Z
        status: (no exceptional information, all good so far)
      finished: 2026-06-14T14:35:01.807584458Z
       details:
   
   Realms:
        purged: 0
   
   References:
       scanned: 2
      retained: 0
       too new: 2
        purged: 0
     Realm: ::system::
           scanned: 2
          retained: 0
           too new: 2
            purged: 0
   
   Objects:
       scanned: 7
      retained: 0
       too new: 7
        purged: 0
     Realm: ::system::
       Type: node (Node)
             scanned: 2
            retained: 0
             too new: 2
              purged: 0
       Type: nodes (Nodes)
             scanned: 1
            retained: 0
             too new: 1
              purged: 0
       Type: mtr (Maintenance Run)
             scanned: 2
            retained: 0
             too new: 2
              purged: 0
       Type: mtrs (Maintenance Runs)
             scanned: 2
            retained: 0
             too new: 2
              purged: 0
   2026-06-14 14:35:01,819 DEBUG 
[org.apa.pol.per.nos.nod.imp.NodeManagementImpl] [,] [,,,] (main) Closing 
NodeManagement
   2026-06-14 14:35:01,819 INFO  
[org.apa.pol.per.nos.nod.imp.NodeManagementImpl] [,] [,,,] (main) Releasing 
lease for node id 802
   2026-06-14 14:35:01,879 INFO  [io.quarkus] [,] [,,,] (main) Apache Polaris 
Admin Tool stopped in 0.066s
   ```
   
   ML: https://lists.apache.org/thread/5nst0f2ygnl2gj3j910q7m8nk2fvokc7
   
   ## Checklist
   - [x] ๐Ÿ›ก๏ธ Don't disclose security issues! (contact [email protected])
   - [x] ๐Ÿ”— Clearly explained why the changes are needed, or linked related 
issues: Fixes #
   - [x] ๐Ÿงช Added/updated tests with good coverage, or manually tested (and 
explained how)
   - [x] ๐Ÿ’ก Added comments for complex logic
   - [x] ๐Ÿงพ Updated `CHANGELOG.md` (if needed)
   - [x] ๐Ÿ“š Updated documentation in `site/content/in-dev/unreleased` (if needed)
   


-- 
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]

Reply via email to