Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stale rif counter db removal (fix for #2193)_ #2199

Merged
merged 1 commit into from
May 12, 2022

Conversation

sumanbrcm
Copy link
Contributor

@sumanbrcm sumanbrcm commented Mar 25, 2022

What I did
Fix for https://github.com/Azure/sonic-swss/issues/2193

To handle this , whenever RIF is deleted (removeRouterIntfs) , we ensure that these COUNTER_DB tables are deleted(handled in cleanUpRifFromCounterDb) .

Why I did it
In this issue , stale COUNTER_DB table/entries were present even after RIF was deleted.
So cleaning up of such stale tables are needed.
In the absence of this , if same oid is allocated to a different RIF , we may show stale stats.
Also the COUNTER_DB will keep holding un-necessary tables and this number/used-memory keep growing if there RIFs are deleted .

How I verified it
Before this fix , here is the snapshot of the stale COUNTER_DB tables.
a. Before fix , here the steps where problem was seen

1. After RIF creation derived info of oid for RIF from "COUNTERS_RIF_NAME_MAP"
      127) "Vlan100"
      128) "oid:0x6000000000ba6"

  2. Checked all the tabled in COUNTER_DB which has same OID in keys
      127.0.0.1:6379[2]> keys *6000000000ba6*
                                1) "RATES:oid:0x6000000000ba6:RIF"
                                2) "COUNTERS:oid:0x6000000000ba6"
                                3) "RATES:oid:0x6000000000ba6"
    127.0.0.1:6379[2]>

  3.  Deleted the RIF by removing the ip on the intf.
  4. Checked COUNTER_DB again with same OID if there are stale entries or not. No stale entries exist now.
      127.0.0.1:6379[2]> keys *6000000000ba6*
                                1) "RATES:oid:0x6000000000ba6:RIF"
                                2) "COUNTERS:oid:0x6000000000ba6"
                                3) "RATES:oid:0x6000000000ba6"
    127.0.0.1:6379[2]>

b. After this fix, here are the verification steps

   1. After RIF creation derived info of oid for RIF from "COUNTERS_RIF_NAME_MAP"
      127) "Vlan100"
      128) "oid:0x6000000000ba6"

  2. Checked all the tabled in COUNTER_DB which has same OID in keys
      127.0.0.1:6379[2]> keys *6000000000ba6*
                                1) "RATES:oid:0x6000000000ba6:RIF"
                                2) "COUNTERS:oid:0x6000000000ba6"
                                3) "RATES:oid:0x6000000000ba6"
    127.0.0.1:6379[2]>

  3.  Deleted the RIF by removing the ip on the intf.
  4. Checked COUNTER_DB again with same OID if there are stale entries or not. No stale entries exist now.
     127.0.0.1:6379[2]> keys *6000000000ba6*
                             (empty array)
     127.0.0.1:6379[2]>

Check syslog too to confirm the changes to handle this issue is invoked

Jul 14 19:37:37.233767 sonic NOTICE swss#orchagent: :- cleanUpRifFromCounterDb: CleanUp interface Vlan100 oid oid:0x6000000000ba6 from counter db

Details if related

@sumanbrcm sumanbrcm requested a review from prsunny as a code owner March 25, 2022 09:54
@prsunny
Copy link
Collaborator

prsunny commented Mar 26, 2022

@dgsudharsan , could you please review?

@sumanbrcm
Copy link
Contributor Author

/AzurePipelines run

@azure-pipelines
Copy link

Commenter does not have sufficient privileges for PR 2199 in repo Azure/sonic-swss

orchagent/intfsorch.cpp Outdated Show resolved Hide resolved
@sumanbrcm sumanbrcm force-pushed the stale_rif_counterdb_clear branch 2 times, most recently from 42ae93b to 02d2ffa Compare April 1, 2022 09:36
@sumanbrcm
Copy link
Contributor Author

/azpw run Azure.[stale_rif_counterdb_clear]

@mssonicbld
Copy link
Collaborator

/AzurePipelines run Azure.[stale_rif_counterdb_clear]

