GET https://<active-gm>/api/v1/sites/status returns output similar to the output below (note the output of the API has been reduced to only show the relevant sections):
{
"remote_connections": [
{
-- snip --
}
],
"active_standby_sync_statuses": [
{
"standby_site": "<standby-site-name>",
"is_data_consistent": false,
"description": "Config consumption complete",
"status": "UNAVAILABLE",
"percentage_completed": 0,
"remaining_entries_to_send": -1957158642,
"sync_type": "DELTA_SYNC",
"full_sync_status": {
-- snip --
}
}
]
}
Logging on the Standby Global Manager node indicates an exception thrown while two tables are being processed (table UUIDs are 307661b9-31fe-3518-895b-e5df563eed57 and 2688dd3a-4c3b-3241-818a-1d64554d406d), the process will shutdown and restart in constant loop:
/var/log/corfu-log-replication/corfu.9010.log
2025-12-12T11:12:52.678Z | ERROR | discovery-service | o.c.p.wireprotocol.LogData | Exception caught at address 16552427, [307661b9-31fe-3518-895b-e5df563eed57, 2688dd3a-4c3b-3241-818a-1d64554d406d], DATA
2025-12-12T11:12:52.678Z | DEBUG | netty-1 | o.c.r.c.NettyClientRouter | addReconnectionOnCloseFuture[<standby_node_2_IP>:9000]: disconnected
2025-12-12T11:12:52.681Z | DEBUG | netty-2 | o.c.r.c.NettyClientRouter | addReconnectionOnCloseFuture[<standby_node_3_IP>:9000]: disconnected
2025-12-12T11:12:52.681Z | DEBUG | netty-0 | o.c.r.c.NettyClientRouter | addReconnectionOnCloseFuture[<standby_node_1_IP>:9000]: disconnected
2025-12-12T11:12:52.696Z | DEBUG | discovery-service | t.AbstractTransactionalContext | TXAbort[TX[bb09]]
2025-12-12T11:12:52.698Z | INFO | discovery-service | org.corfudb.util.FileWatcher | Closed FileWatcher.
2025-12-12T11:12:52.698Z | INFO | FileWatcher-0 | org.corfudb.util.FileWatcher | FileWatcher failed to poll file /config/cluster-manager/corfu/private/keystore.jks, Exception: java.nio.file.ClosedWatchServiceException., isStopped: true
2025-12-12T11:12:52.698Z | DEBUG | discovery-service | o.c.r.c.NettyClientRouter | stop: Shutting down router for <standby_node_3_IP>:9000
2025-12-12T11:12:52.698Z | INFO | FileWatcher-0 | org.corfudb.util.FileWatcher | Watch service is stopped. Skip reloading new watch service.
2025-12-12T11:12:52.698Z | DEBUG | discovery-service | o.c.r.c.NettyClientRouter | stop: Shutting down router for <standby_node_1_IP>:9000
2025-12-12T11:12:52.698Z | DEBUG | discovery-service | o.c.r.c.NettyClientRouter | stop: Shutting down router for <standby_node_1_IP>:9000
2025-12-12T11:12:52.914Z | INFO | ShutdownThread | uInterClusterReplicationServer | CleanShutdown: Starting Cleanup.
...
2025-12-12T11:12:59.266Z | INFO | WrapperSimpleAppMain | uInterClusterReplicationServer | Initializing LOG REPLICATION SERVER
VMware NSX (Federated deployment)
VMware NSX-T Data Center (Federated deployment)
The Standby cluster is experiencing Out-Of-Memory (OOM) errors driven by the Log Replication (LR) cache mechanism, where table FullSyncMarker is being processed by the LR service has grown significantly (the table will typically be holding >300,000 keys and occupying >150 MB).
As write operations to this table occur in parallel to the updates to the LR metadata table, accessing the metadata consequently loads the FullSyncMarker table into the application cache.
This caching behavior consumes excessive heap memory, leading to resource exhaustion.
This issue is resolved in VMware NSX 4.2.2, available at Broadcom downloads.
If you are having difficulty finding and downloading software, please review the Download Broadcom products and software KB.
cp /usr/tanuki/conf/corfu-log-replication-server-wrapper.conf /usr/tanuki/conf/corfu-log-replication-server-wrapper.conf.bak
wrapper.java.initmemory.percent=2
wrapper.java.maxmemory.percent=2
vi), change the values in corfu-log-replication-server-wrapper.conf from 2 to 4. If you wish, you can use the command below to do so:
sed -i 's/wrapper.java.initmemory.percent=2/wrapper.java.initmemory.percent=4/g' /usr/tanuki/conf/corfu-log-replication-server-wrapper.conf
sed -i 's/wrapper.java.maxmemory.percent=2/wrapper.java.maxmemory.percent=4/g' /usr/tanuki/conf/corfu-log-replication-server-wrapper.conf
systemctl restart corfu-log-replication-server
remaining_entries_to_send drops to 0, change the values back to default:
.conf file. This will set everything back to default:
mv /usr/tanuki/conf/corfu-log-replication-server-wrapper.conf.bak /usr/tanuki/conf/corfu-log-replication-server-wrapper.conf
Note: Themvcommand is used instead ofcp(copy) as theconf.bakfile is no longer needed. Usingcpis also acceptable.
systemctl restart corfu-log-replication-server
/var/log/corfu-log-replication/tanuki.log
INFO | jvm 404 | 2026/01/12 13:58:34 | java.lang.OutOfMemoryError: Java heap space
STATUS | wrapper | 2026/01/12 13:58:34 | The JVM has run out of memory. Requesting thread dump.
STATUS | wrapper | 2026/01/12 13:58:34 | Dumping JVM state.
STATUS | wrapper | 2026/01/12 13:58:34 | The JVM has run out of memory. Restarting JVM.
INFO | jvm 404 | 2026/01/12 13:58:34 | Dumping heap to /image/core/corfu-log-replication_oom.hprof ...
..
INFO | jvm 404 | 2026/01/12 13:58:43 | Exception in thread "discovery-service" java.lang.OutOfMemoryError: Java heap space
STATUS | wrapper | 2026/01/12 13:58:43 | The JVM has run out of memory. Requesting thread dump.
STATUS | wrapper | 2026/01/12 13:58:43 | Dumping JVM state.
STATUS | wrapper | 2026/01/12 13:58:43 | The JVM has run out of memory. Restart JVM (Ignoring, already restarting).
You may need to disable the Log Replication cache, which is being filled up by a table larger than the memory allocated to the service, causing the service to run out of memory.
cp /usr/tanuki/conf/corfu-log-replication-server-wrapper.conf /usr/tanuki/conf/corfu-log-replication-server-wrapper.conf.bak
vi, open file /usr/tanuki/conf/corfu-log-replication-server-wrapper.conf:
vi /usr/tanuki/conf/corfu-log-replication-server-wrapper.conf
# Application parameters. Add parameters as needed starting from 1 At the end of the block, add the following parameter:
wrapper.app.parameter.25=--lrCacheSize=0
vi, this is done by entering the following: :wq! followed by enter.corfu-log-replication-server service:
service corfu-log-replication-server stop
service corfu-log-replication-server start