)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"d896f2a243633c533734795d37488a2b27d168a8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"0d54f5cc_0a547dab","updated":"2025-01-17 15:30:11.000000000","message":"Thanks\n\nPlease can you add a release note explaining that fact?\n\nhttps://docs.openstack.org/reno/latest/user/usage.html","commit_id":"27a18c1d07d7043daa11082a17e1c8f7f2af907a"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"aa580bce343718b13290ab20cb5bea4d024de3fd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"18a9fa11_42bde1ed","updated":"2025-01-20 19:02:03.000000000","message":"The new implementation by using pid as fallback seems ok to me","commit_id":"cfd245623316b9ddd61969ae7c90f091bf536108"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"fa4fd1421e16a7a227ac9fdd2d3982f60af87473","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ddf702a0_12909f8a","updated":"2025-01-30 07:18:00.000000000","message":"0 in podman makes sense after some reading what is this problematic about .. we should exec our commands with \u0027-t\u0027 when we want to have those calls compatible while using docker/podman I would say.","commit_id":"4e9f39e8c75cd79d3370cf0e5e4b72412acb04ca"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"8b22c8aa464d1a6304eaff2a6ac0415f0a1e0367","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"34a7edaa_20e1ef21","updated":"2025-01-29 15:58:05.000000000","message":"The containers devs merged a fix into crun: https://github.com/containers/crun/issues/1642\n\nHowever, I\u0027d still like us to get a workaround into oslo.messaging if possible. We want to support using queue manager in Caracal in Kolla-Ansible, so users can migrate away from transient queues before upgrading to RabbitMQ v4.0 in Epoxy.\n\nThinking on it further, I think the earlier version of the patch is better. We\u0027re only seeing pgrp 0 when using `podman exec *`, which will always create a new process group anyway. I don\u0027t know of a way to get pgrp 0 outside of a containerised deployment? So it seems fine to just fallback to pid for checking the time since boot.","commit_id":"4e9f39e8c75cd79d3370cf0e5e4b72412acb04ca"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"5408f4c6361318134aeac68437eff16113f074bc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"3df872e8_102d5e51","updated":"2025-01-21 13:40:52.000000000","message":"adding my -1 while waiting for verdict in the podman issue, seems like this might be a low-level diff in implementation details","commit_id":"4e9f39e8c75cd79d3370cf0e5e4b72412acb04ca"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"a321fab23a35f5d216f16e4f2180ae3368dd237a","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"a44c490c_0da0567e","in_reply_to":"0b26ad53_55598526","updated":"2025-01-30 10:51:52.000000000","message":"yeah, I agree, pgid is 0 only in crun (default using podman) so I think it\u0027s ok to add a note to the code and fallback ...what I was saying that from Kolla side is fine for now to add -t and then it\u0027s also backportable.","commit_id":"4e9f39e8c75cd79d3370cf0e5e4b72412acb04ca"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"49a83683663ccfe2abff2bce37683a8bc664316f","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"8e81ffcd_2d1aee9e","in_reply_to":"0dc69b7a_b8b00869","updated":"2025-01-30 10:06:34.000000000","message":"But podman is always returning pgid if you are not using -t. If you will read several websites about this you will just find that podman\u0027s pgpid \u003d 0 is correct and if you want to ged nonZero, you can use -t.\n\nAlso, if you check our kolla-ansible code ...everything is using -t (or together with interactive)\n\n\n```\nmichalarbet@pixla:~/ultimum/git/upstream/kolla-ansible$ grep -ri \u0027.*container.*engine.*exec\u0027  | grep -v \u0027\\-.*t\u0027\nansible/roles/bifrost/tasks/bootstrap.yml:     {{ kolla_container_engine }} exec bifrost_deploy\nansible/roles/bifrost/tasks/bootstrap.yml:     {{ kolla_container_engine }} exec bifrost_deploy\nansible/roles/bifrost/tasks/bootstrap.yml:     {{ kolla_container_engine }} exec bifrost_deploy\nansible/roles/bifrost/tasks/reconfigure.yml:  command: \"{{ kolla_container_engine }} exec {{ item.name }} /usr/local/bin/kolla_set_configs --check\"\nansible/roles/bifrost/tasks/stop.yml:          command: \"{{ kolla_container_engine }} exec bifrost_deploy systemctl stop {{ item }}.service\"\nansible/roles/etcd/tasks/bootstrap_cluster.yml:    {{ kolla_container_engine }} exec {{ service.container_name }}\nansible/roles/etcd/tasks/bootstrap_services.yml:    {{ kolla_container_engine }} exec {{ service.container_name }}\nansible/roles/etcd/tasks/lookup_leader.yml:    {{ kolla_container_engine }} exec\nansible/roles/etcd/tasks/remove_deleted_members.yml:    {{ kolla_container_engine }} exec {{ service.container_name }}\nansible/roles/etcd/tasks/remove_deleted_members.yml:    {{ kolla_container_engine }} exec {{ service.container_name }}\nansible/roles/etcd/tasks/restart_services.yml:    {{ kolla_container_engine }} exec {{ service.container_name }}\nansible/roles/hacluster/tasks/bootstrap_service.yml:    {{ kolla_container_engine }} exec {{ pacemaker_service.container_name }}\nansible/roles/ironic/tasks/upgrade.yml:    {{ kolla_container_engine }} exec kolla_toolbox openstack\nansible/roles/keystone/tasks/register.yml:    {{ kolla_container_engine }} exec keystone kolla_keystone_bootstrap\nansible/roles/loadbalancer/tasks/config_validate.yml:    {{ kolla_container_engine }} exec -i haproxy haproxy\nansible/roles/mariadb/handlers/main.yml:    {{ kolla_container_engine }} exec {{ mariadb_service.container_name }}\nansible/roles/mariadb/tasks/check.yml:    {{ kolla_container_engine }} exec {{ mariadb_service.container_name }}\nansible/roles/mariadb/tasks/lookup_cluster.yml:            {{ kolla_container_engine }} exec {{ mariadb_service.container_name }}\nansible/roles/mariadb/tasks/restart_services.yml:    {{ kolla_container_engine }} exec {{ mariadb_service.container_name }}\nansible/roles/mariadb/tasks/recover_cluster.yml:    {{ kolla_container_engine }} exec {{ mariadb_service.container_name }}\n```\n\nOn the contrary, I think that where we are missing -t, we should add it precisely because of this.","commit_id":"4e9f39e8c75cd79d3370cf0e5e4b72412acb04ca"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"2140982c44efff498ab9337b44a3d47fc4121380","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"46f2ff61_3534abf8","in_reply_to":"34a7edaa_20e1ef21","updated":"2025-01-29 20:52:10.000000000","message":"I\u0027d prefer the previous version also.\nBut, new question raised: how a nova-manage command is executing code from oslo.messaging code? Is that intended? Maybe nova-manage is loading too much code?","commit_id":"4e9f39e8c75cd79d3370cf0e5e4b72412acb04ca"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"0bb3f3e4560604b6d817b712317d7b1c95aa1d90","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"fe0a67b5_cff4e317","in_reply_to":"46f2ff61_3534abf8","updated":"2025-01-30 09:37:41.000000000","message":"I\u0027m not a Nova dev, but I can provide a traceback:\n\n```\n        \"Traceback (most recent call last):\",\n        \"  File \\\"/var/lib/kolla/venv/bin/nova-manage\\\", line 8, in \u003cmodule\u003e\",\n        \"    sys.exit(main())\",\n        \"             ^^^^^^\",\n        \"  File \\\"/var/lib/kolla/venv/lib/python3.11/site-packages/nova/cmd/manage.py\\\", line 3815, in main\",\n        \"    config.parse_args(sys.argv)\",\n        \"  File \\\"/var/lib/kolla/venv/lib/python3.11/site-packages/nova/config.py\\\", line 101, in parse_args\",\n        \"    rpc.init(CONF)\",\n        \"  File \\\"/var/lib/kolla/venv/lib/python3.11/site-packages/nova/rpc.py\\\", line 68, in init\",\n        \"    TRANSPORT \u003d create_transport(get_transport_url())\",\n        \"                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\",\n        \"  File \\\"/var/lib/kolla/venv/lib/python3.11/site-packages/nova/rpc.py\\\", line 255, in create_transport\",\n        \"    return messaging.get_rpc_transport(CONF,\",\n        \"           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\",\n        \"  File \\\"/var/lib/kolla/venv/lib/python3.11/site-packages/oslo_messaging/rpc/transport.py\\\", line 50, in get_rpc_transport\",\n        \"    return msg_transport._get_transport(\",\n        \"           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\",\n        \"  File \\\"/var/lib/kolla/venv/lib/python3.11/site-packages/oslo_messaging/transport.py\\\", line 205, in _get_transport\",\n        \"    mgr \u003d driver.DriverManager(\u0027oslo.messaging.drivers\u0027,\",\n        \"          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\",\n        \"  File \\\"/var/lib/kolla/venv/lib/python3.11/site-packages/stevedore/driver.py\\\", line 54, in __init__\",\n        \"    super().__init__(\",\n        \"  File \\\"/var/lib/kolla/venv/lib/python3.11/site-packages/stevedore/named.py\\\", line 78, in __init__\",\n        \"    extensions \u003d self._load_plugins(invoke_on_load,\",\n        \"                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\",\n        \"  File \\\"/var/lib/kolla/venv/lib/python3.11/site-packages/stevedore/extension.py\\\", line 218, in _load_plugins\",\n        \"    self._on_load_failure_callback(self, ep, err)\",\n        \"  File \\\"/var/lib/kolla/venv/lib/python3.11/site-packages/stevedore/extension.py\\\", line 206, in _load_plugins\",\n        \"    ext \u003d self._load_one_plugin(ep,\",\n        \"          ^^^^^^^^^^^^^^^^^^^^^^^^^\",\n        \"  File \\\"/var/lib/kolla/venv/lib/python3.11/site-packages/stevedore/named.py\\\", line 156, in _load_one_plugin\",\n        \"    return super()._load_one_plugin(\",\n        \"           ^^^^^^^^^^^^^^^^^^^^^^^^^\",\n        \"  File \\\"/var/lib/kolla/venv/lib/python3.11/site-packages/stevedore/extension.py\\\", line 242, in _load_one_plugin\",\n        \"    obj \u003d plugin(*invoke_args, **invoke_kwds)\",\n        \"          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\",\n        \"  File \\\"/var/lib/kolla/venv/lib/python3.11/site-packages/oslo_messaging/_drivers/impl_rabbit.py\\\", line 1787, in __init__\",\n        \"    super().__init__(\",\n        \"  File \\\"/var/lib/kolla/venv/lib/python3.11/site-packages/oslo_messaging/_drivers/amqpdriver.py\\\", line 691, in __init__\",\n        \"    self._q_manager \u003d QManager(\",\n        \"                      ^^^^^^^^^\",\n        \"  File \\\"/var/lib/kolla/venv/lib/python3.11/site-packages/oslo_messaging/_drivers/amqpdriver.py\\\", line 73, in __init__\",\n        \"    with open(f\u0027/proc/{self.pg}/stat\u0027) as f:\",\n        \"         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\",\n        \"FileNotFoundError: [Errno 2] No such file or directory: \u0027/proc/0/stat\u0027\"\n```\n\nIt gets triggered when nova-manage is first invoked as it sets up transports for RPC calls as part of config init/parsing. \n\nnova-manage does indeed use these RPC calls in some commands.","commit_id":"4e9f39e8c75cd79d3370cf0e5e4b72412acb04ca"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"57547d09406813e877a82d5c1ad0ca02eb955836","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"e61efe47_fa59c9b1","in_reply_to":"8e81ffcd_2d1aee9e","updated":"2025-01-30 10:08:37.000000000","message":"But, i am not oslo.messaging expert .. I am ok also to merge this of course ...but kolla-ansible side is clear for me now after some reading.","commit_id":"4e9f39e8c75cd79d3370cf0e5e4b72412acb04ca"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"37d78883b42cd3b84d54bb66041809324a65bf18","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"0b26ad53_55598526","in_reply_to":"8e81ffcd_2d1aee9e","updated":"2025-01-30 10:19:49.000000000","message":"I get what you\u0027re saying, I don\u0027t disagree that we should add `-t` in Kolla-Ansible; it will workaround pgid 0. \n\nWhat I\u0027m saying is that I think it\u0027s still a valid patch here in oslo.messaging to handle when pgid is 0.","commit_id":"4e9f39e8c75cd79d3370cf0e5e4b72412acb04ca"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"0bb3f3e4560604b6d817b712317d7b1c95aa1d90","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"0dc69b7a_b8b00869","in_reply_to":"ddf702a0_12909f8a","updated":"2025-01-30 09:37:41.000000000","message":"Sorry but I don\u0027t agree that using exec with `-t` is a complete solution. While we could make that change in Kolla-Ansible and fix our immediate problem, how would we make sure everyone else using `nova-manage` does the same?","commit_id":"4e9f39e8c75cd79d3370cf0e5e4b72412acb04ca"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"49a83683663ccfe2abff2bce37683a8bc664316f","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"04b7e832_f67b4c2c","in_reply_to":"fe0a67b5_cff4e317","updated":"2025-01-30 10:06:34.000000000","message":"But podman is always returning pgid if you are not using -t. If you will read several websites about this you will just find that podman\u0027s pgpid \u003d 0 is correct and if you want to ged nonZero, you can use -t.\n\nAlso, if you check our kolla-ansible code ...everything is using -t (or together with interactive)\n\n\n```\nmichalarbet@pixla:~/ultimum/git/upstream/kolla-ansible$ grep -ri \u0027.*container.*engine.*exec\u0027  | grep -v \u0027\\-.*t\u0027\nansible/roles/bifrost/tasks/bootstrap.yml:     {{ kolla_container_engine }} exec bifrost_deploy\nansible/roles/bifrost/tasks/bootstrap.yml:     {{ kolla_container_engine }} exec bifrost_deploy\nansible/roles/bifrost/tasks/bootstrap.yml:     {{ kolla_container_engine }} exec bifrost_deploy\nansible/roles/bifrost/tasks/reconfigure.yml:  command: \"{{ kolla_container_engine }} exec {{ item.name }} /usr/local/bin/kolla_set_configs --check\"\nansible/roles/bifrost/tasks/stop.yml:          command: \"{{ kolla_container_engine }} exec bifrost_deploy systemctl stop {{ item }}.service\"\nansible/roles/etcd/tasks/bootstrap_cluster.yml:    {{ kolla_container_engine }} exec {{ service.container_name }}\nansible/roles/etcd/tasks/bootstrap_services.yml:    {{ kolla_container_engine }} exec {{ service.container_name }}\nansible/roles/etcd/tasks/lookup_leader.yml:    {{ kolla_container_engine }} exec\nansible/roles/etcd/tasks/remove_deleted_members.yml:    {{ kolla_container_engine }} exec {{ service.container_name }}\nansible/roles/etcd/tasks/remove_deleted_members.yml:    {{ kolla_container_engine }} exec {{ service.container_name }}\nansible/roles/etcd/tasks/restart_services.yml:    {{ kolla_container_engine }} exec {{ service.container_name }}\nansible/roles/hacluster/tasks/bootstrap_service.yml:    {{ kolla_container_engine }} exec {{ pacemaker_service.container_name }}\nansible/roles/ironic/tasks/upgrade.yml:    {{ kolla_container_engine }} exec kolla_toolbox openstack\nansible/roles/keystone/tasks/register.yml:    {{ kolla_container_engine }} exec keystone kolla_keystone_bootstrap\nansible/roles/loadbalancer/tasks/config_validate.yml:    {{ kolla_container_engine }} exec -i haproxy haproxy\nansible/roles/mariadb/handlers/main.yml:    {{ kolla_container_engine }} exec {{ mariadb_service.container_name }}\nansible/roles/mariadb/tasks/check.yml:    {{ kolla_container_engine }} exec {{ mariadb_service.container_name }}\nansible/roles/mariadb/tasks/lookup_cluster.yml:            {{ kolla_container_engine }} exec {{ mariadb_service.container_name }}\nansible/roles/mariadb/tasks/restart_services.yml:    {{ kolla_container_engine }} exec {{ mariadb_service.container_name }}\nansible/roles/mariadb/tasks/recover_cluster.yml:    {{ kolla_container_engine }} exec {{ mariadb_service.container_name }}\n```\n\nOn the contrary, I think that where we are missing -t, we should add it precisely because of this.","commit_id":"4e9f39e8c75cd79d3370cf0e5e4b72412acb04ca"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"b08b338174e7e1d152bfaee55d87964f1e897745","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"67551411_e83cdf32","updated":"2025-01-31 11:02:16.000000000","message":"@mattc@stackhpc.com Sorry, I am on mobile - I can\u0027t somehow comment in a code. But shouldn\u0027t be better to give a name for variable where is pgid and if pgid is 0 then it is pid (but actually in same case in runc it is pgid \u003d pid, crun 0, pid ).\n\nWhat I am actually saying, this workaround is fixing pgid not proc_id.\nSoon, shouldn\u0027t be proc_id var renamed to pgroup_id and add comment above it ?","commit_id":"4f9242fe815213069fd02f8208e447541db0fdd0"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"d8d450521953d012ad8bf4a2529deab418ee2f54","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"88f91199_110a4dfe","updated":"2025-01-31 10:39:06.000000000","message":"Thanks for all your feedback and details, and thanks for the podman/crun discussion\n\nhttps://github.com/containers/crun/issues/1642","commit_id":"4f9242fe815213069fd02f8208e447541db0fdd0"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"95eeb33ec20619ae60e78ed40d603f36726caa47","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"bcd0a5ef_824359d5","in_reply_to":"1623b374_93bbf6f3","updated":"2025-02-03 12:46:50.000000000","message":"Done","commit_id":"4f9242fe815213069fd02f8208e447541db0fdd0"},{"author":{"_account_id":27339,"name":"Michal Arbet","email":"michal.arbet@ultimum.io","username":"michalarbet"},"change_message_id":"c01681fd648b417b6d5a282eacf2cd7435130425","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"1623b374_93bbf6f3","in_reply_to":"3e876ea9_0e99e842","updated":"2025-01-31 14:58:02.000000000","message":"okay, but still lacks of comment why we are doing there. Explanation why there is a dance with pgid and pid and pgid \u003d 0, podman, etc etc .. would by nice.","commit_id":"4f9242fe815213069fd02f8208e447541db0fdd0"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"57d66b962a303ef895f3480822c4846155d74d43","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"3e876ea9_0e99e842","in_reply_to":"67551411_e83cdf32","updated":"2025-01-31 14:55:54.000000000","message":"I think `proc_id` is an alright name, as it\u0027s subbing the pid value in the `/proc/pid/stat` nomenclature from the man page in the comment above.","commit_id":"4f9242fe815213069fd02f8208e447541db0fdd0"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"18793b0a9d479d36c0358ba0075eef3a59d7290e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"b5a04c3a_401b2616","updated":"2025-05-09 13:41:29.000000000","message":"Hi all, is there anything left blocking merging this?","commit_id":"9043d6583ec1aa8fd792d3e3cd488b00beab2994"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"3425e7fa338009bb49de32400792cb8df2977d56","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"4c179a1e_5ca1895e","updated":"2025-08-26 11:43:06.000000000","message":"It would be nice to finally get this merged...","commit_id":"9043d6583ec1aa8fd792d3e3cd488b00beab2994"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"c817d0f1a177d6bc93058cd0930217765be5fd39","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"41bef07a_35287e95","updated":"2025-08-29 08:00:59.000000000","message":"LGTM thanks for this work and sorry for my late update.","commit_id":"9043d6583ec1aa8fd792d3e3cd488b00beab2994"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"ec323bc2b1348065400f7f1d6e33e33090998a63","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"4d12fd17_c0a62146","updated":"2025-05-11 07:16:09.000000000","message":"Since the issue in podman has been fixed, is it still relevant?","commit_id":"9043d6583ec1aa8fd792d3e3cd488b00beab2994"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"80af90aa4b76f59ee31cfc4a35e2df01de33c625","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"d115ef2b_b48d0ee5","updated":"2025-08-26 11:38:25.000000000","message":"ooops, I have not spotted this one, so suggested alternative: https://review.opendev.org/c/openstack/oslo.messaging/+/958528","commit_id":"9043d6583ec1aa8fd792d3e3cd488b00beab2994"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"6464eb2d258a96ae7d786c0f6da2f984fd1c0099","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"8013f6a9_4b30fb92","in_reply_to":"3173899a_a5ce4d78","updated":"2025-08-26 11:41:31.000000000","message":"I did hit this condition with LXC just today. So likley it\u0027s still better be safe here.","commit_id":"9043d6583ec1aa8fd792d3e3cd488b00beab2994"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"8da82a01201dcfda19d64c17ae866269d7df6d3e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"3173899a_a5ce4d78","in_reply_to":"4d12fd17_c0a62146","updated":"2025-05-12 08:51:23.000000000","message":"I was thinking that it\u0027s still true we don\u0027t gracefully handle when a process group is 0, so this patch would still be useful in a sense.\n\nBut you\u0027re right, podman being fixed does mean we now don\u0027t have a known way of actually hitting this failure condition.","commit_id":"9043d6583ec1aa8fd792d3e3cd488b00beab2994"}],"oslo_messaging/_drivers/amqpdriver.py":[{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"00a391d4056e0aee83e71d283912d02cc99cdf8b","unresolved":true,"context_lines":[{"line_number":84,"context_line":"            # Grab the counter from shm"},{"line_number":85,"context_line":"            # This function is thread and process safe thanks to lockutils"},{"line_number":86,"context_line":"            try:"},{"line_number":87,"context_line":"                with open(self.file_name) as f:"},{"line_number":88,"context_line":"                    pg, counter, start_time \u003d f.readline().split(\u0027:\u0027)"},{"line_number":89,"context_line":"                    pg \u003d int(pg)"},{"line_number":90,"context_line":"                    counter \u003d int(counter)"},{"line_number":91,"context_line":"                    start_time \u003d int(start_time)"},{"line_number":92,"context_line":"            except (FileNotFoundError, ValueError):"},{"line_number":93,"context_line":"                pg \u003d self.pg"},{"line_number":94,"context_line":"                counter \u003d 0"},{"line_number":95,"context_line":"                start_time \u003d self.start_time"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"            # Increment the counter"},{"line_number":98,"context_line":"            if pg \u003d\u003d self.pg and start_time \u003d\u003d self.start_time:"},{"line_number":99,"context_line":"                counter +\u003d 1"},{"line_number":100,"context_line":"            else:"},{"line_number":101,"context_line":"                # The process group is changed, or start time since system boot"},{"line_number":102,"context_line":"                # differs. Maybe service restarted ?"},{"line_number":103,"context_line":"                # Start over the counter"},{"line_number":104,"context_line":"                counter \u003d 1"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"            # Write the new counter"},{"line_number":107,"context_line":"            with open(self.file_name, \u0027w\u0027) as f:"},{"line_number":108,"context_line":"                f.write(str(self.pg) + \u0027:\u0027 + str(counter) + \u0027:\u0027 +"},{"line_number":109,"context_line":"                        str(start_time))"},{"line_number":110,"context_line":"            return counter"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        counter \u003d read_from_shm()"}],"source_content_type":"text/x-python","patch_set":1,"id":"cfc073a6_cd657f6b","line":109,"range":{"start_line":87,"start_character":0,"end_line":109,"end_character":40},"updated":"2025-01-17 15:33:34.000000000","message":"This part of the code, in some way, also rely on the process group, should we not also adapt it?","commit_id":"27a18c1d07d7043daa11082a17e1c8f7f2af907a"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"530827b2c4be18ad5c4a1a01d517e182010f84d9","unresolved":true,"context_lines":[{"line_number":84,"context_line":"            # Grab the counter from shm"},{"line_number":85,"context_line":"            # This function is thread and process safe thanks to lockutils"},{"line_number":86,"context_line":"            try:"},{"line_number":87,"context_line":"                with open(self.file_name) as f:"},{"line_number":88,"context_line":"                    pg, counter, start_time \u003d f.readline().split(\u0027:\u0027)"},{"line_number":89,"context_line":"                    pg \u003d int(pg)"},{"line_number":90,"context_line":"                    counter \u003d int(counter)"},{"line_number":91,"context_line":"                    start_time \u003d int(start_time)"},{"line_number":92,"context_line":"            except (FileNotFoundError, ValueError):"},{"line_number":93,"context_line":"                pg \u003d self.pg"},{"line_number":94,"context_line":"                counter \u003d 0"},{"line_number":95,"context_line":"                start_time \u003d self.start_time"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"            # Increment the counter"},{"line_number":98,"context_line":"            if pg \u003d\u003d self.pg and start_time \u003d\u003d self.start_time:"},{"line_number":99,"context_line":"                counter +\u003d 1"},{"line_number":100,"context_line":"            else:"},{"line_number":101,"context_line":"                # The process group is changed, or start time since system boot"},{"line_number":102,"context_line":"                # differs. Maybe service restarted ?"},{"line_number":103,"context_line":"                # Start over the counter"},{"line_number":104,"context_line":"                counter \u003d 1"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"            # Write the new counter"},{"line_number":107,"context_line":"            with open(self.file_name, \u0027w\u0027) as f:"},{"line_number":108,"context_line":"                f.write(str(self.pg) + \u0027:\u0027 + str(counter) + \u0027:\u0027 +"},{"line_number":109,"context_line":"                        str(start_time))"},{"line_number":110,"context_line":"            return counter"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        counter \u003d read_from_shm()"}],"source_content_type":"text/x-python","patch_set":1,"id":"f6fbd755_06e413da","line":109,"range":{"start_line":87,"start_character":0,"end_line":109,"end_character":40},"in_reply_to":"064a79b5_d10d5786","updated":"2025-01-19 10:16:53.000000000","message":"I don\u0027t think we need to change anything here because we want to use pg for all processes that were started together.\n\nStill, one question raised here: why pg is 0 in podman context? That feels wrong to me\n\nAlso, if we take start time from PID instead of PG, I am affraid that we could have different start time per process and keep restarting the counter.\n\nInstead, maybe we should catch the fact that pg \u003d\u003d 0 and avoid reading stat in that situation?","commit_id":"27a18c1d07d7043daa11082a17e1c8f7f2af907a"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"c817d0f1a177d6bc93058cd0930217765be5fd39","unresolved":false,"context_lines":[{"line_number":84,"context_line":"            # Grab the counter from shm"},{"line_number":85,"context_line":"            # This function is thread and process safe thanks to lockutils"},{"line_number":86,"context_line":"            try:"},{"line_number":87,"context_line":"                with open(self.file_name) as f:"},{"line_number":88,"context_line":"                    pg, counter, start_time \u003d f.readline().split(\u0027:\u0027)"},{"line_number":89,"context_line":"                    pg \u003d int(pg)"},{"line_number":90,"context_line":"                    counter \u003d int(counter)"},{"line_number":91,"context_line":"                    start_time \u003d int(start_time)"},{"line_number":92,"context_line":"            except (FileNotFoundError, ValueError):"},{"line_number":93,"context_line":"                pg \u003d self.pg"},{"line_number":94,"context_line":"                counter \u003d 0"},{"line_number":95,"context_line":"                start_time \u003d self.start_time"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"            # Increment the counter"},{"line_number":98,"context_line":"            if pg \u003d\u003d self.pg and start_time \u003d\u003d self.start_time:"},{"line_number":99,"context_line":"                counter +\u003d 1"},{"line_number":100,"context_line":"            else:"},{"line_number":101,"context_line":"                # The process group is changed, or start time since system boot"},{"line_number":102,"context_line":"                # differs. Maybe service restarted ?"},{"line_number":103,"context_line":"                # Start over the counter"},{"line_number":104,"context_line":"                counter \u003d 1"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"            # Write the new counter"},{"line_number":107,"context_line":"            with open(self.file_name, \u0027w\u0027) as f:"},{"line_number":108,"context_line":"                f.write(str(self.pg) + \u0027:\u0027 + str(counter) + \u0027:\u0027 +"},{"line_number":109,"context_line":"                        str(start_time))"},{"line_number":110,"context_line":"            return counter"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        counter \u003d read_from_shm()"}],"source_content_type":"text/x-python","patch_set":1,"id":"ecd1226b_09ebbd7f","line":109,"range":{"start_line":87,"start_character":0,"end_line":109,"end_character":40},"in_reply_to":"545b6b98_ef3f0d8f","updated":"2025-08-29 08:00:59.000000000","message":"Done","commit_id":"27a18c1d07d7043daa11082a17e1c8f7f2af907a"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"eb58db23cdbf31c2c492d8d69f660e0b1c3a06f6","unresolved":true,"context_lines":[{"line_number":84,"context_line":"            # Grab the counter from shm"},{"line_number":85,"context_line":"            # This function is thread and process safe thanks to lockutils"},{"line_number":86,"context_line":"            try:"},{"line_number":87,"context_line":"                with open(self.file_name) as f:"},{"line_number":88,"context_line":"                    pg, counter, start_time \u003d f.readline().split(\u0027:\u0027)"},{"line_number":89,"context_line":"                    pg \u003d int(pg)"},{"line_number":90,"context_line":"                    counter \u003d int(counter)"},{"line_number":91,"context_line":"                    start_time \u003d int(start_time)"},{"line_number":92,"context_line":"            except (FileNotFoundError, ValueError):"},{"line_number":93,"context_line":"                pg \u003d self.pg"},{"line_number":94,"context_line":"                counter \u003d 0"},{"line_number":95,"context_line":"                start_time \u003d self.start_time"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"            # Increment the counter"},{"line_number":98,"context_line":"            if pg \u003d\u003d self.pg and start_time \u003d\u003d self.start_time:"},{"line_number":99,"context_line":"                counter +\u003d 1"},{"line_number":100,"context_line":"            else:"},{"line_number":101,"context_line":"                # The process group is changed, or start time since system boot"},{"line_number":102,"context_line":"                # differs. Maybe service restarted ?"},{"line_number":103,"context_line":"                # Start over the counter"},{"line_number":104,"context_line":"                counter \u003d 1"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"            # Write the new counter"},{"line_number":107,"context_line":"            with open(self.file_name, \u0027w\u0027) as f:"},{"line_number":108,"context_line":"                f.write(str(self.pg) + \u0027:\u0027 + str(counter) + \u0027:\u0027 +"},{"line_number":109,"context_line":"                        str(start_time))"},{"line_number":110,"context_line":"            return counter"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        counter \u003d read_from_shm()"}],"source_content_type":"text/x-python","patch_set":1,"id":"064a79b5_d10d5786","line":109,"range":{"start_line":87,"start_character":0,"end_line":109,"end_character":40},"in_reply_to":"7e934623_9432d521","updated":"2025-01-18 13:37:02.000000000","message":"Feels wrong that this just changes place in the codepath indeed","commit_id":"27a18c1d07d7043daa11082a17e1c8f7f2af907a"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"3bdcc7f541c29932fd940215689993781037c861","unresolved":true,"context_lines":[{"line_number":84,"context_line":"            # Grab the counter from shm"},{"line_number":85,"context_line":"            # This function is thread and process safe thanks to lockutils"},{"line_number":86,"context_line":"            try:"},{"line_number":87,"context_line":"                with open(self.file_name) as f:"},{"line_number":88,"context_line":"                    pg, counter, start_time \u003d f.readline().split(\u0027:\u0027)"},{"line_number":89,"context_line":"                    pg \u003d int(pg)"},{"line_number":90,"context_line":"                    counter \u003d int(counter)"},{"line_number":91,"context_line":"                    start_time \u003d int(start_time)"},{"line_number":92,"context_line":"            except (FileNotFoundError, ValueError):"},{"line_number":93,"context_line":"                pg \u003d self.pg"},{"line_number":94,"context_line":"                counter \u003d 0"},{"line_number":95,"context_line":"                start_time \u003d self.start_time"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"            # Increment the counter"},{"line_number":98,"context_line":"            if pg \u003d\u003d self.pg and start_time \u003d\u003d self.start_time:"},{"line_number":99,"context_line":"                counter +\u003d 1"},{"line_number":100,"context_line":"            else:"},{"line_number":101,"context_line":"                # The process group is changed, or start time since system boot"},{"line_number":102,"context_line":"                # differs. Maybe service restarted ?"},{"line_number":103,"context_line":"                # Start over the counter"},{"line_number":104,"context_line":"                counter \u003d 1"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"            # Write the new counter"},{"line_number":107,"context_line":"            with open(self.file_name, \u0027w\u0027) as f:"},{"line_number":108,"context_line":"                f.write(str(self.pg) + \u0027:\u0027 + str(counter) + \u0027:\u0027 +"},{"line_number":109,"context_line":"                        str(start_time))"},{"line_number":110,"context_line":"            return counter"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        counter \u003d read_from_shm()"}],"source_content_type":"text/x-python","patch_set":1,"id":"545b6b98_ef3f0d8f","line":109,"range":{"start_line":87,"start_character":0,"end_line":109,"end_character":40},"in_reply_to":"c1caaff3_ef42ecc3","updated":"2025-01-21 10:16:02.000000000","message":"Good point, I\u0027ll switch to using proc_id here too.\n\nI\u0027ve raised an issue with podman asking for clarification: https://github.com/containers/podman/issues/25065","commit_id":"27a18c1d07d7043daa11082a17e1c8f7f2af907a"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"01d439c30291935dde1824196ea1f00929b29e96","unresolved":true,"context_lines":[{"line_number":84,"context_line":"            # Grab the counter from shm"},{"line_number":85,"context_line":"            # This function is thread and process safe thanks to lockutils"},{"line_number":86,"context_line":"            try:"},{"line_number":87,"context_line":"                with open(self.file_name) as f:"},{"line_number":88,"context_line":"                    pg, counter, start_time \u003d f.readline().split(\u0027:\u0027)"},{"line_number":89,"context_line":"                    pg \u003d int(pg)"},{"line_number":90,"context_line":"                    counter \u003d int(counter)"},{"line_number":91,"context_line":"                    start_time \u003d int(start_time)"},{"line_number":92,"context_line":"            except (FileNotFoundError, ValueError):"},{"line_number":93,"context_line":"                pg \u003d self.pg"},{"line_number":94,"context_line":"                counter \u003d 0"},{"line_number":95,"context_line":"                start_time \u003d self.start_time"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"            # Increment the counter"},{"line_number":98,"context_line":"            if pg \u003d\u003d self.pg and start_time \u003d\u003d self.start_time:"},{"line_number":99,"context_line":"                counter +\u003d 1"},{"line_number":100,"context_line":"            else:"},{"line_number":101,"context_line":"                # The process group is changed, or start time since system boot"},{"line_number":102,"context_line":"                # differs. Maybe service restarted ?"},{"line_number":103,"context_line":"                # Start over the counter"},{"line_number":104,"context_line":"                counter \u003d 1"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"            # Write the new counter"},{"line_number":107,"context_line":"            with open(self.file_name, \u0027w\u0027) as f:"},{"line_number":108,"context_line":"                f.write(str(self.pg) + \u0027:\u0027 + str(counter) + \u0027:\u0027 +"},{"line_number":109,"context_line":"                        str(start_time))"},{"line_number":110,"context_line":"            return counter"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        counter \u003d read_from_shm()"}],"source_content_type":"text/x-python","patch_set":1,"id":"7e934623_9432d521","line":109,"range":{"start_line":87,"start_character":0,"end_line":109,"end_character":40},"in_reply_to":"cfc073a6_cd657f6b","updated":"2025-01-18 08:41:33.000000000","message":"Any opinion?","commit_id":"27a18c1d07d7043daa11082a17e1c8f7f2af907a"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"e64aab7a02949e4a22543c6718220d6d102d149d","unresolved":true,"context_lines":[{"line_number":84,"context_line":"            # Grab the counter from shm"},{"line_number":85,"context_line":"            # This function is thread and process safe thanks to lockutils"},{"line_number":86,"context_line":"            try:"},{"line_number":87,"context_line":"                with open(self.file_name) as f:"},{"line_number":88,"context_line":"                    pg, counter, start_time \u003d f.readline().split(\u0027:\u0027)"},{"line_number":89,"context_line":"                    pg \u003d int(pg)"},{"line_number":90,"context_line":"                    counter \u003d int(counter)"},{"line_number":91,"context_line":"                    start_time \u003d int(start_time)"},{"line_number":92,"context_line":"            except (FileNotFoundError, ValueError):"},{"line_number":93,"context_line":"                pg \u003d self.pg"},{"line_number":94,"context_line":"                counter \u003d 0"},{"line_number":95,"context_line":"                start_time \u003d self.start_time"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"            # Increment the counter"},{"line_number":98,"context_line":"            if pg \u003d\u003d self.pg and start_time \u003d\u003d self.start_time:"},{"line_number":99,"context_line":"                counter +\u003d 1"},{"line_number":100,"context_line":"            else:"},{"line_number":101,"context_line":"                # The process group is changed, or start time since system boot"},{"line_number":102,"context_line":"                # differs. Maybe service restarted ?"},{"line_number":103,"context_line":"                # Start over the counter"},{"line_number":104,"context_line":"                counter \u003d 1"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"            # Write the new counter"},{"line_number":107,"context_line":"            with open(self.file_name, \u0027w\u0027) as f:"},{"line_number":108,"context_line":"                f.write(str(self.pg) + \u0027:\u0027 + str(counter) + \u0027:\u0027 +"},{"line_number":109,"context_line":"                        str(start_time))"},{"line_number":110,"context_line":"            return counter"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        counter \u003d read_from_shm()"}],"source_content_type":"text/x-python","patch_set":1,"id":"c1caaff3_ef42ecc3","line":109,"range":{"start_line":87,"start_character":0,"end_line":109,"end_character":40},"in_reply_to":"e8b703b7_143104f0","updated":"2025-01-20 20:22:16.000000000","message":"still only using self.pg and not proc_id in get() though, so the logic is still kind of broken, might be a good idea to contact podman developers and ask why it doesn\u0027t set a process group id?","commit_id":"27a18c1d07d7043daa11082a17e1c8f7f2af907a"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"95aeef6b3461569de3ea2bef7485193e40ad645e","unresolved":true,"context_lines":[{"line_number":84,"context_line":"            # Grab the counter from shm"},{"line_number":85,"context_line":"            # This function is thread and process safe thanks to lockutils"},{"line_number":86,"context_line":"            try:"},{"line_number":87,"context_line":"                with open(self.file_name) as f:"},{"line_number":88,"context_line":"                    pg, counter, start_time \u003d f.readline().split(\u0027:\u0027)"},{"line_number":89,"context_line":"                    pg \u003d int(pg)"},{"line_number":90,"context_line":"                    counter \u003d int(counter)"},{"line_number":91,"context_line":"                    start_time \u003d int(start_time)"},{"line_number":92,"context_line":"            except (FileNotFoundError, ValueError):"},{"line_number":93,"context_line":"                pg \u003d self.pg"},{"line_number":94,"context_line":"                counter \u003d 0"},{"line_number":95,"context_line":"                start_time \u003d self.start_time"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"            # Increment the counter"},{"line_number":98,"context_line":"            if pg \u003d\u003d self.pg and start_time \u003d\u003d self.start_time:"},{"line_number":99,"context_line":"                counter +\u003d 1"},{"line_number":100,"context_line":"            else:"},{"line_number":101,"context_line":"                # The process group is changed, or start time since system boot"},{"line_number":102,"context_line":"                # differs. Maybe service restarted ?"},{"line_number":103,"context_line":"                # Start over the counter"},{"line_number":104,"context_line":"                counter \u003d 1"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"            # Write the new counter"},{"line_number":107,"context_line":"            with open(self.file_name, \u0027w\u0027) as f:"},{"line_number":108,"context_line":"                f.write(str(self.pg) + \u0027:\u0027 + str(counter) + \u0027:\u0027 +"},{"line_number":109,"context_line":"                        str(start_time))"},{"line_number":110,"context_line":"            return counter"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        counter \u003d read_from_shm()"}],"source_content_type":"text/x-python","patch_set":1,"id":"e8b703b7_143104f0","line":109,"range":{"start_line":87,"start_character":0,"end_line":109,"end_character":40},"in_reply_to":"f6fbd755_06e413da","updated":"2025-01-20 13:40:45.000000000","message":"I agree, I don\u0027t think we\u0027d want to change any other uses of pg. Catching pg\u003d\u003d0 sounds like a good idea, perhaps then we fall back to using pid?\n\nI\u0027ve only been hitting this error when calling new processes in a container (nova-manage in nova-conductor specifically), which would have a new pg and so increment the counter regardless. \n\n\nI don\u0027t know why pg is 0 with podman, it doesn\u0027t seem right, especially given it\u0027s non-zero and matched pid with docker.","commit_id":"27a18c1d07d7043daa11082a17e1c8f7f2af907a"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"fdae734cdfc8f48c4d5edb4f4d9d175d08f3a1a1","unresolved":true,"context_lines":[{"line_number":86,"context_line":"            # This function is thread and process safe thanks to lockutils"},{"line_number":87,"context_line":"            try:"},{"line_number":88,"context_line":"                with open(self.file_name) as f:"},{"line_number":89,"context_line":"                    proc_id, counter, start_time \u003d f.readline().split(\u0027:\u0027)"},{"line_number":90,"context_line":"                    proc_id \u003d int(proc_id)"},{"line_number":91,"context_line":"                    counter \u003d int(counter)"},{"line_number":92,"context_line":"                    start_time \u003d int(start_time)"}],"source_content_type":"text/x-python","patch_set":5,"id":"cb36a594_487aa81f","line":89,"updated":"2025-01-21 12:30:27.000000000","message":"I think about it again and I am worried about this.\n\nIf, for any reason, we endup using pid instead of pg, the whole logic is going to be broken, and services are going to use the same queue name by constantly resetting the counter.\n\nMoreover, with podman using pg\u003d0 and the proposed fix, I believe the counter inside the container is going to be reset each time you run a podman command (because the pid is going to be different than the one used by the service running in the container).\n\n--\u003e it\u0027s broken\n\nI\u0027d rather keep the pg mechanism and either fix podman to use the correct pg or avoid going through that part of code when using nova-manage (which does not make sense by the way)","commit_id":"4e9f39e8c75cd79d3370cf0e5e4b72412acb04ca"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"0a0c801e3dc96dc9e3cc93b9e41a71ba530b885e","unresolved":true,"context_lines":[{"line_number":86,"context_line":"            # This function is thread and process safe thanks to lockutils"},{"line_number":87,"context_line":"            try:"},{"line_number":88,"context_line":"                with open(self.file_name) as f:"},{"line_number":89,"context_line":"                    proc_id, counter, start_time \u003d f.readline().split(\u0027:\u0027)"},{"line_number":90,"context_line":"                    proc_id \u003d int(proc_id)"},{"line_number":91,"context_line":"                    counter \u003d int(counter)"},{"line_number":92,"context_line":"                    start_time \u003d int(start_time)"}],"source_content_type":"text/x-python","patch_set":5,"id":"65e80f7f_d5f6323e","line":89,"in_reply_to":"cb36a594_487aa81f","updated":"2025-01-21 12:32:43.000000000","message":"replying to myself: I believe nova-manage is going to have a diffferent process_name, so we might be safe about the reset of the counter each time, because it\u0027s not going to be the same counter.\nAnyway, the previous solution with start_time was better in my opinion","commit_id":"4e9f39e8c75cd79d3370cf0e5e4b72412acb04ca"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"ba6a4d4949275e1019d739cd7d54a3c8dedf2ff9","unresolved":true,"context_lines":[{"line_number":72,"context_line":"        # parse start time (in jiffies) since system boot"},{"line_number":73,"context_line":"        #"},{"line_number":74,"context_line":"        # https://www.man7.org/linux/man-pages//man5/proc_pid_stat.5.html"},{"line_number":75,"context_line":"        proc_id \u003d self.pg if self.pg !\u003d 0 else self.pid"},{"line_number":76,"context_line":"        with open(f\u0027/proc/{proc_id}/stat\u0027) as f:"},{"line_number":77,"context_line":"            self.start_time \u003d int(f.read().split()[21])"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"8941eb7f_5c9066ca","line":75,"updated":"2025-02-01 13:58:50.000000000","message":"To complete Michal comment, maybe we could move the comment above this line and explicitely explain why we fallback using os.getpid() in the podman situation?\n\nAnd finally, I believe we dont even need self.pid to be defined, you could use os.getpid() directly","commit_id":"4f9242fe815213069fd02f8208e447541db0fdd0"},{"author":{"_account_id":35263,"name":"Matt Crees","email":"mattc@stackhpc.com","username":"mattcrees"},"change_message_id":"95eeb33ec20619ae60e78ed40d603f36726caa47","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        # parse start time (in jiffies) since system boot"},{"line_number":73,"context_line":"        #"},{"line_number":74,"context_line":"        # https://www.man7.org/linux/man-pages//man5/proc_pid_stat.5.html"},{"line_number":75,"context_line":"        proc_id \u003d self.pg if self.pg !\u003d 0 else self.pid"},{"line_number":76,"context_line":"        with open(f\u0027/proc/{proc_id}/stat\u0027) as f:"},{"line_number":77,"context_line":"            self.start_time \u003d int(f.read().split()[21])"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa5a10e1_ab2bc894","line":75,"in_reply_to":"8941eb7f_5c9066ca","updated":"2025-02-03 12:46:50.000000000","message":"Done","commit_id":"4f9242fe815213069fd02f8208e447541db0fdd0"}]}