@azure-pipelines
Copy link

No pipelines are associated with this pull request.

@prsunny
Copy link
Collaborator

prsunny commented Apr 4, 2022

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@Junchao-Mellanox
Copy link
Collaborator

I am not sure that we should do this in swss. There could be race condition: removing a counter from swss does not mean the counter will be removed from syncd immediately. A race condition case could be like:

  1. swss remove the counters from COUNTERS DB
  2. at the same time, syncd is inserting a new entry to COUNTERS DB

So I would suggest to do this in syncd. You may refer to this function: https://github.com/Azure/sonic-sairedis/blob/473c99067c8132f8e5b3f8f2abd672b474b42b5a/syncd/FlexCounter.cpp#L986

@@ -1219,11 +1220,40 @@ void IntfsOrch::removeRifFromFlexCounter(const string &id, const string &name)
SWSS_LOG_DEBUG("Unregistered interface %s from Flex counter", name.c_str());
}

void IntfsOrch::cleanUpRifFromCounterDb(const string &id, const string &name)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you consider moving this to syncd?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @Junchao-Mellanox for the review/comments. The current changes done is alongside/inline-with other rif counter cleanup code. The idea was to have all rif counter related cleanup should be triggered at the same place. Please refer to the call made for removeRifFromFlexCounter in removeRouterIntfs .
Will also request @dgsudharsan for comments if all the clean-up for rif counters (existing:removeRifFromFlexCounter and newly added cleanUpRifFromCounterDb) should move to syncd ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Junchao-Mellanox , This request (to move cleanup to syncd) needs to be evaluated and then considered . Please note that there are other cleanup for rif counters which also needs to be moved to syncd in such case.
For now , will move ahead with this PR merge. If after discussion/evaluation it is decided to move these code to syncd , will have a new PR for the same.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sumanbrcm I believe the reason for requesting to move is due to a race condition when orchagent deletes the counters, syncd can try to access it given the operations are asynchronous. I suggest to have the cleanup of counters in syncd but if this warrants a discussion, lets have one. @prsunny What is your opinion on this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @dgsudharsan . As mentioned in previous comments , since remaining of cleanup code for rif counters already present in orchagent , we are keeping this change in orchagent. For future , if needed we can move all cleanup code to syncd after discussion.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this race condition won't affect any function, please add a TODO comment here to remind there is a race condition. I will approve the PR after that.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sumanbrcm , @Junchao-Mellanox, since the tests are passing, I'm going ahead with the merge as the outstanding concern is to add comment. @sumanbrcm , please raise another PR to address the comment.

@sumanbrcm
Copy link
Contributor Author

/azpw run Azure.[stale_rif_counterdb_clear]

@mssonicbld
Copy link
Collaborator

/AzurePipelines run Azure.[stale_rif_counterdb_clear]

@azure-pipelines
Copy link

No pipelines are associated with this pull request.

@sumanbrcm
Copy link
Contributor Author

/azpw run Azure.sonic-swss

@mssonicbld
Copy link
Collaborator

/AzurePipelines run Azure.sonic-swss

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@sumanbrcm
Copy link
Contributor Author

/azpw run Azure.sonic-swss

@mssonicbld
Copy link
Collaborator

/AzurePipelines run Azure.sonic-swss

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@sumanbrcm
Copy link
Contributor Author

/azpw run Azure.sonic-swss

@mssonicbld
Copy link
Collaborator

/AzurePipelines run Azure.sonic-swss

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@sumanbrcm
Copy link
Contributor Author

/azpw run Azure.sonic-swss

@mssonicbld
Copy link
Collaborator

/AzurePipelines run Azure.sonic-swss

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@sumanbrcm
Copy link
Contributor Author

/azpw run Azure.sonic-swss

@mssonicbld
Copy link
Collaborator

/AzurePipelines run Azure.sonic-swss

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@sumanbrcm
Copy link
Contributor Author

/azpw run Azure.sonic-swss

@mssonicbld
Copy link
Collaborator

