Project

General

Profile

Actions

Bug #65695

open

[MON] ConnectionTracker dumps duplicate keys

Added by Kamoltat (Junior) Sirivadhna 17 days ago. Updated 17 days ago.

Status:
Fix Under Review
Priority:
Normal
Category:
-
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(RADOS):
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

Problem:

Currently, the ConnectionTracker::dump()
will dump a duplicate key which is not
ideal when you want to write a test that
converts the dump into a JSON since
JSON objects are key-value pairs where
each key must be unique.

ceph daemon mon.a connection scores dump:

`peer` and `report` are a duplicate keys

{
    "rank": 0,
    "epoch": 6,
    "version": 3940,
    "half_life": 43200,
    "persist_interval": 10,
    "reports": {
        "report": {
            "rank": 0,
            "epoch": 6,
            "version": 3940,
            "peer_scores": {
                "peer": {
                    "peer_rank": 1,
                    "peer_score": 0.94585216001327721,
                    "peer_alive": false
                },
                "peer": {
                    "peer_rank": 2,
                    "peer_score": 0.94246260684539296,
                    "peer_alive": false
                }
            }
        },
        "report": {
            "rank": 1,
            "epoch": 6,
            "version": 345,
            "peer_scores": {
                "peer": {
                    "peer_rank": 0,
                    "peer_score": 0.99966364610282044,
                    "peer_alive": true
                },
                "peer": {
                    "peer_rank": 2,
                    "peer_score": 0.9941396935402752,
                    "peer_alive": false
                }
            }
        },
        "report": {
            "rank": 2,
            "epoch": 6,
            "version": 84,
            "peer_scores": {
                "peer": {
                    "peer_rank": 0,
                    "peer_score": 0.99990216338725646,
                    "peer_alive": true
                }
            }
        }
    }
}

Here's the the JSON we want:

{
    "rank": 0,
    "epoch": 6,
    "version": 3035,
    "half_life": 43200,
    "persist_interval": 10,
    "reports": [
        {
            "rank": 0,
            "epoch": 6,
            "version": 3035,
            "peer_scores": [
                {
                    "peer_rank": 1,
                    "peer_score": 0.95980795849326606,
                    "peer_alive": false
                },
                {
                    "peer_rank": 2,
                    "peer_score": 0.95637166329510226,
                    "peer_alive": false
                }
            ]
        },
        {
            "rank": 1,
            "epoch": 6,
            "version": 345,
            "peer_scores": [
                {
                    "peer_rank": 0,
                    "peer_score": 0.99966364610282044,
                    "peer_alive": true
                },
                {
                    "peer_rank": 2,
                    "peer_score": 0.9941396935402752,
                    "peer_alive": false
                }
            ]
        },
        {
            "rank": 2,
            "epoch": 6,
            "version": 84,
            "peer_scores": [
                {
                    "peer_rank": 0,
                    "peer_score": 0.99990216338725646,
                    "peer_alive": true
                }
            ]
        }
    ]
}

Actions #1

Updated by Kamoltat (Junior) Sirivadhna 17 days ago

  • Description updated (diff)
Actions #2

Updated by Kamoltat (Junior) Sirivadhna 17 days ago

  • Description updated (diff)
Actions #3

Updated by Kamoltat (Junior) Sirivadhna 17 days ago

  • Status changed from New to Fix Under Review
  • Assignee set to Kamoltat (Junior) Sirivadhna
Actions #4

Updated by Kamoltat (Junior) Sirivadhna 17 days ago

  • Pull request ID set to 57146
Actions

Also available in: Atom PDF