)]}'
{"etc/octavia.conf":[{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"8cb096dd64c6624c47ecaa201744662612742c1e","unresolved":false,"context_lines":[{"line_number":161,"context_line":""},{"line_number":162,"context_line":"# Maximum time to wait, in milliseconds, for TCP listener content for"},{"line_number":163,"context_line":"# inspection with l7 rules. Time supports \"us\", \"ms\", \"s\", and \"m\" suffixes"},{"line_number":164,"context_line":"# (default is no delay)"},{"line_number":165,"context_line":"# haproxy_tcp_request_inspect_delay \u003d"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"# REST Driver specific"}],"source_content_type":"text/plain","patch_set":1,"id":"5f93b717_f6f5cfcb","line":164,"updated":"2018-02-02 22:02:50.000000000","message":"we should make more clear that this is only applied if an L7 rule is specified... \n\nbut I am now wondering since this can be on any TCP connection if we should ignore L7 and just treat is as a general TCP parameter.","commit_id":"4f039a51073c06bb2dc0562ebccae7469a18baac"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"6fc2e1ac39e35c0e59fc646f706cf9080a1541e2","unresolved":false,"context_lines":[{"line_number":161,"context_line":""},{"line_number":162,"context_line":"# Maximum time to wait, in milliseconds, for TCP listener content for"},{"line_number":163,"context_line":"# inspection with l7 rules. Time supports \"us\", \"ms\", \"s\", and \"m\" suffixes"},{"line_number":164,"context_line":"# (default is no delay)"},{"line_number":165,"context_line":"# haproxy_tcp_request_inspect_delay \u003d"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"# REST Driver specific"}],"source_content_type":"text/plain","patch_set":1,"id":"5f93b717_967ecbac","line":164,"in_reply_to":"5f93b717_f6f5cfcb","updated":"2018-02-02 22:33:27.000000000","message":"I don\u0027t understand your second comment, what other inspections on TCP flows do we have other than the L7 rules?","commit_id":"4f039a51073c06bb2dc0562ebccae7469a18baac"}],"octavia/common/config.py":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"450c37dd2ed9d152e17e442197888b8f3fc43872","unresolved":false,"context_lines":[{"line_number":236,"context_line":"    cfg.StrOpt(\u0027haproxy_stick_size\u0027, default\u003d\u002710k\u0027,"},{"line_number":237,"context_line":"               help\u003d_(\u0027Size of the HAProxy stick table. Accepts k, m, g \u0027"},{"line_number":238,"context_line":"                      \u0027suffixes.  Example: 10k\u0027)),"},{"line_number":239,"context_line":"    cfg.StrOpt(\u0027haproxy_tcp_request_inspect_delay\u0027,"},{"line_number":240,"context_line":"               help\u003d_(\u0027Maximum time to wait, in milliseconds, for TCP \u0027"},{"line_number":241,"context_line":"                      \u0027listener content for inspection with l7 rules. \u0027"},{"line_number":242,"context_line":"                      \u0027Accepts us, ms, s, and m suffixes. \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_50f7dcf6","line":239,"updated":"2018-02-04 22:23:18.000000000","message":"I think we should set the default to something reasonable, but actually helpful, since this really is only impactful when it IS needed.","commit_id":"f50bc7a7b97c736872e5fdc059c64d787fc881bb"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"6a43a22f4b10c59644e6f6b35fe46e291137ad0f","unresolved":false,"context_lines":[{"line_number":236,"context_line":"    cfg.StrOpt(\u0027haproxy_stick_size\u0027, default\u003d\u002710k\u0027,"},{"line_number":237,"context_line":"               help\u003d_(\u0027Size of the HAProxy stick table. Accepts k, m, g \u0027"},{"line_number":238,"context_line":"                      \u0027suffixes.  Example: 10k\u0027)),"},{"line_number":239,"context_line":"    cfg.StrOpt(\u0027haproxy_tcp_request_inspect_delay\u0027,"},{"line_number":240,"context_line":"               help\u003d_(\u0027Maximum time to wait, in milliseconds, for TCP \u0027"},{"line_number":241,"context_line":"                      \u0027listener content for inspection with l7 rules. \u0027"},{"line_number":242,"context_line":"                      \u0027Accepts us, ms, s, and m suffixes. \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_4e03aa43","line":239,"in_reply_to":"3fa0c359_2ea97e7a","updated":"2018-02-05 18:54:30.000000000","message":"Fair, but I have no idea what a sane default would be. On my dev workstation it\u0027s 10s, but on folks clouds....\nI also don\u0027t like silently delaying traffic flows as would happen to flows that don\u0027t make the L7 rules.","commit_id":"f50bc7a7b97c736872e5fdc059c64d787fc881bb"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"09613f056ae66155d87e2c8cb610328ade585ad3","unresolved":false,"context_lines":[{"line_number":236,"context_line":"    cfg.StrOpt(\u0027haproxy_stick_size\u0027, default\u003d\u002710k\u0027,"},{"line_number":237,"context_line":"               help\u003d_(\u0027Size of the HAProxy stick table. Accepts k, m, g \u0027"},{"line_number":238,"context_line":"                      \u0027suffixes.  Example: 10k\u0027)),"},{"line_number":239,"context_line":"    cfg.StrOpt(\u0027haproxy_tcp_request_inspect_delay\u0027,"},{"line_number":240,"context_line":"               help\u003d_(\u0027Maximum time to wait, in milliseconds, for TCP \u0027"},{"line_number":241,"context_line":"                      \u0027listener content for inspection with l7 rules. \u0027"},{"line_number":242,"context_line":"                      \u0027Accepts us, ms, s, and m suffixes. \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_703698b7","line":239,"in_reply_to":"3fa0c359_50f7dcf6","updated":"2018-02-04 22:31:08.000000000","message":"I set no default to match the HAproxy default and to match the current functionality.","commit_id":"f50bc7a7b97c736872e5fdc059c64d787fc881bb"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"271bc7827d391c4c3b5f08bf55a3e2b5de891766","unresolved":false,"context_lines":[{"line_number":236,"context_line":"    cfg.StrOpt(\u0027haproxy_stick_size\u0027, default\u003d\u002710k\u0027,"},{"line_number":237,"context_line":"               help\u003d_(\u0027Size of the HAProxy stick table. Accepts k, m, g \u0027"},{"line_number":238,"context_line":"                      \u0027suffixes.  Example: 10k\u0027)),"},{"line_number":239,"context_line":"    cfg.StrOpt(\u0027haproxy_tcp_request_inspect_delay\u0027,"},{"line_number":240,"context_line":"               help\u003d_(\u0027Maximum time to wait, in milliseconds, for TCP \u0027"},{"line_number":241,"context_line":"                      \u0027listener content for inspection with l7 rules. \u0027"},{"line_number":242,"context_line":"                      \u0027Accepts us, ms, s, and m suffixes. \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa0c359_2ea97e7a","line":239,"in_reply_to":"3fa0c359_703698b7","updated":"2018-02-05 18:47:24.000000000","message":"Our job is to make this accessible and choose sane defaults. I guess it depends on our audience -- are we catering to HAProxy experts or people who \"just want a LB\"? \nI am not sure \"because it matches the HAProxy default\" is the end-all justification we should use.","commit_id":"f50bc7a7b97c736872e5fdc059c64d787fc881bb"}],"octavia/common/jinja/haproxy/jinja_cfg.py":[{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"1ec385b0e48a47408cdfd5c93041abeb9742d6b9","unresolved":false,"context_lines":[{"line_number":201,"context_line":"            \u0027topology\u0027: listener.load_balancer.topology,"},{"line_number":202,"context_line":"            \u0027amphorae\u0027: listener.load_balancer.amphorae,"},{"line_number":203,"context_line":"            \u0027enabled\u0027: listener.enabled,"},{"line_number":204,"context_line":"            \u0027tcp_request_inspect_delay\u0027:"},{"line_number":205,"context_line":"                CONF.haproxy_amphora.haproxy_tcp_request_inspect_delay"},{"line_number":206,"context_line":"        }"},{"line_number":207,"context_line":"        if listener.connection_limit and listener.connection_limit \u003e -1:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_323dbf2a","line":204,"updated":"2018-01-31 21:32:43.000000000","message":"should we sanitize (\u003e\u003d 0 and valid units) first before transforming? whether here or at service start.\n\nSimilarly, haproxy_stick_size is also not being sanitized so it would be justifiable if we don\u0027t here either.","commit_id":"4f039a51073c06bb2dc0562ebccae7469a18baac"},{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"8cb096dd64c6624c47ecaa201744662612742c1e","unresolved":false,"context_lines":[{"line_number":201,"context_line":"            \u0027topology\u0027: listener.load_balancer.topology,"},{"line_number":202,"context_line":"            \u0027amphorae\u0027: listener.load_balancer.amphorae,"},{"line_number":203,"context_line":"            \u0027enabled\u0027: listener.enabled,"},{"line_number":204,"context_line":"            \u0027tcp_request_inspect_delay\u0027:"},{"line_number":205,"context_line":"                CONF.haproxy_amphora.haproxy_tcp_request_inspect_delay"},{"line_number":206,"context_line":"        }"},{"line_number":207,"context_line":"        if listener.connection_limit and listener.connection_limit \u003e -1:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_5607e3ca","line":204,"in_reply_to":"5f93b717_323dbf2a","updated":"2018-02-02 22:02:50.000000000","message":"I think if we check we should do that when we load the config and not when we push to haproxy since a user would have no idea what broke settings an operator might have added.","commit_id":"4f039a51073c06bb2dc0562ebccae7469a18baac"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"3f6d4df1735a3d10339df4f144381472aaa80eb1","unresolved":false,"context_lines":[{"line_number":201,"context_line":"            \u0027topology\u0027: listener.load_balancer.topology,"},{"line_number":202,"context_line":"            \u0027amphorae\u0027: listener.load_balancer.amphorae,"},{"line_number":203,"context_line":"            \u0027enabled\u0027: listener.enabled,"},{"line_number":204,"context_line":"            \u0027tcp_request_inspect_delay\u0027:"},{"line_number":205,"context_line":"                CONF.haproxy_amphora.haproxy_tcp_request_inspect_delay"},{"line_number":206,"context_line":"        }"},{"line_number":207,"context_line":"        if listener.connection_limit and listener.connection_limit \u003e -1:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_b652e733","line":204,"in_reply_to":"5f93b717_323dbf2a","updated":"2018-02-02 22:35:39.000000000","message":"Opened bug: https://storyboard.openstack.org/#!/story/2001513","commit_id":"4f039a51073c06bb2dc0562ebccae7469a18baac"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"6fc2e1ac39e35c0e59fc646f706cf9080a1541e2","unresolved":false,"context_lines":[{"line_number":201,"context_line":"            \u0027topology\u0027: listener.load_balancer.topology,"},{"line_number":202,"context_line":"            \u0027amphorae\u0027: listener.load_balancer.amphorae,"},{"line_number":203,"context_line":"            \u0027enabled\u0027: listener.enabled,"},{"line_number":204,"context_line":"            \u0027tcp_request_inspect_delay\u0027:"},{"line_number":205,"context_line":"                CONF.haproxy_amphora.haproxy_tcp_request_inspect_delay"},{"line_number":206,"context_line":"        }"},{"line_number":207,"context_line":"        if listener.connection_limit and listener.connection_limit \u003e -1:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f93b717_56c92323","line":204,"in_reply_to":"5f93b717_5607e3ca","updated":"2018-02-02 22:33:27.000000000","message":"This is a fair point, and should be done in the configuration file parsing IMO. We have been a bit lax in validating the configuration file settings as it\u0027s operator input as opposed to user input.\nI am going to open a bug that all of the config file input should have validation (regex on the string here for example) as I think this is an effort across the whole config loader.","commit_id":"4f039a51073c06bb2dc0562ebccae7469a18baac"}],"releasenotes/notes/tcp_request_inspect_delay-cb60beaf8b6c4ff7.yaml":[{"author":{"_account_id":10850,"name":"German Eichberger","email":"german.eichberger@gmail.com","username":"german"},"change_message_id":"8cb096dd64c6624c47ecaa201744662612742c1e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Operators can now specify the maximum TCP request inspection delay. This"},{"line_number":5,"context_line":"    configures HAProxy to wait for additional TCP packets before declaring"},{"line_number":6,"context_line":"    no L7 rule match for TCP listeners with L7 policies. The default is no"},{"line_number":7,"context_line":"    delay."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f93b717_b6fbc7bb","line":4,"updated":"2018-02-02 22:02:50.000000000","message":"this might imply this is for all TCP connections - please reword to make that clearer...","commit_id":"4f039a51073c06bb2dc0562ebccae7469a18baac"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"6fc2e1ac39e35c0e59fc646f706cf9080a1541e2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Operators can now specify the maximum TCP request inspection delay. This"},{"line_number":5,"context_line":"    configures HAProxy to wait for additional TCP packets before declaring"},{"line_number":6,"context_line":"    no L7 rule match for TCP listeners with L7 policies. The default is no"},{"line_number":7,"context_line":"    delay."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"5f93b717_96900bef","line":4,"in_reply_to":"5f93b717_b6fbc7bb","updated":"2018-02-02 22:33:27.000000000","message":"It will delay ALL TCP requests if an L7 policy is configured and this setting is set.","commit_id":"4f039a51073c06bb2dc0562ebccae7469a18baac"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"450c37dd2ed9d152e17e442197888b8f3fc43872","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Operators can now specify the maximum TCP request inspection delay used"},{"line_number":5,"context_line":"    for L7 rules. This configures HAProxy to wait for additional TCP packets"},{"line_number":6,"context_line":"    before declaring no L7 rule match for TCP listeners with L7 policies. The"},{"line_number":7,"context_line":"    default is no delay."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa0c359_10d95482","line":4,"updated":"2018-02-04 22:23:18.000000000","message":"Is it the \"maximum\" or is it just a set delay? Does HAProxy know it is \"done\" inspecting the whole packet, so it can release it early in some cases?","commit_id":"f50bc7a7b97c736872e5fdc059c64d787fc881bb"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"09613f056ae66155d87e2c8cb610328ade585ad3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Operators can now specify the maximum TCP request inspection delay used"},{"line_number":5,"context_line":"    for L7 rules. This configures HAProxy to wait for additional TCP packets"},{"line_number":6,"context_line":"    before declaring no L7 rule match for TCP listeners with L7 policies. The"},{"line_number":7,"context_line":"    default is no delay."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa0c359_903b249b","line":4,"in_reply_to":"3fa0c359_10d95482","updated":"2018-02-04 22:31:08.000000000","message":"Maximum, if the rule matches, the packet will flow. If it doesn\u0027t, it will wait up to the delay value.","commit_id":"f50bc7a7b97c736872e5fdc059c64d787fc881bb"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"450c37dd2ed9d152e17e442197888b8f3fc43872","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Operators can now specify the maximum TCP request inspection delay used"},{"line_number":5,"context_line":"    for L7 rules. This configures HAProxy to wait for additional TCP packets"},{"line_number":6,"context_line":"    before declaring no L7 rule match for TCP listeners with L7 policies. The"},{"line_number":7,"context_line":"    default is no delay."},{"line_number":8,"context_line":"    If a user setup a TCP listener and then applied L7 rules to the listener,"},{"line_number":9,"context_line":"    connections may fall through to the default pool even though they match"},{"line_number":10,"context_line":"    the L7 rule(s). This is because with a TCP listener, HAProxy inspects the"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa0c359_30cb30a6","line":7,"updated":"2018-02-04 22:23:18.000000000","message":"As mentioned in the config file, I think we should have a default delay that is reasonably effective. This is a landmine awaiting deployers and end users, since we KNOW it\u0027s a problem, and the effect on anyone who doesn\u0027t need it is nonexistent.","commit_id":"f50bc7a7b97c736872e5fdc059c64d787fc881bb"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"09613f056ae66155d87e2c8cb610328ade585ad3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Operators can now specify the maximum TCP request inspection delay used"},{"line_number":5,"context_line":"    for L7 rules. This configures HAProxy to wait for additional TCP packets"},{"line_number":6,"context_line":"    before declaring no L7 rule match for TCP listeners with L7 policies. The"},{"line_number":7,"context_line":"    default is no delay."},{"line_number":8,"context_line":"    If a user setup a TCP listener and then applied L7 rules to the listener,"},{"line_number":9,"context_line":"    connections may fall through to the default pool even though they match"},{"line_number":10,"context_line":"    the L7 rule(s). This is because with a TCP listener, HAProxy inspects the"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa0c359_50459c16","line":7,"in_reply_to":"3fa0c359_30cb30a6","updated":"2018-02-04 22:31:08.000000000","message":"As I commented on the config file, I set no default to match HAproxy and the current behavior.\nIn reality, if you are using L7 you should be using HTTP listeners. I think this is very much an edge case.","commit_id":"f50bc7a7b97c736872e5fdc059c64d787fc881bb"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"450c37dd2ed9d152e17e442197888b8f3fc43872","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    for L7 rules. This configures HAProxy to wait for additional TCP packets"},{"line_number":6,"context_line":"    before declaring no L7 rule match for TCP listeners with L7 policies. The"},{"line_number":7,"context_line":"    default is no delay."},{"line_number":8,"context_line":"    If a user setup a TCP listener and then applied L7 rules to the listener,"},{"line_number":9,"context_line":"    connections may fall through to the default pool even though they match"},{"line_number":10,"context_line":"    the L7 rule(s). This is because with a TCP listener, HAProxy inspects the"},{"line_number":11,"context_line":"    first packet received with no delay. This first packet may not include the"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3fa0c359_50d03c51","line":8,"updated":"2018-02-04 22:23:18.000000000","message":"nitpick: \"set up\" is two words here","commit_id":"f50bc7a7b97c736872e5fdc059c64d787fc881bb"}]}
