)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"336903a6e54595093ec158f454e118f5abf5494e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"0ef76a41_338a03fa","updated":"2024-04-19 21:39:24.000000000","message":"I\u0027m not sure this is needing to be a goal directly vs an oslo spec given the amount of work seems smallish?","commit_id":"c0d6c647e0895c4fd33341621be3b2dcad4c9481"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"d8cb7ef88e44e5db0f54934d71b7c30c6cbcc355","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f852197e_1f66a097","updated":"2024-04-22 13:44:44.000000000","message":"The promise of Eventlet is to turn existing code into non blocking code without changing anything, that\u0027s promise is not true. Numerous are the side effects of patching an existing applications. Race condition and deadlocks appears, restores of stdlibs modules are needed, etcetera, etcetera. At the end the existing code should be adapted. The promise is never kept. Promises only bind those who believe them.\n\nEventlet is a slimy and liquid things. When used, Eventlet dripping in all over the stack. Then changes are requested. Disenchantment!\n\nI think that 99% of the observable Eventlet usages in shared libraries are due to stack that is infected by Eventlet and where shared libraries need medication to treat this infection.\n\nIf we stop the medication we run the risk of the patient relapsing.\n\nIMO, Some patient can be cured like oslo.log but I\u0027m not sure we will be able to cure all of them. Especially those where we try to disinfect from the monkeypatch symptomes by reapplying the original stdlib modules.","commit_id":"c0d6c647e0895c4fd33341621be3b2dcad4c9481"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"d690c8f045a9278af20664bfd73b3b0e5b152f13","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"c2897f60_24a137be","in_reply_to":"021d6541_f809d8ff","updated":"2024-04-23 07:55:08.000000000","message":"Since almost all the listed occurence of Eventlet on Oslo are due to usage of Eventlet in the upper layers of the stack, on individual projects, and since the majority of the listed occurences are fixes to solve side effects of Eventlet usages in individual projects, IMO, that\u0027s a shared goal. \n\nRemoving some of them would surely require significant updates in consuming projects.\n\nAs the goal of this proposal is to ensure that shared libraries are usable by projects which no longer wish to run eventlet or monkey_patch the \nstdlib, projects which still wish to run eventlet or monkey_patch the stdlib should be responsible for fixing the side effects they introduced on shared libraries. Especially all the shared libraries fixes which consist to restore original stdlib modules.","commit_id":"c0d6c647e0895c4fd33341621be3b2dcad4c9481"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"1e1cec67aea30af2da55c34a01486237d10526cc","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"021d6541_f809d8ff","in_reply_to":"0ef76a41_338a03fa","updated":"2024-04-22 08:54:21.000000000","message":"Given that all the listed repos are under oslo governance, I agree this should not need to be a shared goal - unless it turns out that there are changes needed that require significant updates also in consuming projects.\n\nWhether or not caring about the oslo project itself should be a more widely shared effort is another discussion, though.","commit_id":"c0d6c647e0895c4fd33341621be3b2dcad4c9481"}],"goals/proposed/remove-required-eventlet-dependencies.rst":[{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"d8cb7ef88e44e5db0f54934d71b7c30c6cbcc355","unresolved":true,"context_lines":[{"line_number":1,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":2,"context_line":"Remove required eventlet dependencies"},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Eventlet has several known issues, including no long-term maintenance plan."}],"source_content_type":"text/x-rst","patch_set":1,"id":"b28bd4b3_02c1585c","line":2,"range":{"start_line":2,"start_character":0,"end_line":2,"end_character":37},"updated":"2024-04-22 13:44:44.000000000","message":"I think that most of the eventlet occurences in shared libraries are there more to manage side effects and bugs related to eventlet than to use eventlet features or to use eventlet as a library, except the oslo.utils use case.","commit_id":"c0d6c647e0895c4fd33341621be3b2dcad4c9481"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"d8cb7ef88e44e5db0f54934d71b7c30c6cbcc355","unresolved":true,"context_lines":[{"line_number":7,"context_line":"environments. However, many shared parts of OpenStack, such as many oslo"},{"line_number":8,"context_line":"libraries, have an unavoidable dependency on eventlet."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"This goal is to rework any shared libraries in OpenStack to ensure they are"},{"line_number":11,"context_line":"usable by projects which no longer wish to run eventlet or monkey_patch the"},{"line_number":12,"context_line":"stdlib."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"a2ad8b60_0cd42c3b","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":22},"updated":"2024-04-22 13:44:44.000000000","message":"Which kind of reworks are you proposing? \n\nIf I well understood, this proposal is more to simply drop eventlet imports from shared libraries, exact?","commit_id":"c0d6c647e0895c4fd33341621be3b2dcad4c9481"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"d8cb7ef88e44e5db0f54934d71b7c30c6cbcc355","unresolved":true,"context_lines":[{"line_number":8,"context_line":"libraries, have an unavoidable dependency on eventlet."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"This goal is to rework any shared libraries in OpenStack to ensure they are"},{"line_number":11,"context_line":"usable by projects which no longer wish to run eventlet or monkey_patch the"},{"line_number":12,"context_line":"stdlib."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Champion"},{"line_number":15,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"c1a8fd6a_ef953f92","line":12,"range":{"start_line":11,"start_character":0,"end_line":12,"end_character":7},"updated":"2024-04-22 13:44:44.000000000","message":"While individual projects continue using shared libraries and eventlet at the same time, we need a way to have eventlet supported in shared libraries.","commit_id":"c0d6c647e0895c4fd33341621be3b2dcad4c9481"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"d8cb7ef88e44e5db0f54934d71b7c30c6cbcc355","unresolved":true,"context_lines":[{"line_number":44,"context_line":"eventlet."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"- openstack/etcd3gw"},{"line_number":47,"context_line":"  - Contains workaround code for eventlet but only if monkeypatched"},{"line_number":48,"context_line":"- openstack/futurist"},{"line_number":49,"context_line":"  - Signficiant apparently eventlet usage"},{"line_number":50,"context_line":"- openstack/oslo.cache"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7256cca6_03a9af95","line":47,"range":{"start_line":47,"start_character":4,"end_line":47,"end_character":67},"updated":"2024-04-22 13:44:44.000000000","message":"Removing workarounds related to eventlet would mean reintroducing bugs... Not sure this is something feasible.","commit_id":"c0d6c647e0895c4fd33341621be3b2dcad4c9481"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"d8cb7ef88e44e5db0f54934d71b7c30c6cbcc355","unresolved":true,"context_lines":[{"line_number":48,"context_line":"- openstack/futurist"},{"line_number":49,"context_line":"  - Signficiant apparently eventlet usage"},{"line_number":50,"context_line":"- openstack/oslo.cache"},{"line_number":51,"context_line":"  - Imports eventlet if in venv, should probably only import if patched"},{"line_number":52,"context_line":"- openstack/oslo.concurrency"},{"line_number":53,"context_line":"  - Imports eventlet if in venv, should probably only import if patched"},{"line_number":54,"context_line":"- openstack/oslo.db"}],"source_content_type":"text/x-rst","patch_set":1,"id":"8dcbc443_55ae3e42","line":51,"range":{"start_line":51,"start_character":4,"end_line":51,"end_character":71},"updated":"2024-04-22 13:44:44.000000000","message":"There is more than that.\noslo.cache have a couple of workaround related to eventlet monkeypatch side effects https://opendev.org/openstack/oslo.cache/search?q\u003deventlet\n\nI\u0027m not sure these workarounds could be removed...","commit_id":"c0d6c647e0895c4fd33341621be3b2dcad4c9481"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"d8cb7ef88e44e5db0f54934d71b7c30c6cbcc355","unresolved":true,"context_lines":[{"line_number":50,"context_line":"- openstack/oslo.cache"},{"line_number":51,"context_line":"  - Imports eventlet if in venv, should probably only import if patched"},{"line_number":52,"context_line":"- openstack/oslo.concurrency"},{"line_number":53,"context_line":"  - Imports eventlet if in venv, should probably only import if patched"},{"line_number":54,"context_line":"- openstack/oslo.db"},{"line_number":55,"context_line":"  - Used only in tests. Likely no action needed."},{"line_number":56,"context_line":"- openstack/oslo.log"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fb050d58_db49d36f","line":53,"range":{"start_line":53,"start_character":4,"end_line":53,"end_character":71},"updated":"2024-04-22 13:44:44.000000000","message":"Eventlet is invasive and oslo.concurrency suffer from several eventlet side effects in lockutils and processutils.\n\nhttps://opendev.org/openstack/oslo.concurrency/search?q\u003deventlet","commit_id":"c0d6c647e0895c4fd33341621be3b2dcad4c9481"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"d8cb7ef88e44e5db0f54934d71b7c30c6cbcc355","unresolved":true,"context_lines":[{"line_number":52,"context_line":"- openstack/oslo.concurrency"},{"line_number":53,"context_line":"  - Imports eventlet if in venv, should probably only import if patched"},{"line_number":54,"context_line":"- openstack/oslo.db"},{"line_number":55,"context_line":"  - Used only in tests. Likely no action needed."},{"line_number":56,"context_line":"- openstack/oslo.log"},{"line_number":57,"context_line":"  - Uses eventlet for fixing up logging issues. Is fixing bug #1995514 enough?"},{"line_number":58,"context_line":"- openstack/oslo.messaging"}],"source_content_type":"text/x-rst","patch_set":1,"id":"71b96c0c_fb092234","line":55,"range":{"start_line":55,"start_character":4,"end_line":55,"end_character":48},"updated":"2024-04-22 13:44:44.000000000","message":"Do you propose to remove these tests or to ignore them?\nI\u0027m not sure to see where we want to go with this kind of usage.\n\nIMO we should not remove this kind of tests if individual projects still use eventlet somewhere.","commit_id":"c0d6c647e0895c4fd33341621be3b2dcad4c9481"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"d8cb7ef88e44e5db0f54934d71b7c30c6cbcc355","unresolved":true,"context_lines":[{"line_number":54,"context_line":"- openstack/oslo.db"},{"line_number":55,"context_line":"  - Used only in tests. Likely no action needed."},{"line_number":56,"context_line":"- openstack/oslo.log"},{"line_number":57,"context_line":"  - Uses eventlet for fixing up logging issues. Is fixing bug #1995514 enough?"},{"line_number":58,"context_line":"- openstack/oslo.messaging"},{"line_number":59,"context_line":"  - Appears it should be safe if we use threading executor, needs testing"},{"line_number":60,"context_line":"- openstack/oslo.privsep"}],"source_content_type":"text/x-rst","patch_set":1,"id":"75cdcfc0_a0cb4d54","line":57,"range":{"start_line":57,"start_character":48,"end_line":57,"end_character":78},"updated":"2024-04-22 13:44:44.000000000","message":"Apparently that use case is the only one in oslo.log, and IMO, without too digging, this removal should be doable.","commit_id":"c0d6c647e0895c4fd33341621be3b2dcad4c9481"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"d8cb7ef88e44e5db0f54934d71b7c30c6cbcc355","unresolved":true,"context_lines":[{"line_number":59,"context_line":"  - Appears it should be safe if we use threading executor, needs testing"},{"line_number":60,"context_line":"- openstack/oslo.privsep"},{"line_number":61,"context_line":"  - Imports eventlet, but doesn\u0027t patch -- is this an OK state?"},{"line_number":62,"context_line":"- openstack/oslo.rootwrap"},{"line_number":63,"context_line":"  - Imports eventlet, but appears it should work without it."},{"line_number":64,"context_line":"- openstack/oslo.service"},{"line_number":65,"context_line":"  - WSGI server function strongly dependent on eventlet; hard to separate"}],"source_content_type":"text/x-rst","patch_set":1,"id":"422d872f_7af6c760","line":62,"range":{"start_line":62,"start_character":17,"end_line":62,"end_character":25},"updated":"2024-04-22 13:44:44.000000000","message":"if I\u0027m right privsep should be prefered to rootwrap. If feasible, I think we should more encourage the usage of privsep rather than spend time on an almost dead library.\n\nHowever, eventlet usages in oslo.rootwrap seems mostly workarounds... so I\u0027m not sure they are \"removable\".","commit_id":"c0d6c647e0895c4fd33341621be3b2dcad4c9481"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"d8cb7ef88e44e5db0f54934d71b7c30c6cbcc355","unresolved":true,"context_lines":[{"line_number":63,"context_line":"  - Imports eventlet, but appears it should work without it."},{"line_number":64,"context_line":"- openstack/oslo.service"},{"line_number":65,"context_line":"  - WSGI server function strongly dependent on eventlet; hard to separate"},{"line_number":66,"context_line":"  - May be possible to use https://github.com/sileht/cotyledon for service management"},{"line_number":67,"context_line":"- openstack/oslo.utils"},{"line_number":68,"context_line":"  - Imported conditionally in eventletutils module, probably OK?"},{"line_number":69,"context_line":"- openstack/oslo.versionedobjects"}],"source_content_type":"text/x-rst","patch_set":1,"id":"b21cea5e_eba6a22d","line":66,"range":{"start_line":66,"start_character":4,"end_line":66,"end_character":85},"updated":"2024-04-22 13:44:44.000000000","message":"I\u0027d really encourage that solution. Migrating the individual projects to cotyledon.","commit_id":"c0d6c647e0895c4fd33341621be3b2dcad4c9481"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"d8cb7ef88e44e5db0f54934d71b7c30c6cbcc355","unresolved":true,"context_lines":[{"line_number":65,"context_line":"  - WSGI server function strongly dependent on eventlet; hard to separate"},{"line_number":66,"context_line":"  - May be possible to use https://github.com/sileht/cotyledon for service management"},{"line_number":67,"context_line":"- openstack/oslo.utils"},{"line_number":68,"context_line":"  - Imported conditionally in eventletutils module, probably OK?"},{"line_number":69,"context_line":"- openstack/oslo.versionedobjects"},{"line_number":70,"context_line":"  - Used in tests only, probably OK."},{"line_number":71,"context_line":"- openstack/taskflow"}],"source_content_type":"text/x-rst","patch_set":1,"id":"935c4b66_2b4a45a9","line":68,"range":{"start_line":68,"start_character":4,"end_line":68,"end_character":64},"updated":"2024-04-22 13:44:44.000000000","message":"I think this is the only part where eventlet is used in oslo more or less voluntarily.","commit_id":"c0d6c647e0895c4fd33341621be3b2dcad4c9481"}]}
