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

[Mellanox] Correct the wrong log identifiers of platform daemons #3596

Merged
merged 1 commit into from
Oct 15, 2019

Conversation

stephenxs
Copy link
Collaborator

- What I did
Correct the wrong log identifiers of platform daemons on Mellanox platform
Originally the Logger class was introduced for the daemons running in pmon docker to provide them the ability to log message in an easy way with log identifier initialized as daemon's name.
When platform API is developed the Logger was also used by them with log identifiers initialized as the classes' name.
However, the logger identifier is global of the entire process scope, which means only one instance of log identifier for the entire daemon. As a result, the classes who is lastly loaded will have its classname set to the daemon's log identifier, causing the identifier incorrect in the logging message.
Since the original meaning of log identifier is the name of the daemon but not the modules, only daemons is legal to set the log identifier. All classes shouldn't set the log identifier when instantiate Logger class.

- How I did it
Don't touch log identifier when initialized by classes in platform API.

- How to verify it
config reload and check whether the pmon logs are correct.

- Description for the changelog

- A picture of a cute animal (not mandatory but encouraged)

@jleveque
Copy link
Contributor

I think it might be even better if each class doesn't need to instantiate the Logger class. Maybe the new platform API itself could hold a global Logger class which is passed to it upon initialization. I just feel it isn't clear why in some instances the syslog identifier isn't passed into the constructor. This would also eliminate the need for each class to import sonic_daemon_base. I'm OK with merging this as a temporary solution, but I think we should consider a better long-term solution.

@stephenxs
Copy link
Collaborator Author

stephenxs commented Oct 13, 2019

I think it might be even better if each class doesn't need to instantiate the Logger class. Maybe the new platform API itself could hold a global Logger class which is passed to it upon initialization. I just feel it isn't clear why in some instances the syslog identifier isn't passed into the constructor. This would also eliminate the need for each class to import sonic_daemon_base. I'm OK with merging this as a temporary solution, but I think we should consider a better long-term solution.

Personally, I like your idea but I gave up doing so after reflecting on its impacts.
To do so requires some other modules to be updated as well:

  1. The loggers are instantiated in daemons. To pass loggers to platform API the daemons need to be updated, passing a "logger" argument when loading platform API.
  2. The prototype of the constructors of classes in sonic_platform_base, at least class PlatformBase, needs to be updated, adding a "logger" argument.
  3. The vendor implemented class Platform in sonic_platform also needs to be updated to align with PlatformBase.

In addition, all updates listed above have to be committed together otherwise the platform API will be broken and the daemons fall back to the plugin model.
So, currently, I don't prefer to change so much especially not long before the code frozen.
How do you think?

@jleveque
Copy link
Contributor

@stephenxs: I agree that my suggestion would be a pretty major change, so I agree with you to wait until after the 201910 release branch is created.

@jleveque
Copy link
Contributor

Retest this please