/AzurePipelines run Azure.sonic-swss

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@sumanbrcm
Copy link
Contributor Author

/azpw run Azure.sonic-swss

@mssonicbld
Copy link
Collaborator

/AzurePipelines run Azure.sonic-swss

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@stepanblyschak
Copy link
Contributor

I am not sure that we should do this in swss. There could be race condition: removing a counter from swss does not mean the counter will be removed from syncd immediately. A race condition case could be like:

  1. swss remove the counters from COUNTERS DB
  2. at the same time, syncd is inserting a new entry to COUNTERS DB

So I would suggest to do this in syncd. You may refer to this function: https://github.com/Azure/sonic-sairedis/blob/473c99067c8132f8e5b3f8f2abd672b474b42b5a/syncd/FlexCounter.cpp#L986

@prsunny @sumanbrcm I agree with @Junchao-Mellanox . The cleanup of COUNTERS RIF tables should be done in syncd while cleanup of the mapping should still be done in orchagent because the orchagent is the one who wrote it to. We should follow the rule that the entity that writes to a table is the only one responsible for this table cleanup. In this case it is syncd.

Besides of this fix beeing incomplete due to a race condition as pointed out by @Junchao-Mellanox it introduced errors in the logs that are caught by log analyzer during our regression:

Aug  4 02:04:51.724424 r-ocelot-02 NOTICE swss#orchagent: :- cleanUpRifFromCounterDb: CleanUp interface PortChannel33 oid oid:0x6000000000823 from counter db
Aug  4 02:04:51.724465 r-ocelot-02 ERR syncd#SDK: :- guard: RedisReply catches system_error: command: *86#015#012$7#015#012EVALSHA#015#012$40#015#0125f7e8b14a9d450f29760700b318672020ca52eab#015#012$2#015#01279#015#012$19#015#012oid:0x6000000000800#015#012$19#015#012oid:0x6000000000801#015#012$19#015#012oid:0x6000000000802#015#012$19#015#012oid:0x6000000000803#015#012$19#015#012oid:0x6000000000804#015#012$19#015#012oid:0x6000000000805#015#012$19#015#012oid:0x6000000000806#015#012$19#015#012oid:0x6000000000807#015#012$19#015#012oid:0x6000000000808#015#012$19#015#012oid:0x6000000000809#015#012$19#015#012oid:0x600000000080b#015#012$19#015#012oid:0x6000000000823#015#012$19#015#012oid:0x6000000000824#015#012$19#015#012oid:0x6000000000825#015#012$19#015#012oid:0x6000000000826#015#012$19#015#012oid:0x6000000000827#015#012$19#015#012oid:0x6000000000828#015#012$19#015#012oid:0x6000000000829#015#012$19#015#012oid:0x600000000082b#015#012$19#015#012oid:0x600000000082c#015#012$19#015#012oid:0x600000000082d#015#012$19#015#012oid:0x600000000082e#015#012$19#015#012oid:0x600000000082f#015#012$19#015#012oid:0x6000000000830#015#012$19#015#012oid:0x6000000000831#015#012$19#015#012oid:0x6000000000832#015#012$19#015#012oid:0x6000000000833#015#012$19#015#012oid:0x6000000000834#015#012$19#015#012oid:0x6000000000836#015#012$19#015#012oid:0x6000000000837#015#012$19#015#012oid:0x6000000000838#015#012$19#015#012oid:0x6000000000839#015#012$19#015#012oid:0x600000000083a#015#012$19#015#012oid:0x600000000083b#015#012$19#015#012oid:0x600000000083c#015#012$19#015#012oid:0x600000000083d#015#012$19#015#012oid:0x600000000083e#015#012$19#015#012oid:0x600000000083f#015#012$19#015#012oid:0x6000000000841#015#012$19#015#012oid:0x6000000000842#015#012$19#015#012oid:0x6000000000843#015#012$19#015#012oid:0x6000000000844#015#012$19#015#012oid:0x6000000000845#015#012$19#015#012oid:0x6000000000846#015#012$19#015#012oid:0x6000000000847#015#012$19#015#012oid:0x6000000000848#015#012$19#015#012oid:0x6000000000849#015#012$19#015#012oid:0x600000000084a#015#012$19#015#012oid:0x600000000084c#015#012$19#015#012oid:0x600000000084d#015#012$19#015#012oid:0x600000000084e#015#012$19#015#012oid:0x600000000084f#015#012$19#015#012oid:0x6000000000850#015#012$19#015#012oid:0x6000000000851#015#012$19#015#012oid:0x6000000000852#015#012$19#015#012oid:0x6000000000853#015#012$19#015#012oid:0x6000000000854#015#012$19#015#012oid:0x6000000000855#015#012$19#015#012oid:0x6000000000857#015#012$19#015#012oid:0x6000000000858#015#012$19#015#012oid:0x6000000000859#015#012$19#015#012oid:0x600000000085a#015#012$19#015#012oid:0x600000000085b#015#012$19#015#012oid:0x600000000085c#015#012$19#015#012oid:0x600000000085d#015#012$19#015#012oid:0x600000000085e#015#012$19#015#012oid:0x600000000085f#015#012$19#015#012oid:0x6000000000860#015#012$19#015#012oid:0x6000000000862#015#012$19#015#012oid:0x6000000000863#015#012$19#015#012oid:0x6000000000864#015#012$19#015#012oid:0x6000000000865#015#012$19#015#012oid:0x6000000000866#015#012$19#015#012oid:0x6000000000867#015#012$19#015#012oid:0x6000000000868#015#012$19#015#012oid:0x6000000000869#015#012$19#015#012oid:0x600000000086a#015#012$19#015#012oid:0x600000000086b#015#012$19#015#012oid:0x600000000086c#015#012$1#015#0122#015#012$8#015#012COUNTERS#015#012$4#015#0121000#015#012$2#015#012''#015#012, reason: ERR Error running script (call to f_5f7e8b14a9d450f29760700b318672020ca52eab): @user_script:48: user_script:48: attempt to perform arithmetic on local 'in_octets' (a boolean value): Input/output error
Aug  4 02:04:51.724465 r-ocelot-02 ERR syncd#SDK: :- runRedisScript: Caught exception while running Redis lua script: RedisReply catches system_error: command: *86#015#012$7#015#012EVALSHA#015#012$40#015#0125f7e8b14a9d450f29760700b318672020ca52eab#015#012$2#015#01279#015#012$19#015#012oid:0x6000000000800#015#012$19#015#012oid:0x6000000000801#015#012$19#015#012oid:0x6000000000802#015#012$19#015#012oid:0x6000000000803#015#012$19#015#012oid:0x6000000000804#015#012$19#015#012oid:0x6000000000805#015#012$19#015#012oid:0x6000000000806#015#012$19#015#012oid:0x6000000000807#015#012$19#015#012oid:0x6000000000808#015#012$19#015#012oid:0x6000000000809#015#012$19#015#012oid:0x600000000080b#015#012$19#015#012oid:0x6000000000823#015#012$19#015#012oid:0x6000000000824#015#012$19#015#012oid:0x6000000000825#015#012$19#015#012oid:0x6000000000826#015#012$19#015#012oid:0x6000000000827#015#012$19#015#012oid:0x6000000000828#015#012$19#015#012oid:0x6000000000829#015#012$19#015#012oid:0x600000000082b#015#012$19#015#012oid:0x600000000082c#015#012$19#015#012oid:0x600000000082d#015#012$19#015#012oid:0x600000000082e#015#012$19#015#012oid:0x600000000082f#015#012$19#015#012oid:0x6000000000830#015#012$19#015#012oid:0x6000000000831#015#012$19#015#012oid:0x6000000000832#015#012$19#015#012oid:0x6000000000833#015#012$19#015#012oid:0x6000000000834#015#012$19#015#012oid:0x6000000000836#015#012$19#015#012oid:0x6000000000837#015#012$19#015#012oid:0x6000000000838#015#012$19#015#012oid:0x6000000000839#015#012$19#015#012oid:0x600000000083a#015#012$19#015#012oid:0x600000000083b#015#012$19#015#012oid:0x600000000083c#015#012$19#015#012oid:0x600000000083d#015#012$19#015#012oid:0x600000000083e#015#012$19#015#012oid:0x600000000083f#015#012$19#015#012oid:0x6000000000841#015#012$19#015#012oid:0x6000000000842#015#012$19#015#012oid:0x6000000000843#015#012$19#015#012oid:0x6000000000844#015#012$19#015#012oid:0x6000000000845#015#012$19#015#012oid:0x6000000000846#015#012$19#015#012oid:0x6000000000847#015#012$19#015#012oid:0x6000000000848#015#012$19#015#012oid:0x6000000000849#015#012$19#015#012oid:0x600000000084a#015#012$19#015#012oid:0x600000000084c#015#012$19#015#012oid:0x600000000084d#015#012$19#015#012oid:0x600000000084e#015#012$19#015#012oid:0x600000000084f#015#012$19#015#012oid:0x6000000000850#015#012$19#015#012oid:0x6000000000851#015#012$19#015#012oid:0x6000000000852#015#012$19#015#012oid:0x6000000000853#015#012$19#015#012oid:0x6000000000854#015#012$19#015#012oid:0x6000000000855#015#012$19#015#012oid:0x6000000000857#015#012$19#015#012oid:0x6000000000858#015#012$19#015#012oid:0x6000000000859#015#012$19#015#012oid:0x600000000085a#015#012$19#015#012oid:0x600000000085b#015#012$19#015#012oid:0x600000000085c#015#012$19#015#012oid:0x600000000085d#015#012$19#015#012oid:0x600000000085e#015#012$19#015#012oid:0x600000000085f#015#012$19#015#012oid:0x6000000000860#015#012$19#015#012oid:0x6000000000862#015#012$19#015#012oid:0x6000000000863#015#012$19#015#012oid:0x6000000000864#015#012$19#015#012oid:0x6000000000865#015#012$19#015#012oid:0x6000000000866#015#012$19#015#012oid:0x6000000000867#015#012$19#015#012oid:0x6000000000868#015#012$19#015#012oid:0x6000000000869#015#012$19#015#012oid:0x600000000086a#015#012$19#015#012oid:0x600000000086b#015#012$19#015#012oid:0x600000000086c#015#012$1#015#0122#015#012$8#015#012COUNTERS#015#012$4#015#0121000#015#012$2#015#012''#015#012, reason: ERR Error running script (call to f_5f7e8b14a9d450f29760700b318672020ca52eab): @user_script:48: user_script:48: attempt to perform arithmetic on local 'in_octets' (a boolean value): Input/output error: Input/output error

