Bug #106826 status() replicationLag 'null' is confusing
Submitted: 24 Mar 2022 21:03 Modified: 13 Jun 2022 15:28
Reporter: Emily Slocombe Email Updates:
Status: Closed Impact on me:
None 
Category:Shell AdminAPI InnoDB Cluster / ReplicaSet Severity:S4 (Feature request)
Version:8.0.28 OS:Any
Assigned to: CPU Architecture:Any

[24 Mar 2022 21:03] Emily Slocombe
Description:
 JS > cluster.status();

outputs  "replicationLag": null, if it is idle, otherwise a time is output like: "00:00:00.007236"

It would be much more clear if it output "replicationLag": "idle", if it is operational but idle. 

How to repeat:
cluster.status() on an idle cluster

Suggested fix:
use a more descriptive value
[25 Mar 2022 15:55] MySQL Verification Team
Hello Emily Slocombe,

Thank you for the feature request!

regards,
Umesh
[28 Mar 2024 15:04] MySQL Verification Team
this is fixed in 8.0.30.
added the following to the 8.0.30 Shell changelog (also updated Shell 
user guide as replicationLag was not doc'ed):
 
The replicationLag value reported by Cluster.status() was not calculated 
correctly.
As of this release, it returns one of the following:
 
- The time difference between the last transaction commit timestamp and the 
last transaction applied timestamp, in HH:MM:SS format.
  If multiple workers are used, the value is retrieved from the worker 
executing the oldest transaction.
- null: The replication connection or SQL thread is not running.
- applier_queue_applied: The applier queue has applied everything. That is, 
if the last queued transaction and the last applied transaction are the same, 
or the applying transaction is 0.
For more information, see Checking a cluster's Status with Cluster.status(). 
https://dev.mysql.com/doc/mysql-shell/8.0/en/monitoring-innodb-cluster.html#check-innodb-c...