@jleveque jleveque changed the title [Mellanox]Correct the wrong log identifiers of platform daemons [Mellanox] Correct the wrong log identifiers of platform daemons Oct 15, 2019
@jleveque jleveque merged commit aea09ba into sonic-net:master Oct 15, 2019
@stephenxs stephenxs deleted the fix-pmon-logging-error branch October 15, 2019 21:10
mssonicbld added a commit that referenced this pull request Dec 10, 2024
…atically (#20573)

#### Why I did it
src/sonic-utilities
```
* 32e6de7f - (HEAD -> master, origin/master, origin/HEAD) Update DB migrator script to next branch 202505 (#3664) (3 days ago) [Kumaresh Perumal]
* 8d00aba7 - (origin/test_202411_20, origin/test_202411_100, origin/kperumal_202411, origin/202411) Fix save_file command in generate_dump (#3647) (4 days ago) [DavidZagury]
* 038aaa5f - Revert "Speed up route_check script" (#3653) (4 days ago) [xwjiang-ms]
* 032a0e03 - [config]Restrict YANG validation to Golden Config (#3656) (4 days ago) [jingwenxie]
* 47b79bea - Update gcu_field_operation_validators.conf.json with Arista-7260CX3-D108C10 (#3650) (4 days ago) [Dev Ojha]
* 845f46ef - Update PR checker pipeline to point to bookworm (#3651) (4 days ago) [bingwang-ms]
* 28e645f4 - [show_tech] Filter out a list of commands in generate_dump script which are not applicable to Supervisor (#3646) (5 days ago) [Marty Y. Lok]
* b767cb86 - [cisco|express-boot]: Add support for cisco express boot in sonic-utilities (#3056) (6 days ago) [jhli-cisco]
* f6b9912c - Fix show command column change issue (#3645) (8 days ago) [Feng-msft]
* 9cd6c8de - Debug dump utility dash objects update (#3387) (8 days ago) [Gagan Punathil Ellath]
* f705c456 - Validate interface name length in CLI (#3580) (8 days ago) [Stepan Blyshchak]
* 3d78cb16 - [Mellanox] Update the save_file command in generate_dump to handle folders (#3631) (13 days ago) [DavidZagury]
* 5086a43b - Fix counterpoll show for ENI Counters (#3618) (13 days ago) [Vivek]
* 70f81397 - Extra delay between running firmware and updating firmware version (#3610) (2 weeks ago) [Stephen Sun]
* 636f7f1d - Add port FEC BER show changes (#3607) (2 weeks ago) [vincentpcng]
* 5e60031b - Supports FRR-VRRP configuration (#2949) (3 weeks ago) [Philo]
* 9bd37dc6 - [ARM64][Warm-Reboot]: Get boot arguments from uboot environment (#3613) (3 weeks ago) [Parthiv Shah]
* 171b16c2 - platform/innovium renaming to platform/marvell-teralynx (#3474) (3 weeks ago) [krismarvell]
* 2cbfcc91 - [Mellanox] Add Mellanox-SN5600-C224O8 to gcu_field.json (#3612) (4 weeks ago) [noaOrMlnx]
* a8f7bde0 - PVST Feature commit (#3567) (4 weeks ago) [Divya Kumaran Chandralekha]
* 0e188076 - Refresh dump file modify timestamp before cleanup call (#3595) (4 weeks ago) [anamehra]
* 8f3c5ef5 - [warm-reboot] Add support to pass extra kernel cmdline parameters (#3192) (4 weeks ago) [Pavan Naregundi]
* 96774477 - Run yang validation in db migrator (#3102) (4 weeks ago) [ganglv]
* 9708f52b - [Mellanox] Update C256X1 SKU to be C256S1 in gcu_field.json (#3611) (4 weeks ago) [noaOrMlnx]
* 093ed4aa - [SPM] Add logic to disable the feature before stopping it and enabling it before starting (#3344) (4 weeks ago) [Vadym Hlushko]
* 7d013dff - Fix slash in path. (#3573) (5 weeks ago) [Xincun Li]
* 0af4386e - Consolidate the get running config way. (#3585) (5 weeks ago) [Xincun Li]
* 964b4895 - Fix for integer overflow of counter value if its too large (#3596) (5 weeks ago) [harjotsinghpawra]
* 3354d08a - [config] Bypass standard input for reload (#3597) (5 weeks ago) [jingwenxie]
* 7cbcfda5 - Speed up route_check script (#3544) (5 weeks ago) [Deepak Singhal]
* 329fc223 - Add support of the pensando-dpu platform to generate-dump utility. (#3557) (6 weeks ago) [BHUKYA SIDDHU]
* 0ae2ec1e - Add CLI for bmp configdb entity Enable/Disable (#3286) (6 weeks ago) [Feng-msft]
* 5b37ee6c - Vnet_route_check TCP socket for DB connection. (#3578) (6 weeks ago) [siqbal1986]
* d64a90a0 - Adds logic to get default disk and check disk type (#3399) (6 weeks ago) [Ashwin Srinivasan]
* b2b97340 - [Banner] Added CLI commands to configure Banner and display current configuration (#3021) (6 weeks ago) [Sviatoslav Boichuk]
* d0aa94a1 - Revert "Record and warn tables which not covered by YANG (#3583)" (#3588) (7 weeks ago) [jingwenxie]
* aeda86a1 - Record and warn tables which not covered by YANG (#3583) (7 weeks ago) [jingwenxie]
* dd34d7c4 - Revert "Skip default lanes dup check (#3489)" (#3572) (7 weeks ago) [Xincun Li]
* 6c8007fa - [Mellanox]Remove deprecated sdk sniffer cli and collect sdk dump in show techsupport (#3491) (7 weeks ago) [Yuanzhe]
* 89bb87ad - Add YANG validation for config reload if file is given (#3576) (7 weeks ago) [jingwenxie]
```
#### How I did it
#### How to verify it
#### Description for the changelog
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants