)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"374504b5837904efeeb646c2198069f2dbeec8b8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"bcd45d65_39d88184","updated":"2026-10-12 16:38:28.000000000","message":"I think the expectation was that your deployment tools configures order between libvirt daemon and ceilometer-compute agent to ensure it start ceilometer-compute AFTER libvirt daemon is started, but I understand the current behavior is a bit annoying and agree with the change","commit_id":"ca4ca82020567ffa934bc4d2697d44dfce85cb8c"},{"author":{"_account_id":39513,"name":"Eric Seidler","display_name":"Eric Seidler","email":"eric.seidler@gmail.com","username":"etseidler"},"change_message_id":"3b73fde9d7376eb0c81da16d05ff273542029f86","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"03215f42_6f698f9a","updated":"2026-11-04 23:17:14.000000000","message":"Tested this against our 2026.1 deployment (kolla ceilometer-compute image, ceilometer 26.0.0.0rc2.dev3) and it fixes the problem for us.\n\nWe hit this on 5 compute nodes. needrestart restarted the ceilometer and libvirt containers at the same time, ceilometer came back first, and those agents loaded no libvirt pollsters and stayed silent for weeks with nothing in the log above DEBUG.\n\nTo reproduce I pointed libvirt_uri at the test driver with the node file missing at startup, then created the file 45s later:\n\nwithout this change: every compute pollster is skipped at startup and nothing polls after libvirt comes up\nwith this change: one warning at startup, and polling starts as soon as libvirt is reachable\nlibvirt up first: same as before, normal polling\nWould it be possible to backport this to stable/2026.1 once it merges? Happy to test the backport too.","commit_id":"1922ecdc10a5cb8276e57d633f99e6a1dc8c23b8"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"e0a7684a777137f34f42da0007b4a1b23ed60d71","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1555ab15_387c59e8","in_reply_to":"03215f42_6f698f9a","updated":"2026-11-05 01:28:41.000000000","message":"Could you report a bug if you want this backported ?\n\nAlso as I said in general we expect the deployment tool ensures service order and it sounds like a kolla bug starting libvirt and ceilometer independently. However I understand this is a bit annoying from operators perspective and am for \"fixing\" it.","commit_id":"1922ecdc10a5cb8276e57d633f99e6a1dc8c23b8"}],"ceilometer/compute/virt/libvirt/inspector.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"374504b5837904efeeb646c2198069f2dbeec8b8","unresolved":true,"context_lines":[{"line_number":39,"context_line":"        try:"},{"line_number":40,"context_line":"            self.connection"},{"line_number":41,"context_line":"        except Exception as e:"},{"line_number":42,"context_line":"            if libvirt is None or not isinstance(e, libvirt.libvirtError):"},{"line_number":43,"context_line":"                raise"},{"line_number":44,"context_line":"            # libvirtd may simply not be up yet, e.g. when the host reboots"},{"line_number":45,"context_line":"            # and the agent starts first. Raising here fails the setup of"}],"source_content_type":"text/x-python","patch_set":1,"id":"79ba0bcd_ad7744b2","line":42,"range":{"start_line":42,"start_character":12,"end_line":42,"end_character":30},"updated":"2026-10-12 16:38:28.000000000","message":"We can catch ImportError for this.","commit_id":"ca4ca82020567ffa934bc4d2697d44dfce85cb8c"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"374504b5837904efeeb646c2198069f2dbeec8b8","unresolved":true,"context_lines":[{"line_number":39,"context_line":"        try:"},{"line_number":40,"context_line":"            self.connection"},{"line_number":41,"context_line":"        except Exception as e:"},{"line_number":42,"context_line":"            if libvirt is None or not isinstance(e, libvirt.libvirtError):"},{"line_number":43,"context_line":"                raise"},{"line_number":44,"context_line":"            # libvirtd may simply not be up yet, e.g. when the host reboots"},{"line_number":45,"context_line":"            # and the agent starts first. Raising here fails the setup of"}],"source_content_type":"text/x-python","patch_set":1,"id":"fb0d574f_ed97b032","line":42,"range":{"start_line":42,"start_character":38,"end_line":42,"end_character":73},"updated":"2026-10-12 16:38:28.000000000","message":"and then this can be implemented by `except libvirt.libvirtError`.","commit_id":"ca4ca82020567ffa934bc4d2697d44dfce85cb8c"},{"author":{"_account_id":39426,"name":"fivetime","display_name":"fivetime","email":"td@fivetime.ltd","username":"fivetime"},"change_message_id":"8892af84cbdb88613e226b691b33ea20518651fa","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        try:"},{"line_number":40,"context_line":"            self.connection"},{"line_number":41,"context_line":"        except Exception as e:"},{"line_number":42,"context_line":"            if libvirt is None or not isinstance(e, libvirt.libvirtError):"},{"line_number":43,"context_line":"                raise"},{"line_number":44,"context_line":"            # libvirtd may simply not be up yet, e.g. when the host reboots"},{"line_number":45,"context_line":"            # and the agent starts first. Raising here fails the setup of"}],"source_content_type":"text/x-python","patch_set":1,"id":"8ac04662_85265e9c","line":42,"in_reply_to":"79ba0bcd_ad7744b2","updated":"2026-10-20 07:56:46.000000000","message":"Done in patch set 2: a missing python-libvirt module surfaces as the ImportError new_libvirt_connection() raises, which is re-raised explicitly; the existing test_libvirt_module_missing case covers it.","commit_id":"ca4ca82020567ffa934bc4d2697d44dfce85cb8c"},{"author":{"_account_id":39426,"name":"fivetime","display_name":"fivetime","email":"td@fivetime.ltd","username":"fivetime"},"change_message_id":"8892af84cbdb88613e226b691b33ea20518651fa","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        try:"},{"line_number":40,"context_line":"            self.connection"},{"line_number":41,"context_line":"        except Exception as e:"},{"line_number":42,"context_line":"            if libvirt is None or not isinstance(e, libvirt.libvirtError):"},{"line_number":43,"context_line":"                raise"},{"line_number":44,"context_line":"            # libvirtd may simply not be up yet, e.g. when the host reboots"},{"line_number":45,"context_line":"            # and the agent starts first. Raising here fails the setup of"}],"source_content_type":"text/x-python","patch_set":1,"id":"27ecc9cc_db873a0b","line":42,"in_reply_to":"fb0d574f_ed97b032","updated":"2026-10-20 07:56:46.000000000","message":"Done in patch set 2: the libvirt case is now `except libvirt.libvirtError`, and anything else propagates as before. I also shortened the comment.","commit_id":"ca4ca82020567ffa934bc4d2697d44dfce85cb8c"}],"releasenotes/notes/libvirt-connect-at-startup-977c54bfaf800a45.yaml":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"374504b5837904efeeb646c2198069f2dbeec8b8","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The libvirt compute pollsters are no longer dropped when libvirtd is not"},{"line_number":5,"context_line":"    reachable yet while ceilometer-polling starts, for example when the host"},{"line_number":6,"context_line":"    reboots and the agent comes up before libvirtd. Previously every libvirt"},{"line_number":7,"context_line":"    pollster (``cpu``, ``memory.usage``, ``disk.device.*``, ``network.*``)"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"41306f81_ef306e17","line":4,"range":{"start_line":4,"start_character":61,"end_line":4,"end_character":69},"updated":"2026-10-12 16:38:28.000000000","message":"I\u0027d phrase libvirt daemon because in modular libvirt setup virtqemud is the actual daemon name.","commit_id":"ca4ca82020567ffa934bc4d2697d44dfce85cb8c"},{"author":{"_account_id":39426,"name":"fivetime","display_name":"fivetime","email":"td@fivetime.ltd","username":"fivetime"},"change_message_id":"8892af84cbdb88613e226b691b33ea20518651fa","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The libvirt compute pollsters are no longer dropped when libvirtd is not"},{"line_number":5,"context_line":"    reachable yet while ceilometer-polling starts, for example when the host"},{"line_number":6,"context_line":"    reboots and the agent comes up before libvirtd. Previously every libvirt"},{"line_number":7,"context_line":"    pollster (``cpu``, ``memory.usage``, ``disk.device.*``, ``network.*``)"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"799db5a2_7ae79f6b","line":4,"in_reply_to":"41306f81_ef306e17","updated":"2026-10-20 07:56:46.000000000","message":"Done in patch set 2: \"the libvirt daemon\".","commit_id":"ca4ca82020567ffa934bc4d2697d44dfce85cb8c"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"374504b5837904efeeb646c2198069f2dbeec8b8","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The libvirt compute pollsters are no longer dropped when libvirtd is not"},{"line_number":5,"context_line":"    reachable yet while ceilometer-polling starts, for example when the host"},{"line_number":6,"context_line":"    reboots and the agent comes up before libvirtd. Previously every libvirt"},{"line_number":7,"context_line":"    pollster (``cpu``, ``memory.usage``, ``disk.device.*``, ``network.*``)"},{"line_number":8,"context_line":"    was skipped for the lifetime of the process, with the reason logged only"},{"line_number":9,"context_line":"    at DEBUG level. A warning is now logged and the connection is retried at"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"c3bac63e_5ae23e52","line":6,"range":{"start_line":6,"start_character":42,"end_line":6,"end_character":50},"updated":"2026-10-12 16:38:28.000000000","message":"ditto","commit_id":"ca4ca82020567ffa934bc4d2697d44dfce85cb8c"},{"author":{"_account_id":39426,"name":"fivetime","display_name":"fivetime","email":"td@fivetime.ltd","username":"fivetime"},"change_message_id":"8892af84cbdb88613e226b691b33ea20518651fa","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    The libvirt compute pollsters are no longer dropped when libvirtd is not"},{"line_number":5,"context_line":"    reachable yet while ceilometer-polling starts, for example when the host"},{"line_number":6,"context_line":"    reboots and the agent comes up before libvirtd. Previously every libvirt"},{"line_number":7,"context_line":"    pollster (``cpu``, ``memory.usage``, ``disk.device.*``, ``network.*``)"},{"line_number":8,"context_line":"    was skipped for the lifetime of the process, with the reason logged only"},{"line_number":9,"context_line":"    at DEBUG level. A warning is now logged and the connection is retried at"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"240de25b_37a30d37","line":6,"in_reply_to":"c3bac63e_5ae23e52","updated":"2026-10-20 07:56:46.000000000","message":"Done in patch set 2, here too.","commit_id":"ca4ca82020567ffa934bc4d2697d44dfce85cb8c"}]}