@sumanbrcm Could you please handle this issue?

preetham-singh pushed a commit to preetham-singh/sonic-swss that referenced this pull request Aug 6, 2022
To handle this , whenever RIF is deleted (removeRouterIntfs) , we ensure that these COUNTER_DB tables are deleted(handled in cleanUpRifFromCounterDb) .
@sumanbrcm
Copy link
Contributor Author

sumanbrcm commented Aug 16, 2022

@stepanblyschak If the cleanup of mapping is done in OA but cleanup of RIF counters is done in syncd then we can still land into similar issue which was originally reported. Lets say -
1>the mapping is deleted first (race condition) in OA
2> when syncd is trying to delete the rif counters then at first it has to first fetch oid to access rif counters table
3> Since mapping does not exist , it will be unable to do cleanup and the stale table/entries will persist.
Do you see any functional issue if all of cleanup is moved to syncd ?

liat-grozovik pushed a commit that referenced this pull request Nov 8, 2022
The cleanup code for stale rif counters are now moved to syncd . Earlier as part of fix for issue #2193 the cleanup for stale rif counters was added.
But it could create a race condition between orchagent removes RIF rate counters from DB and lua script fetching them.
So as a fix all such cleanup has been moved to syncd.

- What I did
Fix for sonic-net/sonic-buildimage#11621

As a past fix which aimed at removing stale rif counters (#2199) , there is a chance of race condition and it leads to lua script reporting error.
To handle this , the rif counters cleanup code(handled in cleanUpRifFromCounterDb) is now called from syncd ( removeCounter ) to avoid such race condition.

- Why I did it

The operations in Orchagent and syncd is not synchronous, so while Orchagent deletes the rif counters from Counters Db, the syncd could still access it. In race conditions the lua script trying to fetch rif counters will have errors syslog for such access as it was already deleted by orchagent. The cleanup code is removed from orchagent is added in syncd - it will make sure no such race condition would get hit.

- How I verified it

Followed the steps in (sonic-net/sonic-buildimage#11621) :

Create RIF in SONiC, wait till RIF rates are populated in COUNTERS DB
Remove RIF
Repeat the steps multiple times and check if any error syslog is seen (No error syslog is seen)
Also checked cleanup for rif counters.

After RIF creation derived info of oid for RIF from "COUNTERS_RIF_NAME_MAP"
127) "Vlan100"
128) "oid:0x6000000000aa5"

Checked all the tabled in COUNTER_DB which has same OID in keys
127.0.0.1:6379[2]> keys 6000000000aa5
1) "RATES:oid:0x6000000000aa5:RIF"
2) "COUNTERS:oid:0x6000000000aa5"
3) "RATES:oid:0x6000000000aa5"
127.0.0.1:6379[2]>

