sonic-net / sonic-platform-daemons

Platform module daemons for SONiC
Other
23 stars 151 forks source link

Consumer of same field subscribed to different DBs to have DBs/TABLE check prior to processing event #259

Open shyam77git opened 2 years ago

shyam77git commented 2 years ago

While reviewing CMIS PR changeset - https://github.com/Azure/sonic-platform-daemons/pull/254 , found following issue:

Issue: Field with same naming on different Table across State/APPL DB is having conflict when an event is occurred. (a) Port table in APPL DB – caters to speed, lane admin status etc. changes (b) Port table in STATE DB – caters to host_tx_ready , admin status etc. changes admin status change is found false in one table and true in another when config interface on a port/interface was applied.

Plan: Reviewed this with @prgeor
Need to add DB type check when an event is received. Also, investigated and correct as to why this field (admin status and any other field) is in mismatch between the two tables.

prgeor commented 2 years ago

@shyam77git admin_status is fixed here https://github.com/Azure/sonic-swss/pull/2233. Please do note, keeping same field values across STATE_DB, APPL_DB is outside the scope of Xcvrd. Please raise an issue in SWSS repo for having consistent field values across these DBs.

shyam77git commented 2 years ago

Filed this issue to handle: Two DBs can have same field with different definition, So the consumer/event handler needs to take care of handling fields with same name across different DBs/TABLEs via DB/TABLE check

prgeor commented 2 years ago

Filed this issue to handle: Two DBs can have same field with different definition, So the consumer/event handler needs to take care of handling fields with same name across different DBs/TABLEs via DB/TABLE check

@shyam77git can you give me an example where two DBs have same field with different definition/meaning?