)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ef716e1e73eea52e80ec97684d74086e82b43b90","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Miro Tomaska \u003cmtomaska@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2022-07-10 22:04:47 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add workaround for eventlet bug[1] in get_hypervisor_hostname"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Workaround: A wrapper class which requests if socket module was eventlet patched and request std lib socket module instead."},{"line_number":10,"context_line":"Also adding LOG.warning into the exception block so we dont miss issues like this in the future"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"234f6de0_889c1897","line":7,"range":{"start_line":7,"start_character":19,"end_line":7,"end_character":61},"updated":"2022-07-13 11:33:09.000000000","message":"1) Refer to the eventlet bug, not the method using it. This is a bug in eventlet.greendns\n\n2) Do not add the link [1] in the title. That won\u0027t make sense when only the titles are shown. Refer to this in the message.","commit_id":"9a68723438e581aaf2dfbdd94c932d60931a044c"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"5088b8be83d920062292e938aafb0efa9ed80e54","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Miro Tomaska \u003cmtomaska@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2022-07-10 22:04:47 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add workaround for eventlet bug[1] in get_hypervisor_hostname"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Workaround: A wrapper class which requests if socket module was eventlet patched and request std lib socket module instead."},{"line_number":10,"context_line":"Also adding LOG.warning into the exception block so we dont miss issues like this in the future"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"a1b1bd0e_b7a578c7","line":7,"range":{"start_line":7,"start_character":19,"end_line":7,"end_character":61},"in_reply_to":"234f6de0_889c1897","updated":"2022-07-13 14:32:46.000000000","message":"Done","commit_id":"9a68723438e581aaf2dfbdd94c932d60931a044c"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"8c4d3ef0a8467d88cf216b532889c1fa56c34808","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add workaround for eventlet.greendns bug"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Issue[1] workaround: A wrapper class which determines if socket module was eventlet patched and request std lib socket module instead."},{"line_number":10,"context_line":"Also adding LOG.warning into the exception block so we dont miss issues like this in the future"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Closes-Bug: #1980967"},{"line_number":13,"context_line":"Related-Bug: #1926693"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"0f81da93_d03b308c","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":95},"updated":"2022-07-14 04:49:54.000000000","message":"Do you care to wrap these lines by 72 chars ?\n\nhttps://docs.openstack.org/contributors/common/git.html#body\n\n```\nBody\n\nThe body contains the explanation of the issue being solved and why it should be fixed, the description of the solution, and additional optional information on how it improves the code structure, or references to other relevant patches, for example. The lines are limited to 72 characters. The body should contain all the important information related to the problem, without assuming that the reader understands the source of the problem or has access to external sites.\n\n```","commit_id":"213fedd667bb9604d801b98a2bb257ccf07da949"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"000b3ad57e0c7d2d131c7dd382f870dafeea87cb","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add workaround for eventlet.greendns bug"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Issue[1] workaround: A wrapper class which determines if socket module was eventlet patched and request std lib socket module instead."},{"line_number":10,"context_line":"Also adding LOG.warning into the exception block so we dont miss issues like this in the future"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Closes-Bug: #1980967"},{"line_number":13,"context_line":"Related-Bug: #1926693"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"38562032_74bf06c2","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":95},"in_reply_to":"0f81da93_d03b308c","updated":"2022-07-14 14:20:17.000000000","message":"Done","commit_id":"213fedd667bb9604d801b98a2bb257ccf07da949"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"878dcafb6577a5dcba4ee0599a230d1850f5a25b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"2c3e7c74_7a1e5ced","updated":"2022-07-08 15:23:51.000000000","message":"First of all thanks for pointing out the problem.\n\nHowever, I don\u0027t think this is the right direction. What we require here is to use the hypervisor name which is consistent with libvirt, the most popular virt driver we believe. If we use a different logic in neutron then that can break consistency in some deployments according to how dns servers or /etc/hosts are configured.\n\nIMHO we should keep the current logic which comes from libvirt to keep the consistency as much as possible and find the solution within eventlet.\n\n","commit_id":"4ecf514e93feba444de15254442232f338035593"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"c07bba1c97a0384614f92306337a600b0abf3ca2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1974f5a4_235d7704","updated":"2022-07-08 15:02:26.000000000","message":"Hi Takashi and Slawek\n\nThis is just one proposal to update get_hypervisor_hostname to workaround eventlet bug. This does not follow virGetHostNameImpl from libvirt. Alternative solution would be to keep get_hypervisor_hostname as is and try to \"un-monkey-path\" eventlet getaddrinfo() implementation. However, I dont believe there is a way to just suppress one function. I would have to do it for the whole socket module. Let me know your thoughts. Thanks","commit_id":"4ecf514e93feba444de15254442232f338035593"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"526fd9d26bb995528ea6810129e1f77c4ed58fec","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5404739e_5856a380","in_reply_to":"2c3e7c74_7a1e5ced","updated":"2022-07-08 16:07:11.000000000","message":"Yep, I understand your concern. Ok let me look into a workaround within eventlet. I\u0027ll ask eventlet folks.","commit_id":"4ecf514e93feba444de15254442232f338035593"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"085ae40a723236c91c13f40051526dd50cbbbba3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6e15f2de_91a48e67","in_reply_to":"5404739e_5856a380","updated":"2022-07-11 03:11:13.000000000","message":"The last patchset contains workaround which does not change libvirt implementation. I just added one LOG statement, but that should not hurt anything.","commit_id":"4ecf514e93feba444de15254442232f338035593"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"de84d747cd831c5ea5cf06dfb2ebf7a6a6029b2c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"07d43688_f6a81cea","updated":"2022-07-12 10:57:57.000000000","message":"Thanks for working on this workaround, I have just a small nit for imports (not sure if we still keep this rule)","commit_id":"9a68723438e581aaf2dfbdd94c932d60931a044c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"235a184552c21ae013db136df456d7bca1e1daf9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"05a9d245_d05121ec","updated":"2022-07-13 13:40:11.000000000","message":"All my questions are still pending.","commit_id":"bc63b36cbbdcc7d20bf6aafb416f98608a914aaa"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"bbcd7aae64f6a806238c44133349c5e34c0247c4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"6d94ec32_7e548fb3","in_reply_to":"05a9d245_d05121ec","updated":"2022-07-13 13:55:14.000000000","message":"Yep. I noticed them after I pushed. I\u0027ll take care of it soon. Thanks for feedback","commit_id":"bc63b36cbbdcc7d20bf6aafb416f98608a914aaa"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"050b9a029af7cf38417129c0d88ab54e44de4f6d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"4c87268d_7a399a36","updated":"2022-07-13 15:49:35.000000000","message":"Waiting for the CI, but code looks OK.","commit_id":"220efa0eef9b9af8b2926e916265975521872fa6"},{"author":{"_account_id":32586,"name":"Elvira García Ruiz","display_name":"Elvira","email":"egarciar@redhat.com","username":"elvira"},"change_message_id":"78152c593812fd962f987e045c28c28e97ca033c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"f451a43d_3ada9834","updated":"2022-07-22 08:58:29.000000000","message":"LGTM!","commit_id":"ea223072841adc3fb88b840b5f8018bff60c8aa7"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"e79fc97f5aa6290a7a477930467b23e1e37ba53f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"258c22bf_13e28df7","updated":"2022-07-19 15:22:44.000000000","message":"recheck due to pyroute2 0.7.1 issue","commit_id":"ea223072841adc3fb88b840b5f8018bff60c8aa7"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"101045dc1ccd5a24c1fd2882e4eeec5e8aace8ba","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"ee716536_c1ac0dbe","updated":"2022-07-16 03:03:55.000000000","message":"recheck functional tests timeout","commit_id":"ea223072841adc3fb88b840b5f8018bff60c8aa7"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"62ffdebbe39a25f1ed98721e7989c6577d6270c1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"ee752b20_c3f1fce6","updated":"2022-07-15 01:35:06.000000000","message":"recheck functional tests timeout","commit_id":"ea223072841adc3fb88b840b5f8018bff60c8aa7"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"e97291a9d45946d0f2ef7a6070d05de440165d31","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"bd1d5f4a_1e684938","in_reply_to":"ee716536_c1ac0dbe","updated":"2022-07-18 12:56:48.000000000","message":"functional is failing due to pyroute2 0.7.1, see: https://bugs.launchpad.net/neutron/+bug/1981963","commit_id":"ea223072841adc3fb88b840b5f8018bff60c8aa7"}],"neutron/agent/common/utils.py":[{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"526fd9d26bb995528ea6810129e1f77c4ed58fec","unresolved":true,"context_lines":[{"line_number":70,"context_line":"                                   cfg.CONF.agent_down_time)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def get_hypervisor_fqdn():"},{"line_number":74,"context_line":"    \"\"\"Returns fully qualified domain name (fqdn)"},{"line_number":75,"context_line":"    for the current hypervisor."},{"line_number":76,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"ddf6c9de_61418de2","line":73,"range":{"start_line":73,"start_character":1,"end_line":73,"end_character":26},"updated":"2022-07-08 16:07:11.000000000","message":"Hi Takashi and Slawek\n\nThis is just one proposal to update get_hypervisor_hostname to workaround eventlet bug. This does not follow virGetHostNameImpl from libvirt. Alternative solution would be to keep get_hypervisor_hostname as is and try to \"un-monkey-path\" eventlet getaddrinfo() implementation. However, I dont believe there is a way to just suppress one function. I would have to do it for the whole socket module. Let me know your thoughts. Thanks","commit_id":"4ecf514e93feba444de15254442232f338035593"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"b26450c1fdfc3b8a5d1435d8f319478e659b5ca9","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                                   cfg.CONF.agent_down_time)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def get_hypervisor_fqdn():"},{"line_number":74,"context_line":"    \"\"\"Returns fully qualified domain name (fqdn)"},{"line_number":75,"context_line":"    for the current hypervisor."},{"line_number":76,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"025953b3_4bb06ec8","line":73,"range":{"start_line":73,"start_character":1,"end_line":73,"end_character":26},"in_reply_to":"ddf6c9de_61418de2","updated":"2022-07-11 13:08:04.000000000","message":"Done","commit_id":"4ecf514e93feba444de15254442232f338035593"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ef716e1e73eea52e80ec97684d74086e82b43b90","unresolved":true,"context_lines":[{"line_number":16,"context_line":"import os"},{"line_number":17,"context_line":"import socket"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from eventlet.patcher import original"},{"line_number":20,"context_line":"from neutron_lib.utils import runtime"},{"line_number":21,"context_line":"from oslo_config import cfg"},{"line_number":22,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":3,"id":"f2c1aa2c_66ffe259","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":9},"updated":"2022-07-13 11:33:09.000000000","message":"Same here: import the module, not the method.","commit_id":"9a68723438e581aaf2dfbdd94c932d60931a044c"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"5088b8be83d920062292e938aafb0efa9ed80e54","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import os"},{"line_number":17,"context_line":"import socket"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from eventlet.patcher import original"},{"line_number":20,"context_line":"from neutron_lib.utils import runtime"},{"line_number":21,"context_line":"from oslo_config import cfg"},{"line_number":22,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":3,"id":"fda62886_32f00b23","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":9},"in_reply_to":"f2c1aa2c_66ffe259","updated":"2022-07-13 14:32:46.000000000","message":"Done","commit_id":"9a68723438e581aaf2dfbdd94c932d60931a044c"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"de84d747cd831c5ea5cf06dfb2ebf7a6a6029b2c","unresolved":true,"context_lines":[{"line_number":20,"context_line":"from neutron_lib.utils import runtime"},{"line_number":21,"context_line":"from oslo_config import cfg"},{"line_number":22,"context_line":"from oslo_log import log as logging"},{"line_number":23,"context_line":"from oslo_utils.eventletutils import is_monkey_patched"},{"line_number":24,"context_line":"from oslo_utils import timeutils"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from neutron.conf.agent import common as config"}],"source_content_type":"text/x-python","patch_set":3,"id":"0480e203_4db35776","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":54},"updated":"2022-07-12 10:57:57.000000000","message":"nit: please do not import method, just the method\n(I thought that we ave some pep check for it....)","commit_id":"9a68723438e581aaf2dfbdd94c932d60931a044c"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"c6d8e19c8080cbebdcd80e44e41c649a5b26e22a","unresolved":true,"context_lines":[{"line_number":20,"context_line":"from neutron_lib.utils import runtime"},{"line_number":21,"context_line":"from oslo_config import cfg"},{"line_number":22,"context_line":"from oslo_log import log as logging"},{"line_number":23,"context_line":"from oslo_utils.eventletutils import is_monkey_patched"},{"line_number":24,"context_line":"from oslo_utils import timeutils"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from neutron.conf.agent import common as config"}],"source_content_type":"text/x-python","patch_set":3,"id":"f688145c_28d330eb","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":54},"in_reply_to":"0480e203_4db35776","updated":"2022-07-12 13:28:39.000000000","message":"Hi. I am not sue what you mean exactly. Are you saying I should import like this?\nfrom oslo_utils import eventletutils\n...\neventletutils.is_monkey_patched()","commit_id":"9a68723438e581aaf2dfbdd94c932d60931a044c"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"135e245261808f4885af85073ffc68f8fd7b4506","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from neutron_lib.utils import runtime"},{"line_number":21,"context_line":"from oslo_config import cfg"},{"line_number":22,"context_line":"from oslo_log import log as logging"},{"line_number":23,"context_line":"from oslo_utils.eventletutils import is_monkey_patched"},{"line_number":24,"context_line":"from oslo_utils import timeutils"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from neutron.conf.agent import common as config"}],"source_content_type":"text/x-python","patch_set":3,"id":"c84062e3_fcceb004","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":54},"in_reply_to":"b601ed0b_e154959c","updated":"2022-07-13 13:29:36.000000000","message":"Done","commit_id":"9a68723438e581aaf2dfbdd94c932d60931a044c"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"d8840520938a96051bac3d23015080d9480ed68e","unresolved":true,"context_lines":[{"line_number":20,"context_line":"from neutron_lib.utils import runtime"},{"line_number":21,"context_line":"from oslo_config import cfg"},{"line_number":22,"context_line":"from oslo_log import log as logging"},{"line_number":23,"context_line":"from oslo_utils.eventletutils import is_monkey_patched"},{"line_number":24,"context_line":"from oslo_utils import timeutils"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from neutron.conf.agent import common as config"}],"source_content_type":"text/x-python","patch_set":3,"id":"b601ed0b_e154959c","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":54},"in_reply_to":"f688145c_28d330eb","updated":"2022-07-13 07:42:37.000000000","message":"yes, I thought like that","commit_id":"9a68723438e581aaf2dfbdd94c932d60931a044c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ef716e1e73eea52e80ec97684d74086e82b43b90","unresolved":true,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"class _SocketWrapper():"},{"line_number":76,"context_line":"    \"\"\"Determines if python\u0027s standard library socket module was monkey"},{"line_number":77,"context_line":"    patched by the eventlet module. If yes, it will request an unpached"},{"line_number":78,"context_line":"    version of the socket module. The sole purpose of this class is to"},{"line_number":79,"context_line":"    workaround eventlet bug"}],"source_content_type":"text/x-python","patch_set":3,"id":"3306b9b2_19c62b87","line":76,"range":{"start_line":76,"start_character":7,"end_line":76,"end_character":70},"updated":"2022-07-13 11:33:09.000000000","message":"The description of a method or class should have a title (one line) and a description.","commit_id":"9a68723438e581aaf2dfbdd94c932d60931a044c"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"5088b8be83d920062292e938aafb0efa9ed80e54","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"class _SocketWrapper():"},{"line_number":76,"context_line":"    \"\"\"Determines if python\u0027s standard library socket module was monkey"},{"line_number":77,"context_line":"    patched by the eventlet module. If yes, it will request an unpached"},{"line_number":78,"context_line":"    version of the socket module. The sole purpose of this class is to"},{"line_number":79,"context_line":"    workaround eventlet bug"}],"source_content_type":"text/x-python","patch_set":3,"id":"8f8f71e9_36fc9920","line":76,"range":{"start_line":76,"start_character":7,"end_line":76,"end_character":70},"in_reply_to":"3306b9b2_19c62b87","updated":"2022-07-13 14:32:46.000000000","message":"Done","commit_id":"9a68723438e581aaf2dfbdd94c932d60931a044c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ef716e1e73eea52e80ec97684d74086e82b43b90","unresolved":true,"context_lines":[{"line_number":90,"context_line":"        else:"},{"line_number":91,"context_line":"            self._socket \u003d socket"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def gethostname(self):"},{"line_number":94,"context_line":"        return self._socket.gethostname()"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def getaddrinfo(self, host, port, family, flags):"}],"source_content_type":"text/x-python","patch_set":3,"id":"90567c92_6f27b52d","line":93,"range":{"start_line":93,"start_character":8,"end_line":93,"end_character":19},"updated":"2022-07-13 11:33:09.000000000","message":"I don\u0027t think this method is patched, according to https://github.com/eventlet/eventlet/blob/377b4fb39cc59273bd5ff461eb0388e3c3dffdb3/eventlet/green/socket.py","commit_id":"9a68723438e581aaf2dfbdd94c932d60931a044c"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"5088b8be83d920062292e938aafb0efa9ed80e54","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        else:"},{"line_number":91,"context_line":"            self._socket \u003d socket"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def gethostname(self):"},{"line_number":94,"context_line":"        return self._socket.gethostname()"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def getaddrinfo(self, host, port, family, flags):"}],"source_content_type":"text/x-python","patch_set":3,"id":"d3d40f02_e7b07b9f","line":93,"range":{"start_line":93,"start_character":8,"end_line":93,"end_character":19},"in_reply_to":"90567c92_6f27b52d","updated":"2022-07-13 14:32:46.000000000","message":"Good point. I knew that but in retrospect you are right. Its better to leave it as is.","commit_id":"9a68723438e581aaf2dfbdd94c932d60931a044c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ef716e1e73eea52e80ec97684d74086e82b43b90","unresolved":true,"context_lines":[{"line_number":123,"context_line":"                not addrinfo[0][3].startswith(\u0027localhost\u0027)):"},{"line_number":124,"context_line":"            return addrinfo[0][3]"},{"line_number":125,"context_line":"    except OSError as os_err:"},{"line_number":126,"context_line":"        LOG.warning(\"Error: {}, occured while querying for fqdn. \""},{"line_number":127,"context_line":"                    \"get_hypervisor_hostname will just \""},{"line_number":128,"context_line":"                    \"return {}\".format(os_err, hypervisor_hostname))"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"04241c5e_c667769e","line":126,"range":{"start_line":126,"start_character":8,"end_line":126,"end_character":19},"updated":"2022-07-13 11:33:09.000000000","message":"LOG methods have their own formatting tools. This should be:\n\nLOG.warning(\"Error: %s, occured while querying for fqdn. \"\n            \"get_hypervisor_hostname will just \"\n            \"return %s\", os_err, hypervisor_hostname)","commit_id":"9a68723438e581aaf2dfbdd94c932d60931a044c"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"5088b8be83d920062292e938aafb0efa9ed80e54","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                not addrinfo[0][3].startswith(\u0027localhost\u0027)):"},{"line_number":124,"context_line":"            return addrinfo[0][3]"},{"line_number":125,"context_line":"    except OSError as os_err:"},{"line_number":126,"context_line":"        LOG.warning(\"Error: {}, occured while querying for fqdn. \""},{"line_number":127,"context_line":"                    \"get_hypervisor_hostname will just \""},{"line_number":128,"context_line":"                    \"return {}\".format(os_err, hypervisor_hostname))"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5beefb6c_0f342d55","line":126,"range":{"start_line":126,"start_character":8,"end_line":126,"end_character":19},"in_reply_to":"04241c5e_c667769e","updated":"2022-07-13 14:32:46.000000000","message":"Done","commit_id":"9a68723438e581aaf2dfbdd94c932d60931a044c"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"f4d187303d704558e05098d5b448ec61d2338265","unresolved":true,"context_lines":[{"line_number":93,"context_line":"            self._socket \u003d socket"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def getaddrinfo(self, host, port, family, flags):"},{"line_number":96,"context_line":"        return self._socket.getaddrinfo(host\u003dhost,"},{"line_number":97,"context_line":"                                        port\u003dport,"},{"line_number":98,"context_line":"                                        family\u003dfamily,"},{"line_number":99,"context_line":"                                        flags\u003dflags)"}],"source_content_type":"text/x-python","patch_set":5,"id":"306796cc_f69da78e","line":96,"updated":"2022-07-13 20:08:29.000000000","message":"I\u0027m no eventlet expert, just thinking out loud here about what happens when we use eventlet patched code with this exception. What if unpatched getaddrinfo() gets stuck/slow? Since it\u0027s not patched, it never yields to other greenthreads and will wait on IO forever.\n\nWe don\u0027t know if we\u0027re calling patched or not patched method when troubleshooting such scenario. I\u0027m thinking if we should at minimum add debug logs to L91 and L93 to know when socket library we\u0027re going to be using.","commit_id":"220efa0eef9b9af8b2926e916265975521872fa6"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"885133d4d52c0bc21a2e8725e9e3152625c8cfb4","unresolved":false,"context_lines":[{"line_number":93,"context_line":"            self._socket \u003d socket"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def getaddrinfo(self, host, port, family, flags):"},{"line_number":96,"context_line":"        return self._socket.getaddrinfo(host\u003dhost,"},{"line_number":97,"context_line":"                                        port\u003dport,"},{"line_number":98,"context_line":"                                        family\u003dfamily,"},{"line_number":99,"context_line":"                                        flags\u003dflags)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3cb805ef_093291ec","line":96,"in_reply_to":"306796cc_f69da78e","updated":"2022-07-14 02:45:56.000000000","message":"Good point, and its not very clear from looking at eventletsource code and what would happen. I\u0027ll add the debug logs","commit_id":"220efa0eef9b9af8b2926e916265975521872fa6"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ce01ca65e57e5a42fd3fbc69d2d3260951c165b2","unresolved":true,"context_lines":[{"line_number":92,"context_line":"                      \"Requesting std library socket module from eventlet.\")"},{"line_number":93,"context_line":"            self._socket \u003d patcher.original(socket.__name__)"},{"line_number":94,"context_line":"        else:"},{"line_number":95,"context_line":"            LOG.debug(\"Std library socket module is not patched by eventlet.\""},{"line_number":96,"context_line":"                      \"Using socket module as imported from std library.\")"},{"line_number":97,"context_line":"            self._socket \u003d socket"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"102238a3_7db4c178","line":95,"range":{"start_line":95,"start_character":76,"end_line":95,"end_character":77},"updated":"2022-07-14 16:35:49.000000000","message":"nit: missing space","commit_id":"7003015664b100a29b3f2474b9bd38e4a3a67a1a"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"e79fc97f5aa6290a7a477930467b23e1e37ba53f","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                      \"Requesting std library socket module from eventlet.\")"},{"line_number":93,"context_line":"            self._socket \u003d patcher.original(socket.__name__)"},{"line_number":94,"context_line":"        else:"},{"line_number":95,"context_line":"            LOG.debug(\"Std library socket module is not patched by eventlet.\""},{"line_number":96,"context_line":"                      \"Using socket module as imported from std library.\")"},{"line_number":97,"context_line":"            self._socket \u003d socket"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"2ef0ffa1_fabed87f","line":95,"range":{"start_line":95,"start_character":76,"end_line":95,"end_character":77},"in_reply_to":"102238a3_7db4c178","updated":"2022-07-19 15:22:44.000000000","message":"Done","commit_id":"7003015664b100a29b3f2474b9bd38e4a3a67a1a"}]}
