)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":22226,"name":"Varun Gadiraju","email":"varun.gadiraju@intel.com","username":"gadirajv"},"change_message_id":"665e782ab7ed6cc68e0b437310cb78624019a458","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This can be done starting ironic-conductor as service unit in systemd."},{"line_number":17,"context_line":"As ironic-conductor and its child processes have same cgroups, using"},{"line_number":18,"context_line":"default systemd configuration child processes will be also killed"},{"line_number":19,"context_line":"on any conductor exit. It works for each type of process killing."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: I02210ecbcff119279c5337484497b765296c9878"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"dfeb2761_f064a5bb","line":18,"range":{"start_line":18,"start_character":16,"end_line":18,"end_character":29},"updated":"2017-03-31 19:24:12.000000000","message":"nit: s/configuration/configuration,","commit_id":"2e0ca232bd8b98ab5681466646226aec0cd31bc3"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"1f596b8184db13ce44d8e0e9fb1eb7b9a75d710c","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"This can be done starting ironic-conductor as service unit in systemd."},{"line_number":17,"context_line":"As ironic-conductor and its child processes have same cgroups, using"},{"line_number":18,"context_line":"default systemd configuration child processes will be also killed"},{"line_number":19,"context_line":"on any conductor exit. It works for each type of process killing."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: I02210ecbcff119279c5337484497b765296c9878"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"dfeb2761_edcb8747","line":18,"range":{"start_line":18,"start_character":16,"end_line":18,"end_character":29},"in_reply_to":"dfeb2761_f064a5bb","updated":"2017-04-03 10:15:43.000000000","message":"Done","commit_id":"2e0ca232bd8b98ab5681466646226aec0cd31bc3"}],"doc/source/deploy/console.rst":[{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"062b448e198ece606626c42748822c26fcb3360c","unresolved":false,"context_lines":[{"line_number":12,"context_line":"browser, another is serial console (`Node serial console`_)."},{"line_number":13,"context_line":"Setting up a console for a node it is necessary to be aware of that"},{"line_number":14,"context_line":"if ironic-conductor is stopped by non-catching signals"},{"line_number":15,"context_line":"(e.g. with signal SIGKILL) console session should be also stopped manually."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Node web console"},{"line_number":18,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":17,"id":"ffe62b97_411ef0ba","line":15,"range":{"start_line":15,"start_character":27,"end_line":15,"end_character":75},"updated":"2017-03-24 13:36:57.000000000","message":"Please mention that console processes should be stopped manually in abnormal process termination case.","commit_id":"b4d5aabd5ae0ad22fbe6aa8c2e03195940c56d98"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"3a9a4d8af57d76a930301128ec1d1e517664b6c3","unresolved":false,"context_lines":[{"line_number":12,"context_line":"browser, another is serial console (`Node serial console`_)."},{"line_number":13,"context_line":"Setting up a console for a node it is necessary to be aware of that"},{"line_number":14,"context_line":"if ironic-conductor is stopped by non-catching signals"},{"line_number":15,"context_line":"(e.g. with signal SIGKILL) console session should be also stopped manually."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Node web console"},{"line_number":18,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":17,"id":"ffe62b97_e599891f","line":15,"range":{"start_line":15,"start_character":27,"end_line":15,"end_character":75},"in_reply_to":"ffe62b97_411ef0ba","updated":"2017-03-24 15:22:14.000000000","message":"Done","commit_id":"b4d5aabd5ae0ad22fbe6aa8c2e03195940c56d98"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"6db4a1cfbd74bcac19a04bae488b159bfd9e57b1","unresolved":false,"context_lines":[{"line_number":20,"context_line":"This can be fixed by systemd `KillMode` parameter in service unit file"},{"line_number":21,"context_line":"`/etc/systemd/system/ironic-conductor.service`, which defaults to"},{"line_number":22,"context_line":"`control-group`."},{"line_number":23,"context_line":"If `KillMode` is defined as `control-group` every killing process signal to"},{"line_number":24,"context_line":"ironic-conductor service will eventually stop child processes involved in"},{"line_number":25,"context_line":"`control-group`. For more details see `KillMode in service unit configuration`_."},{"line_number":26,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"dfeb2761_722e62a6","line":23,"range":{"start_line":23,"start_character":43,"end_line":23,"end_character":44},"updated":"2017-03-31 15:51:25.000000000","message":"need a comma here.","commit_id":"2e0ca232bd8b98ab5681466646226aec0cd31bc3"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"1f596b8184db13ce44d8e0e9fb1eb7b9a75d710c","unresolved":false,"context_lines":[{"line_number":20,"context_line":"This can be fixed by systemd `KillMode` parameter in service unit file"},{"line_number":21,"context_line":"`/etc/systemd/system/ironic-conductor.service`, which defaults to"},{"line_number":22,"context_line":"`control-group`."},{"line_number":23,"context_line":"If `KillMode` is defined as `control-group` every killing process signal to"},{"line_number":24,"context_line":"ironic-conductor service will eventually stop child processes involved in"},{"line_number":25,"context_line":"`control-group`. For more details see `KillMode in service unit configuration`_."},{"line_number":26,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"dfeb2761_ad721f48","line":23,"range":{"start_line":23,"start_character":43,"end_line":23,"end_character":44},"in_reply_to":"dfeb2761_722e62a6","updated":"2017-04-03 10:15:43.000000000","message":"Done","commit_id":"2e0ca232bd8b98ab5681466646226aec0cd31bc3"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"6db4a1cfbd74bcac19a04bae488b159bfd9e57b1","unresolved":false,"context_lines":[{"line_number":21,"context_line":"`/etc/systemd/system/ironic-conductor.service`, which defaults to"},{"line_number":22,"context_line":"`control-group`."},{"line_number":23,"context_line":"If `KillMode` is defined as `control-group` every killing process signal to"},{"line_number":24,"context_line":"ironic-conductor service will eventually stop child processes involved in"},{"line_number":25,"context_line":"`control-group`. For more details see `KillMode in service unit configuration`_."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":".. _`KillMode in service unit configuration`:  http://www.dsm.fordham.edu/cgi-bin/man-cgi.pl?topic\u003dsystemd.kill"},{"line_number":28,"context_line":".. _`breaking long-running SOL sessions issue`: https://bugs.launchpad.net/ironic/+bug/1618842"}],"source_content_type":"text/x-rst","patch_set":20,"id":"dfeb2761_26477b4e","line":25,"range":{"start_line":24,"start_character":62,"end_line":25,"end_character":15},"updated":"2017-03-31 15:51:25.000000000","message":"somewhat obscure here, can we write as \u0027belong to the same group\u0027?","commit_id":"2e0ca232bd8b98ab5681466646226aec0cd31bc3"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"1f596b8184db13ce44d8e0e9fb1eb7b9a75d710c","unresolved":false,"context_lines":[{"line_number":21,"context_line":"`/etc/systemd/system/ironic-conductor.service`, which defaults to"},{"line_number":22,"context_line":"`control-group`."},{"line_number":23,"context_line":"If `KillMode` is defined as `control-group` every killing process signal to"},{"line_number":24,"context_line":"ironic-conductor service will eventually stop child processes involved in"},{"line_number":25,"context_line":"`control-group`. For more details see `KillMode in service unit configuration`_."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":".. _`KillMode in service unit configuration`:  http://www.dsm.fordham.edu/cgi-bin/man-cgi.pl?topic\u003dsystemd.kill"},{"line_number":28,"context_line":".. _`breaking long-running SOL sessions issue`: https://bugs.launchpad.net/ironic/+bug/1618842"}],"source_content_type":"text/x-rst","patch_set":20,"id":"dfeb2761_8d8f5b22","line":25,"range":{"start_line":24,"start_character":62,"end_line":25,"end_character":15},"in_reply_to":"dfeb2761_26477b4e","updated":"2017-04-03 10:15:43.000000000","message":"Done","commit_id":"2e0ca232bd8b98ab5681466646226aec0cd31bc3"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"beeb8bda4f94b69561954b6b98cd14660707e010","unresolved":false,"context_lines":[{"line_number":11,"context_line":"one is web console (`Node web console`_) which is available directly from web"},{"line_number":12,"context_line":"browser, another is serial console (`Node serial console`_)."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"When customizing a console for a node it is desirable to ensure that"},{"line_number":15,"context_line":"ironic-conductor and console process will be in the same cgroup. This will"},{"line_number":16,"context_line":"avoid breaking long-running Serial-Over-Lan sessions when ironic-conductor"},{"line_number":17,"context_line":"process exits, but console process does not stop (see"},{"line_number":18,"context_line":"`breaking long-running SOL sessions issue`_ )."}],"source_content_type":"text/x-rst","patch_set":21,"id":"dfeb2761_b887db0f","line":15,"range":{"start_line":14,"start_character":44,"end_line":15,"end_character":63},"updated":"2017-04-04 08:10:26.000000000","message":"Can we provide more details here how deployer can ensure that ironic-conductor and all console processes are in the same cgroup?","commit_id":"507ca66aed0eba70c2feebbb6475cfad8d2c4f5a"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"beeb8bda4f94b69561954b6b98cd14660707e010","unresolved":false,"context_lines":[{"line_number":17,"context_line":"process exits, but console process does not stop (see"},{"line_number":18,"context_line":"`breaking long-running SOL sessions issue`_ )."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This can be fixed by systemd `KillMode` parameter in service unit file"},{"line_number":21,"context_line":"`/etc/systemd/system/ironic-conductor.service`, which defaults to"},{"line_number":22,"context_line":"`control-group`."},{"line_number":23,"context_line":"If `KillMode` is defined as `control-group`, every killing process signal to"}],"source_content_type":"text/x-rst","patch_set":21,"id":"dfeb2761_3844ebb6","line":20,"updated":"2017-04-04 08:10:26.000000000","message":"So it is recommended to run ironic under systemd? I think we can mention this requirement in install-guide https://github.com/openstack/ironic/blob/master/install-guide/source/install.rst","commit_id":"507ca66aed0eba70c2feebbb6475cfad8d2c4f5a"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"cc4ba1e310a545d4ccddf7d8ef48d9eb5841acc5","unresolved":false,"context_lines":[{"line_number":18,"context_line":"`breaking long-running SOL sessions issue`_ )."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This can be fixed by systemd `KillMode` parameter in service unit file"},{"line_number":21,"context_line":"`/etc/systemd/system/ironic-conductor.service`, which defaults to"},{"line_number":22,"context_line":"`control-group`."},{"line_number":23,"context_line":"If `KillMode` is defined as `control-group`, every killing process signal to"},{"line_number":24,"context_line":"ironic-conductor service will eventually stop child processes belonging to same"}],"source_content_type":"text/x-rst","patch_set":21,"id":"dfeb2761_3119a021","line":21,"updated":"2017-04-04 11:50:27.000000000","message":"We do not have this file in the tree. Will be good to provide an example.","commit_id":"507ca66aed0eba70c2feebbb6475cfad8d2c4f5a"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"beeb8bda4f94b69561954b6b98cd14660707e010","unresolved":false,"context_lines":[{"line_number":164,"context_line":".. _`FedoraProject page`: https://fedoraproject.org/wiki/Infrastructure/Mirroring"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Node serial console"},{"line_number":169,"context_line":"-------------------"},{"line_number":170,"context_line":""}],"source_content_type":"text/x-rst","patch_set":21,"id":"dfeb2761_58f1efcc","line":167,"updated":"2017-04-04 08:10:26.000000000","message":"not related","commit_id":"507ca66aed0eba70c2feebbb6475cfad8d2c4f5a"}],"install-guide/source/include/configure-ironic-conductor.rst":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a5ba4b3ef5bb202a6bbeb8312bdf0d4f72fe0549","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        Description\u003dironic-conductor service"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        [Service]"},{"line_number":189,"context_line":"        ExecStart\u003d/usr/local/bin/openstack-ironic-conductor --config-file"},{"line_number":190,"context_line":"        /etc/ironic/ironic.conf"},{"line_number":191,"context_line":"        User\u003dironic"},{"line_number":192,"context_line":"        KillMode\u003dcontrol-group"}],"source_content_type":"text/x-rst","patch_set":23,"id":"bff0334d_1b937051","line":189,"updated":"2017-04-07 14:37:47.000000000","message":"/usr/local -\u003e /usr (if you assume packages)","commit_id":"408daf825b4a0262953fae9f2dc5cf397c02063b"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"7f70b0e0b052e6aa17ba077d75565a7768fd8c5a","unresolved":false,"context_lines":[{"line_number":186,"context_line":"        Description\u003dironic-conductor service"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        [Service]"},{"line_number":189,"context_line":"        ExecStart\u003d/usr/local/bin/openstack-ironic-conductor --config-file"},{"line_number":190,"context_line":"        /etc/ironic/ironic.conf"},{"line_number":191,"context_line":"        User\u003dironic"},{"line_number":192,"context_line":"        KillMode\u003dcontrol-group"}],"source_content_type":"text/x-rst","patch_set":23,"id":"bff0334d_61a98922","line":189,"in_reply_to":"bff0334d_1b937051","updated":"2017-04-10 09:17:29.000000000","message":"Done","commit_id":"408daf825b4a0262953fae9f2dc5cf397c02063b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a5ba4b3ef5bb202a6bbeb8312bdf0d4f72fe0549","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        Description\u003dironic-conductor service"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        [Service]"},{"line_number":206,"context_line":"        ExecStart\u003d/usr/local/bin/ironic-conductor --config-file /etc/ironic/ironic.conf"},{"line_number":207,"context_line":"        User\u003dironic"},{"line_number":208,"context_line":"        KillMode\u003dcontrol-group"},{"line_number":209,"context_line":""}],"source_content_type":"text/x-rst","patch_set":23,"id":"bff0334d_fb99ec6d","line":206,"updated":"2017-04-07 14:37:47.000000000","message":"I suspect the same","commit_id":"408daf825b4a0262953fae9f2dc5cf397c02063b"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"7f70b0e0b052e6aa17ba077d75565a7768fd8c5a","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        Description\u003dironic-conductor service"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        [Service]"},{"line_number":206,"context_line":"        ExecStart\u003d/usr/local/bin/ironic-conductor --config-file /etc/ironic/ironic.conf"},{"line_number":207,"context_line":"        User\u003dironic"},{"line_number":208,"context_line":"        KillMode\u003dcontrol-group"},{"line_number":209,"context_line":""}],"source_content_type":"text/x-rst","patch_set":23,"id":"bff0334d_81b00d8c","line":206,"in_reply_to":"bff0334d_fb99ec6d","updated":"2017-04-10 09:17:29.000000000","message":"Done","commit_id":"408daf825b4a0262953fae9f2dc5cf397c02063b"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"a5ba4b3ef5bb202a6bbeb8312bdf0d4f72fe0549","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        Alias\u003dironic-conductor.service"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"It is important to keep track on `KillMode` parameter, which defaults to ``control-group``."},{"line_number":216,"context_line":"If `KillMode` is defined as ``control-group``, every killing process signal to"},{"line_number":217,"context_line":"ironic-conductor service will eventually stop child processes belonging to same cgroup."},{"line_number":218,"context_line":"It is recommended to avoid abnormal behaviour of long-running child processes that are"}],"source_content_type":"text/x-rst","patch_set":23,"id":"bff0334d_db9ce85e","line":215,"updated":"2017-04-07 14:37:47.000000000","message":"If it defaults to \"control-group\" already, why do we have to change it?","commit_id":"408daf825b4a0262953fae9f2dc5cf397c02063b"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"7f70b0e0b052e6aa17ba077d75565a7768fd8c5a","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        Alias\u003dironic-conductor.service"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"It is important to keep track on `KillMode` parameter, which defaults to ``control-group``."},{"line_number":216,"context_line":"If `KillMode` is defined as ``control-group``, every killing process signal to"},{"line_number":217,"context_line":"ironic-conductor service will eventually stop child processes belonging to same cgroup."},{"line_number":218,"context_line":"It is recommended to avoid abnormal behaviour of long-running child processes that are"}],"source_content_type":"text/x-rst","patch_set":23,"id":"bff0334d_81236dbd","line":215,"in_reply_to":"bff0334d_db9ce85e","updated":"2017-04-10 09:17:29.000000000","message":"I try to point that it is important parameter that is not desirable to be changed. And if user changes it, then it is him who is responsible for such issues occurring like this breaking long-running sol\n\nTried to correct this","commit_id":"408daf825b4a0262953fae9f2dc5cf397c02063b"}],"ironic/drivers/modules/console_utils.py":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"9105f8a474280b787ab743c4d5c6ea5c348b826f","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            pid_str \u003d f.readline()"},{"line_number":95,"context_line":"            return int(pid_str)"},{"line_number":96,"context_line":"    except (IOError, ValueError):"},{"line_number":97,"context_line":"        LOG.warning(_LW(\"No console pid found in file while trying to \""},{"line_number":98,"context_line":"                        \"stop socat console on conductor exit.\"), path)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1a1ced50_fee30a31","line":97,"range":{"start_line":97,"start_character":46,"end_line":97,"end_character":54},"updated":"2017-03-21 03:53:31.000000000","message":"s/\u0027in file \u0027/ \u0027in file %s \u0027 /","commit_id":"b53bd850b31aa1d6e9e622b46412387d3b7902a9"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"e3e277d9086abec638e81cc96b71c7ac214680d3","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            pid_str \u003d f.readline()"},{"line_number":95,"context_line":"            return int(pid_str)"},{"line_number":96,"context_line":"    except (IOError, ValueError):"},{"line_number":97,"context_line":"        LOG.warning(_LW(\"No console pid found in file while trying to \""},{"line_number":98,"context_line":"                        \"stop socat console on conductor exit.\"), path)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1a1ced50_4ccfe528","line":97,"range":{"start_line":97,"start_character":46,"end_line":97,"end_character":54},"updated":"2017-03-22 04:05:25.000000000","message":"s/\u0027in file \u0027/ \u0027in file %s \u0027 /","commit_id":"118b33cdcba15250966e1994a622ae15f1174338"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"cc87397c76b55a5121167ac9f141c4842a825945","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            pid_str \u003d f.readline()"},{"line_number":95,"context_line":"            return int(pid_str)"},{"line_number":96,"context_line":"    except (IOError, ValueError):"},{"line_number":97,"context_line":"        LOG.warning(_LW(\"No console pid found in file while trying to \""},{"line_number":98,"context_line":"                        \"stop socat console on conductor exit.\"), path)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1a1ced50_06f061fd","line":97,"range":{"start_line":97,"start_character":46,"end_line":97,"end_character":54},"in_reply_to":"1a1ced50_4ccfe528","updated":"2017-03-22 10:03:07.000000000","message":"sorry, forgot in previous revision","commit_id":"118b33cdcba15250966e1994a622ae15f1174338"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"408d5c8cc52ba9dbcfeacc73b91d58cc75f010ce","unresolved":false,"context_lines":[{"line_number":379,"context_line":"                        \"stop socat console.\"), node_uuid)"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"def stop_console_by_pid_file(pid_file):"},{"line_number":383,"context_line":"    try:"},{"line_number":384,"context_line":"        console_pid \u003d _get_console_pid_from_file(pid_file)"},{"line_number":385,"context_line":"        os.kill(console_pid, signal.SIGTERM)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a1ced50_417083dc","line":382,"updated":"2017-03-22 11:13:01.000000000","message":"Why not reuse _stop_console()? You can extract node_uuid from  file name.","commit_id":"9a40c2c2a6023cb9a5de176987301732527c5460"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"49a495de002c1a401f7ef23d6095afd42d0049b3","unresolved":false,"context_lines":[{"line_number":379,"context_line":"                        \"stop socat console.\"), node_uuid)"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"def stop_console_by_pid_file(pid_file):"},{"line_number":383,"context_line":"    try:"},{"line_number":384,"context_line":"        console_pid \u003d _get_console_pid_from_file(pid_file)"},{"line_number":385,"context_line":"        os.kill(console_pid, signal.SIGTERM)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a1ced50_c1df0e38","line":382,"in_reply_to":"1a1ced50_417083dc","updated":"2017-03-22 14:13:52.000000000","message":"Ok, this approach is better. I thought it is not needed to extract it from filename to make it merge again in next methods while we know what the file is. But now anyway it should be extracted to check if it is uuid like (this will help to ensure if it is console process)\n\nMoreover, I would not recommend /tmp as the dir for console process pids since we are trying to kill specific ones manually, WDYT?\nIt is not fully guaranteed that guessing console pid filename will work","commit_id":"9a40c2c2a6023cb9a5de176987301732527c5460"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"408d5c8cc52ba9dbcfeacc73b91d58cc75f010ce","unresolved":false,"context_lines":[{"line_number":399,"context_line":"    console_pid_dir \u003d _get_console_pid_dir()"},{"line_number":400,"context_line":"    if os.path.exists(console_pid_dir):"},{"line_number":401,"context_line":"        pid_files_pattern \u003d os.path.join(console_pid_dir, \u0027*.pid\u0027)"},{"line_number":402,"context_line":"        for pid_file in glob.glob(pid_files_pattern):"},{"line_number":403,"context_line":"            stop_console_by_pid_file(pid_file)"},{"line_number":404,"context_line":"    else:"},{"line_number":405,"context_line":"        LOG.info("}],"source_content_type":"text/x-python","patch_set":11,"id":"1a1ced50_5c8b06c3","line":402,"updated":"2017-03-22 11:13:01.000000000","message":"\"console_pid_dir\" can be \"/tmp\". Other services can be running with the same OS user as ironic and have *.pid files in \"/tmp\", we can stop not only processes created by ironic here.","commit_id":"9a40c2c2a6023cb9a5de176987301732527c5460"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"49a495de002c1a401f7ef23d6095afd42d0049b3","unresolved":false,"context_lines":[{"line_number":399,"context_line":"    console_pid_dir \u003d _get_console_pid_dir()"},{"line_number":400,"context_line":"    if os.path.exists(console_pid_dir):"},{"line_number":401,"context_line":"        pid_files_pattern \u003d os.path.join(console_pid_dir, \u0027*.pid\u0027)"},{"line_number":402,"context_line":"        for pid_file in glob.glob(pid_files_pattern):"},{"line_number":403,"context_line":"            stop_console_by_pid_file(pid_file)"},{"line_number":404,"context_line":"    else:"},{"line_number":405,"context_line":"        LOG.info("}],"source_content_type":"text/x-python","patch_set":11,"id":"1a1ced50_eab21f4b","line":402,"in_reply_to":"1a1ced50_5c8b06c3","updated":"2017-03-22 14:13:52.000000000","message":"Done","commit_id":"9a40c2c2a6023cb9a5de176987301732527c5460"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"408d5c8cc52ba9dbcfeacc73b91d58cc75f010ce","unresolved":false,"context_lines":[{"line_number":401,"context_line":"        pid_files_pattern \u003d os.path.join(console_pid_dir, \u0027*.pid\u0027)"},{"line_number":402,"context_line":"        for pid_file in glob.glob(pid_files_pattern):"},{"line_number":403,"context_line":"            stop_console_by_pid_file(pid_file)"},{"line_number":404,"context_line":"    else:"},{"line_number":405,"context_line":"        LOG.info("},{"line_number":406,"context_line":"            _(\"There are no console processes running\"))"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a1ced50_dc837654","line":404,"updated":"2017-03-22 11:13:01.000000000","message":"This condition never happens because tempdir always present in normal configuration (l47).","commit_id":"9a40c2c2a6023cb9a5de176987301732527c5460"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"49a495de002c1a401f7ef23d6095afd42d0049b3","unresolved":false,"context_lines":[{"line_number":401,"context_line":"        pid_files_pattern \u003d os.path.join(console_pid_dir, \u0027*.pid\u0027)"},{"line_number":402,"context_line":"        for pid_file in glob.glob(pid_files_pattern):"},{"line_number":403,"context_line":"            stop_console_by_pid_file(pid_file)"},{"line_number":404,"context_line":"    else:"},{"line_number":405,"context_line":"        LOG.info("},{"line_number":406,"context_line":"            _(\"There are no console processes running\"))"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a1ced50_aaf2e703","line":404,"in_reply_to":"1a1ced50_dc837654","updated":"2017-03-22 14:13:52.000000000","message":"ok, if ironic user enabled console feature in config and changed directory from default one, it is ensured that it exists at other places","commit_id":"9a40c2c2a6023cb9a5de176987301732527c5460"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"408d5c8cc52ba9dbcfeacc73b91d58cc75f010ce","unresolved":false,"context_lines":[{"line_number":403,"context_line":"            stop_console_by_pid_file(pid_file)"},{"line_number":404,"context_line":"    else:"},{"line_number":405,"context_line":"        LOG.info("},{"line_number":406,"context_line":"            _(\"There are no console processes running\"))"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a1ced50_3cf64af9","line":406,"updated":"2017-03-22 11:13:01.000000000","message":"Should be translated with _LI.","commit_id":"9a40c2c2a6023cb9a5de176987301732527c5460"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"b86e9b1c44681964bd93623affe30326bd7ccce9","unresolved":false,"context_lines":[{"line_number":403,"context_line":"            stop_console_by_pid_file(pid_file)"},{"line_number":404,"context_line":"    else:"},{"line_number":405,"context_line":"        LOG.info("},{"line_number":406,"context_line":"            _(\"There are no console processes running\"))"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a1ced50_776c5d35","line":406,"in_reply_to":"1a1ced50_3cf64af9","updated":"2017-03-22 11:45:21.000000000","message":"And after cleaning not translated at all https://bugs.launchpad.net/ironic/+bug/1674374","commit_id":"9a40c2c2a6023cb9a5de176987301732527c5460"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"49a495de002c1a401f7ef23d6095afd42d0049b3","unresolved":false,"context_lines":[{"line_number":403,"context_line":"            stop_console_by_pid_file(pid_file)"},{"line_number":404,"context_line":"    else:"},{"line_number":405,"context_line":"        LOG.info("},{"line_number":406,"context_line":"            _(\"There are no console processes running\"))"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a1ced50_eae05f2b","line":406,"in_reply_to":"1a1ced50_776c5d35","updated":"2017-03-22 14:13:52.000000000","message":"erased this at all since it is not needed","commit_id":"9a40c2c2a6023cb9a5de176987301732527c5460"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"efa1735190dee28d3fce02fc95f6c02fdd1582f4","unresolved":false,"context_lines":[{"line_number":377,"context_line":"    for pid_file in glob.iglob(pid_files_pattern):"},{"line_number":378,"context_line":"        # NOTE(galyna): the console processes pids are saved into files named"},{"line_number":379,"context_line":"        # \u0027node_uuid.pid\u0027"},{"line_number":380,"context_line":"        node_filename \u003d pid_file.split(\u0027.\u0027)[0]"},{"line_number":381,"context_line":"        if uuidutils.is_uuid_like(node_filename):"},{"line_number":382,"context_line":"            _stop_console(node_uuid\u003dnode_filename)"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a1ced50_c93c5a95","line":380,"range":{"start_line":380,"start_character":8,"end_line":380,"end_character":21},"updated":"2017-03-23 14:34:42.000000000","message":"This should be node uuid, not filename. But path added to pattern l376. For example pattern is \u0027/foo/*.pid\u0027, glob returned \u0027/foo/\u003cuuid\u003e.pid\u0027 etc, value after split \u0027/foo/\u003cuuid\u003e\u0027, not uuid.","commit_id":"fc938c11d28511720f11312943c927891a0cc355"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"69d66691b5d40327f92137148c7aec64e327ec2b","unresolved":false,"context_lines":[{"line_number":377,"context_line":"    for pid_file in glob.iglob(pid_files_pattern):"},{"line_number":378,"context_line":"        # NOTE(galyna): the console processes pids are saved into files named"},{"line_number":379,"context_line":"        # \u0027node_uuid.pid\u0027"},{"line_number":380,"context_line":"        node_filename \u003d pid_file.split(\u0027.\u0027)[0]"},{"line_number":381,"context_line":"        if uuidutils.is_uuid_like(node_filename):"},{"line_number":382,"context_line":"            _stop_console(node_uuid\u003dnode_filename)"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a1ced50_cca383ff","line":380,"range":{"start_line":380,"start_character":8,"end_line":380,"end_character":21},"in_reply_to":"1a1ced50_c93c5a95","updated":"2017-03-23 16:14:36.000000000","message":"Done","commit_id":"fc938c11d28511720f11312943c927891a0cc355"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"efa1735190dee28d3fce02fc95f6c02fdd1582f4","unresolved":false,"context_lines":[{"line_number":379,"context_line":"        # \u0027node_uuid.pid\u0027"},{"line_number":380,"context_line":"        node_filename \u003d pid_file.split(\u0027.\u0027)[0]"},{"line_number":381,"context_line":"        if uuidutils.is_uuid_like(node_filename):"},{"line_number":382,"context_line":"            _stop_console(node_uuid\u003dnode_filename)"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a1ced50_297fae15","line":382,"range":{"start_line":382,"start_character":26,"end_line":382,"end_character":49},"updated":"2017-03-23 14:34:42.000000000","message":"nit: no reason to pass single mandatory argument as k\u003dv.","commit_id":"fc938c11d28511720f11312943c927891a0cc355"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"69d66691b5d40327f92137148c7aec64e327ec2b","unresolved":false,"context_lines":[{"line_number":379,"context_line":"        # \u0027node_uuid.pid\u0027"},{"line_number":380,"context_line":"        node_filename \u003d pid_file.split(\u0027.\u0027)[0]"},{"line_number":381,"context_line":"        if uuidutils.is_uuid_like(node_filename):"},{"line_number":382,"context_line":"            _stop_console(node_uuid\u003dnode_filename)"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a1ced50_ac9e47b6","line":382,"range":{"start_line":382,"start_character":26,"end_line":382,"end_character":49},"in_reply_to":"1a1ced50_297fae15","updated":"2017-03-23 16:14:36.000000000","message":"Done","commit_id":"fc938c11d28511720f11312943c927891a0cc355"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"062b448e198ece606626c42748822c26fcb3360c","unresolved":false,"context_lines":[{"line_number":379,"context_line":"    console_pid_dir \u003d _get_console_pid_dir()"},{"line_number":380,"context_line":"    pid_files_pattern \u003d os.path.join(console_pid_dir, \u0027*.pid\u0027)"},{"line_number":381,"context_line":"    filebasenames \u003d map(fetch_name, glob.iglob(pid_files_pattern))"},{"line_number":382,"context_line":"    console_nodes \u003d list(filter(uuidutils.is_uuid_like, filebasenames))"},{"line_number":383,"context_line":"    for node_uuid in console_nodes:"},{"line_number":384,"context_line":"        _stop_console(node_uuid)"}],"source_content_type":"text/x-python","patch_set":17,"id":"ffe62b97_a7aeece4","line":382,"updated":"2017-03-24 13:36:57.000000000","message":"nit: if we use loop (l383), better to have operation l381-382  inside loop.","commit_id":"b4d5aabd5ae0ad22fbe6aa8c2e03195940c56d98"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"3a9a4d8af57d76a930301128ec1d1e517664b6c3","unresolved":false,"context_lines":[{"line_number":379,"context_line":"    console_pid_dir \u003d _get_console_pid_dir()"},{"line_number":380,"context_line":"    pid_files_pattern \u003d os.path.join(console_pid_dir, \u0027*.pid\u0027)"},{"line_number":381,"context_line":"    filebasenames \u003d map(fetch_name, glob.iglob(pid_files_pattern))"},{"line_number":382,"context_line":"    console_nodes \u003d list(filter(uuidutils.is_uuid_like, filebasenames))"},{"line_number":383,"context_line":"    for node_uuid in console_nodes:"},{"line_number":384,"context_line":"        _stop_console(node_uuid)"}],"source_content_type":"text/x-python","patch_set":17,"id":"ffe62b97_452155fb","line":382,"in_reply_to":"ffe62b97_a7aeece4","updated":"2017-03-24 15:22:14.000000000","message":"Done","commit_id":"b4d5aabd5ae0ad22fbe6aa8c2e03195940c56d98"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"3a9a4d8af57d76a930301128ec1d1e517664b6c3","unresolved":false,"context_lines":[{"line_number":379,"context_line":"    console_pid_dir \u003d _get_console_pid_dir()"},{"line_number":380,"context_line":"    pid_files_pattern \u003d os.path.join(console_pid_dir, \u0027*.pid\u0027)"},{"line_number":381,"context_line":"    filebasenames \u003d map(fetch_name, glob.iglob(pid_files_pattern))"},{"line_number":382,"context_line":"    console_nodes \u003d list(filter(uuidutils.is_uuid_like, filebasenames))"},{"line_number":383,"context_line":"    for node_uuid in console_nodes:"},{"line_number":384,"context_line":"        _stop_console(node_uuid)"}],"source_content_type":"text/x-python","patch_set":17,"id":"ffe62b97_d3af7292","line":382,"in_reply_to":"ffe62b97_a7aeece4","updated":"2017-03-24 15:22:14.000000000","message":"Done","commit_id":"b4d5aabd5ae0ad22fbe6aa8c2e03195940c56d98"}],"ironic/drivers/modules/ipmitool.py":[{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"efa1735190dee28d3fce02fc95f6c02fdd1582f4","unresolved":false,"context_lines":[{"line_number":1305,"context_line":"                ironic_utils.unlink_without_raise(path)"},{"line_number":1306,"context_line":""},{"line_number":1307,"context_line":"        if stop_method:"},{"line_number":1308,"context_line":"            atexit.register(stop_method, driver_info[\u0027uuid\u0027])"},{"line_number":1309,"context_line":""},{"line_number":1310,"context_line":""},{"line_number":1311,"context_line":"class IPMIShellinaboxConsole(IPMIConsole):"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a1ced50_249995c4","line":1308,"updated":"2017-03-23 14:34:42.000000000","message":"Ironic conductor is long running service. Each time when console started atexit method will be registered. Many start-stop cycles are possible during conductor lifetime, and all these functions will be executed at exit.","commit_id":"fc938c11d28511720f11312943c927891a0cc355"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"69d66691b5d40327f92137148c7aec64e327ec2b","unresolved":false,"context_lines":[{"line_number":1305,"context_line":"                ironic_utils.unlink_without_raise(path)"},{"line_number":1306,"context_line":""},{"line_number":1307,"context_line":"        if stop_method:"},{"line_number":1308,"context_line":"            atexit.register(stop_method, driver_info[\u0027uuid\u0027])"},{"line_number":1309,"context_line":""},{"line_number":1310,"context_line":""},{"line_number":1311,"context_line":"class IPMIShellinaboxConsole(IPMIConsole):"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a1ced50_6cb52f30","line":1308,"in_reply_to":"1a1ced50_249995c4","updated":"2017-03-23 16:14:36.000000000","message":"erased this, now it is not needed","commit_id":"fc938c11d28511720f11312943c927891a0cc355"}],"releasenotes/notes/stop-sol-session-on-conductor-death-b6dd90242d99e2b6.yaml":[{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"e3e277d9086abec638e81cc96b71c7ac214680d3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Ensure Serail Over Lan session dying on"},{"line_number":4,"context_line":"    conductor fail or graceful exit. "}],"source_content_type":"text/x-yaml","patch_set":9,"id":"1a1ced50_2cf54956","line":3,"range":{"start_line":3,"start_character":35,"end_line":3,"end_character":40},"updated":"2017-03-22 04:05:25.000000000","message":"s/ dying on/ dies upon/","commit_id":"118b33cdcba15250966e1994a622ae15f1174338"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"e3e277d9086abec638e81cc96b71c7ac214680d3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Ensure Serail Over Lan session dying on"},{"line_number":4,"context_line":"    conductor fail or graceful exit. "}],"source_content_type":"text/x-yaml","patch_set":9,"id":"1a1ced50_ece09198","line":3,"range":{"start_line":3,"start_character":11,"end_line":3,"end_character":17},"updated":"2017-03-22 04:05:25.000000000","message":"s/Serail /Serial/","commit_id":"118b33cdcba15250966e1994a622ae15f1174338"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"cc87397c76b55a5121167ac9f141c4842a825945","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Ensure Serail Over Lan session dying on"},{"line_number":4,"context_line":"    conductor fail or graceful exit. "}],"source_content_type":"text/x-yaml","patch_set":9,"id":"1a1ced50_c6e2c92e","line":3,"range":{"start_line":3,"start_character":35,"end_line":3,"end_character":40},"in_reply_to":"1a1ced50_2cf54956","updated":"2017-03-22 10:03:07.000000000","message":"Done","commit_id":"118b33cdcba15250966e1994a622ae15f1174338"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"cc87397c76b55a5121167ac9f141c4842a825945","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Ensure Serail Over Lan session dying on"},{"line_number":4,"context_line":"    conductor fail or graceful exit. "}],"source_content_type":"text/x-yaml","patch_set":9,"id":"1a1ced50_a6e5cd38","line":3,"range":{"start_line":3,"start_character":11,"end_line":3,"end_character":17},"in_reply_to":"1a1ced50_ece09198","updated":"2017-03-22 10:03:07.000000000","message":"Done","commit_id":"118b33cdcba15250966e1994a622ae15f1174338"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"e3e277d9086abec638e81cc96b71c7ac214680d3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Ensure Serail Over Lan session dying on"},{"line_number":4,"context_line":"    conductor fail or graceful exit. "}],"source_content_type":"text/x-yaml","patch_set":9,"id":"1a1ced50_8cdd5de2","line":4,"range":{"start_line":4,"start_character":36,"end_line":4,"end_character":37},"updated":"2017-03-22 04:05:25.000000000","message":"nit: extra space at end","commit_id":"118b33cdcba15250966e1994a622ae15f1174338"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"cc87397c76b55a5121167ac9f141c4842a825945","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Ensure Serail Over Lan session dying on"},{"line_number":4,"context_line":"    conductor fail or graceful exit. "}],"source_content_type":"text/x-yaml","patch_set":9,"id":"1a1ced50_66df5569","line":4,"range":{"start_line":4,"start_character":36,"end_line":4,"end_character":37},"in_reply_to":"1a1ced50_8cdd5de2","updated":"2017-03-22 10:03:07.000000000","message":"Done","commit_id":"118b33cdcba15250966e1994a622ae15f1174338"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"408d5c8cc52ba9dbcfeacc73b91d58cc75f010ce","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Ensure Serial Over Lan session dies upon"},{"line_number":4,"context_line":"    conductor fail or graceful exit."}],"source_content_type":"text/x-yaml","patch_set":11,"id":"1a1ced50_c19ab36d","line":4,"range":{"start_line":4,"start_character":14,"end_line":4,"end_character":18},"updated":"2017-03-22 11:13:01.000000000","message":"Only graceful exit. For example this solution does not work for: sending SIGKILL, Python fatal internal errors, if green threads switching blocked due to bug in 3-party library.","commit_id":"9a40c2c2a6023cb9a5de176987301732527c5460"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"86563a73b472135ace9540564f0fc0c49535df16","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Ensure Serail Over Lan session dying on"},{"line_number":4,"context_line":"    conductor fail or graceful exit. "}],"source_content_type":"text/x-yaml","patch_set":12,"id":"1a1ced50_f3e68e42","line":3,"range":{"start_line":3,"start_character":11,"end_line":3,"end_character":17},"updated":"2017-03-22 17:34:53.000000000","message":"Serial.","commit_id":"1311f3401332887066fe0f9f67209341e49c0713"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"e4cb49ee6e8a0784ecd5990ec5ab1277b3fcf370","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Ensure Serail Over Lan session dying on"},{"line_number":4,"context_line":"    conductor fail or graceful exit. "}],"source_content_type":"text/x-yaml","patch_set":12,"id":"1a1ced50_1c508031","line":3,"range":{"start_line":3,"start_character":11,"end_line":3,"end_character":17},"in_reply_to":"1a1ced50_f3e68e42","updated":"2017-03-23 08:33:49.000000000","message":"Done","commit_id":"1311f3401332887066fe0f9f67209341e49c0713"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"86563a73b472135ace9540564f0fc0c49535df16","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Ensure Serail Over Lan session dying on"},{"line_number":4,"context_line":"    conductor fail or graceful exit. "}],"source_content_type":"text/x-yaml","patch_set":12,"id":"1a1ced50_d3db527a","line":4,"range":{"start_line":4,"start_character":36,"end_line":4,"end_character":37},"updated":"2017-03-22 17:34:53.000000000","message":"Nit: remove extra space.","commit_id":"1311f3401332887066fe0f9f67209341e49c0713"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"e4cb49ee6e8a0784ecd5990ec5ab1277b3fcf370","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Ensure Serail Over Lan session dying on"},{"line_number":4,"context_line":"    conductor fail or graceful exit. "}],"source_content_type":"text/x-yaml","patch_set":12,"id":"1a1ced50_3c437c6d","line":4,"range":{"start_line":4,"start_character":36,"end_line":4,"end_character":37},"in_reply_to":"1a1ced50_d3db527a","updated":"2017-03-23 08:33:49.000000000","message":"Done","commit_id":"1311f3401332887066fe0f9f67209341e49c0713"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"efa1735190dee28d3fce02fc95f6c02fdd1582f4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Ensure Serial Over Lan session dying on"},{"line_number":4,"context_line":"    conductor fail or graceful exit."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"1a1ced50_e4c85daa","line":4,"range":{"start_line":4,"start_character":14,"end_line":4,"end_character":18},"updated":"2017-03-23 14:34:42.000000000","message":"Copy comment from previous patch set: Only graceful exit. For example this solution does not work for: sending SIGKILL, Python fatal internal errors, if green threads switching blocked due to bug in 3-party library.","commit_id":"fc938c11d28511720f11312943c927891a0cc355"},{"author":{"_account_id":22724,"name":"Galyna Zholtkevych","email":"galynazholtkevych1991@gmail.com","username":"gzholtkevych"},"change_message_id":"217dd3b174f24b1d8670873a2c3c8231c9517fd7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - Ensure Serial Over Lan session dying on"},{"line_number":4,"context_line":"    conductor fail or graceful exit."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"1a1ced50_3fe51c08","line":4,"range":{"start_line":4,"start_character":14,"end_line":4,"end_character":18},"in_reply_to":"1a1ced50_e4c85daa","updated":"2017-03-23 14:56:41.000000000","message":"Yes, forgot to add this. That is why I add several lines to console documentation to catch these situations when SIGKILL e.g. is sent","commit_id":"fc938c11d28511720f11312943c927891a0cc355"}]}