Deleted the RIF by removing the ip on the intf.

Checked COUNTER_DB again with same OID if there are stale entries or not. No stale entries exist now.
127.0.0.1:6379[2]> keys 6000000000aa5
(empty array)
127.0.0.1:6379[2]>

Signed-off-by: Suman Kumar <suman.kumar@broadcom.com>
yxieca pushed a commit that referenced this pull request Nov 10, 2022
The cleanup code for stale rif counters are now moved to syncd . Earlier as part of fix for issue #2193 the cleanup for stale rif counters was added.
But it could create a race condition between orchagent removes RIF rate counters from DB and lua script fetching them.
So as a fix all such cleanup has been moved to syncd.

- What I did
Fix for sonic-net/sonic-buildimage#11621

As a past fix which aimed at removing stale rif counters (#2199) , there is a chance of race condition and it leads to lua script reporting error.
To handle this , the rif counters cleanup code(handled in cleanUpRifFromCounterDb) is now called from syncd ( removeCounter ) to avoid such race condition.

- Why I did it

The operations in Orchagent and syncd is not synchronous, so while Orchagent deletes the rif counters from Counters Db, the syncd could still access it. In race conditions the lua script trying to fetch rif counters will have errors syslog for such access as it was already deleted by orchagent. The cleanup code is removed from orchagent is added in syncd - it will make sure no such race condition would get hit.

- How I verified it

Followed the steps in (sonic-net/sonic-buildimage#11621) :

Create RIF in SONiC, wait till RIF rates are populated in COUNTERS DB
Remove RIF
Repeat the steps multiple times and check if any error syslog is seen (No error syslog is seen)
Also checked cleanup for rif counters.

After RIF creation derived info of oid for RIF from "COUNTERS_RIF_NAME_MAP"
127) "Vlan100"
128) "oid:0x6000000000aa5"

Checked all the tabled in COUNTER_DB which has same OID in keys
127.0.0.1:6379[2]> keys 6000000000aa5
1) "RATES:oid:0x6000000000aa5:RIF"
2) "COUNTERS:oid:0x6000000000aa5"
3) "RATES:oid:0x6000000000aa5"
127.0.0.1:6379[2]>

Deleted the RIF by removing the ip on the intf.

Checked COUNTER_DB again with same OID if there are stale entries or not. No stale entries exist now.
127.0.0.1:6379[2]> keys 6000000000aa5
(empty array)
127.0.0.1:6379[2]>

Signed-off-by: Suman Kumar <suman.kumar@broadcom.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants