)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"4af40da5b6e0725d4e449d59aae1369f5a7f1d54","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     619ef356 (Select the FPGA programming driver by control path)"},{"line_number":2,"context_line":"Author:     Chandan \u003cchkumar@redhat.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2026-10-23 18:07:02 +0530"},{"line_number":4,"context_line":"Commit:     chandan kumar \u003cchkumar@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"4b2d9e4f_09b6767a","line":1,"updated":"2026-10-28 15:53:18.000000000","message":"The message claims a repeated name makes the agent \u0027report the same control path from both instances and fail later during discovery\u0027. At the review base (619ef35), acc_drivers is a dict keyed by driver name, so a repeated name loads the plugin twice but the second instance overwrites the first dict entry; discovery runs once per unique name and check_duplicate_devices() can never trip. The actual pre-fix symptoms were a redundant plugin instantiation and a silent overwrite that masked the configuration error. (The claim was true before commit 32caf7f, where acc_drivers was a list, but not for the parent state this change modifies.)\n\n**Severity**: WARNING | **Confidence**: 0.85\n\n**Impact**: Future readers, backporters, and release-note archaeologists will search for a discovery failure that duplicates never caused in the parent state. The inaccurate motivation obscures the real harm (double plugin load plus silent overwrite hiding a config error) and erodes trust in the permanent history.\n\n**Suggestion**:\nReword the motivation to the observable parent behavior: a repeated name loads the plugin twice and the second instance silently replaces the first, masking the misconfiguration; the fix detects the error before any driver plugin is loaded.","commit_id":"e55876ae8a1fa2242f167fdcf6190277231b8033"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0140e20c56126ec3b5b2c2a437bfc811da4fd961","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"62671d6b_bd8e9df6","updated":"2026-10-28 13:45:02.000000000","message":"needs a rebase but looks good to me","commit_id":"d65906d20a74ef0cb437f6420e88b1bb118e78b9"}],"cyborg/tests/unit/agent/test_resource_tracker.py":[{"author":{"_account_id":28006,"name":"teim-ci","display_name":"teim-ci","email":"ci@seanmooney.info","username":"ci-sean-mooney","status":"this is a third-party ci account run by sean-k-mooney on irc\nhosted at zuul.teim.app"},"tag":"autogenerated:zuul:automatic-ci","change_message_id":"71890cf883a2647c51600d890f474503f8e1f84c","unresolved":false,"context_lines":[{"line_number":228,"context_line":"            enabled_drivers\u003d[\u0027fake_driver\u0027, \u0027pci_driver\u0027, \u0027fake_driver\u0027],"},{"line_number":229,"context_line":"            group\u003d\u0027agent\u0027,"},{"line_number":230,"context_line":"        )"},{"line_number":231,"context_line":"        with mock.patch("},{"line_number":232,"context_line":"            \u0027cyborg.agent.resource_tracker.ExtensionManager\u0027"},{"line_number":233,"context_line":"        ) as extensions:"},{"line_number":234,"context_line":"            exc \u003d self.assertRaises("}],"source_content_type":"text/x-python","patch_set":4,"id":"8777381a_400d2a15","line":231,"updated":"2026-10-28 16:10:00.000000000","message":"The newly added duplicate-driver test mocks ExtensionManager with a plain MagicMock: mock.patch(\u0027cyborg.agent.resource_tracker.ExtensionManager\u0027) without autospec. The same file patches this identical target with autospec\u003dTrue in test_initialize_drivers_does_not_call_init_host, and the supplied style guide quick rules recommend autospec\u003dTrue for all mock.patch usage (listing the decorator form without it as forbidden pattern H210). Without autospec the mock accepts any call signature, so the regression guard is weaker than the neighboring tests.\n\n**Severity**: SUGGESTION | **Confidence**: 0.85\n\n**Impact**: A non-autospec mock accepts arbitrary calls and arguments, so the assertion that no plugin manager is constructed before configuration validation is enforced less strictly than in neighboring tests; a future reorder that constructs ExtensionManager with unexpected arguments would not be caught by signature checking.\n\n**Recommendation**:\nAdd autospec\u003dTrue to match the file convention: with mock.patch(\u0027cyborg.agent.resource_tracker.ExtensionManager\u0027, autospec\u003dTrue) as extensions: — mirroring test_initialize_drivers_does_not_call_init_host in the same module.","commit_id":"c61a07e1af789704b9c2ad746460ffc62674e7cc"}]}
