)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"c712338dd43ac944a5db66a166093aca165e9ef9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"838d85b9_b97862a0","updated":"2025-12-03 17:40:05.000000000","message":"Yan - I put some test ideas here https://review.opendev.org/c/openstack/swift/+/969508 sq? wsgi url length test ideas\n\nI think we should treat the max header line testing as a nice-to-have i.e. do not let it slow down having this patch ready ASAP. thanks.","commit_id":"a0e5123d6880b0706afac2a8dd09b6a63d0bf11f"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"73c3a81f0a603adcaacd465de47ea76523deb369","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b8304e24_de8665cd","updated":"2025-12-04 16:02:54.000000000","message":"I spent quite some time today playing with this in my VSAIO.\n\nUsing\n\n$ echo $LONG_NAME | wc -c\n8201\n\n$ curl -i http://saio:8080/v1/AUTH_test/c/$LONG_NAME -I -H \"X-Auth-Token: AUTH_xxx\" -v\n\nWith defaults constraints of 8192 I see \u0027414 Request URI Too Long\u0027, as expected.\n\nWhen I set max_request_line \u003d 8300, I still see requests fail with \u0027400 Header Line Too Long\u0027 !?!\n\nNote that both proxy AND object-server must be restarted to eliminate the \u0027414 Request URI Too Long\u0027 because it is checked in both wsgi servers.\n\nThe \u0027400 Header Line Too Long\u0027 is returned by the object-server. It is due to the proxy adding a Referer header to the backend request, whose value is the concatenation of the method and url (https://github.com/openstack/swift/blob/02bc7e4480334dd8d6f572583c7f85e66223cfba/swift/common/swob.py#L1080-L1081).\n\nSo to allow longer URL paths we need to increase the max_header_size (in at least the object-server for my test), and then I see \u0027404 Not Found\u0027.\n\nIn which case, should we just apply max_header_size to the url length and have only ONE config option to tune??","commit_id":"fa70f026d971f825603ac4b5b4e9a367963d798b"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"9f7d8fc8d5ea9bbc19c8bfee57c6b614c01d2fa8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d7bdf212_ac49a5b0","updated":"2025-12-07 23:07:05.000000000","message":"Cool, nice to have this as a tunable option!\n\nSeeing at this is a new constraint, we should also have a test for it in `test/unit/common/test_constraints.py`.","commit_id":"aa8900c8c9e27c149c3b5895c976a3106ef66ce1"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"018bcb23114dc7b954b4d2660d6839e9abe14a5c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5001da93_ceb14052","updated":"2025-12-08 14:43:38.000000000","message":"I started thinking about how we could functionally test the change. It\u0027s tricky because most tests don\u0027t use a wsgi server (there are some that do in proxy/test_server.py). But I found a probe test that was already changing constraints, so I hooked some assertions in to that. I think it can be a follow-on change https://review.opendev.org/c/openstack/swift/+/970133","commit_id":"aa8900c8c9e27c149c3b5895c976a3106ef66ce1"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"758d09d540c26a99b98cd3574cd07b390837c373","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"6e5dd2bd_52363d37","updated":"2025-12-09 15:02:04.000000000","message":"I tested this functionally in a vsaio to both lengthen and shorten max_request_line and it works fine.\n\nThe probe test in the follow-on patch [1] also verifies this change.\n\nThis is going to be useful when users have very long pre-signed urls for example.\n\n[1] https://review.opendev.org/c/openstack/swift/+/970133/2?usp\u003drelated-change","commit_id":"a6c3e7dd6c1eaa5bfb7c72ba67b2560f62951ad6"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"f70730aadf0093ed025b182e8cc02273a34b800b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"27b49d29_a57487ee","updated":"2025-12-10 02:16:33.000000000","message":"This has merged, ubt realised I had a draft comment. it was only a nit so doesn\u0027t metter. But just for completeness","commit_id":"a6c3e7dd6c1eaa5bfb7c72ba67b2560f62951ad6"}],"etc/swift.conf-sample":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"73c3a81f0a603adcaacd465de47ea76523deb369","unresolved":true,"context_lines":[{"line_number":154,"context_line":"# See also include_service_catalog in proxy-server.conf-sample"},{"line_number":155,"context_line":"# (documented at https://docs.openstack.org/swift/latest/overview_auth.html)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"#max_header_size \u003d 8192"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"# max_request_line is the max number of characters in the url string."}],"source_content_type":"application/octet-stream","patch_set":2,"id":"4d87e7ea_c5e5130b","line":157,"updated":"2025-12-04 16:02:54.000000000","message":"this corresponds to ``eventlet.wsgi.MAX_HEADER_LINE``","commit_id":"fa70f026d971f825603ac4b5b4e9a367963d798b"},{"author":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"change_message_id":"3dc2867dc154649965505ed097e0dc69f74502c1","unresolved":false,"context_lines":[{"line_number":154,"context_line":"# See also include_service_catalog in proxy-server.conf-sample"},{"line_number":155,"context_line":"# (documented at https://docs.openstack.org/swift/latest/overview_auth.html)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"#max_header_size \u003d 8192"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"# max_request_line is the max number of characters in the url string."}],"source_content_type":"application/octet-stream","patch_set":2,"id":"7e59fb80_941b952f","line":157,"in_reply_to":"4d87e7ea_c5e5130b","updated":"2025-12-04 20:36:28.000000000","message":"Acknowledged","commit_id":"fa70f026d971f825603ac4b5b4e9a367963d798b"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"73c3a81f0a603adcaacd465de47ea76523deb369","unresolved":true,"context_lines":[{"line_number":157,"context_line":"#max_header_size \u003d 8192"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"# max_request_line is the max number of characters in the url string."},{"line_number":161,"context_line":"# Using 8192 as default because eventlet use 8192 as max url length limit."},{"line_number":162,"context_line":"#max_request_line \u003d 8192"},{"line_number":163,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":2,"id":"b21ab60a_734aee69","line":160,"range":{"start_line":160,"start_character":26,"end_line":160,"end_character":68},"updated":"2025-12-04 16:02:54.000000000","message":"this isn\u0027t accurate: IIUC it is the max number of characters on the first line i.e. ``\u003cprotocol \u003cmethod\u003e \u003curl\u003e``","commit_id":"fa70f026d971f825603ac4b5b4e9a367963d798b"},{"author":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"change_message_id":"3dc2867dc154649965505ed097e0dc69f74502c1","unresolved":false,"context_lines":[{"line_number":157,"context_line":"#max_header_size \u003d 8192"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"# max_request_line is the max number of characters in the url string."},{"line_number":161,"context_line":"# Using 8192 as default because eventlet use 8192 as max url length limit."},{"line_number":162,"context_line":"#max_request_line \u003d 8192"},{"line_number":163,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":2,"id":"f08f02a7_447d5cc2","line":160,"range":{"start_line":160,"start_character":26,"end_line":160,"end_character":68},"in_reply_to":"b21ab60a_734aee69","updated":"2025-12-04 20:36:28.000000000","message":"Acknowledged","commit_id":"fa70f026d971f825603ac4b5b4e9a367963d798b"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"73c3a81f0a603adcaacd465de47ea76523deb369","unresolved":true,"context_lines":[{"line_number":160,"context_line":"# max_request_line is the max number of characters in the url string."},{"line_number":161,"context_line":"# Using 8192 as default because eventlet use 8192 as max url length limit."},{"line_number":162,"context_line":"#max_request_line \u003d 8192"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"# By default the maximum number of allowed headers depends on the number of max"},{"line_number":165,"context_line":"# allowed metadata settings plus a default value of 36 for swift internally"},{"line_number":166,"context_line":"# generated headers and regular http headers.  If for some reason this is not"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"51270c68_12af9dc7","line":163,"updated":"2025-12-04 16:02:54.000000000","message":"This corresponds to wsgi.server() ``url_length_limit`` kwarg which defaults to eventlet.wsgi.MAX_REQUEST_LINE\n\nI *think* the latter name in wsgi is more accurate since it is the length of the \u0027raw request line\u0027 that is tested, which includes the protocol, method and path.\n\nSimilarly, this conf option name seems good despite it not really relating to ``url_length_limit``. 👍","commit_id":"fa70f026d971f825603ac4b5b4e9a367963d798b"},{"author":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"change_message_id":"3dc2867dc154649965505ed097e0dc69f74502c1","unresolved":false,"context_lines":[{"line_number":160,"context_line":"# max_request_line is the max number of characters in the url string."},{"line_number":161,"context_line":"# Using 8192 as default because eventlet use 8192 as max url length limit."},{"line_number":162,"context_line":"#max_request_line \u003d 8192"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"# By default the maximum number of allowed headers depends on the number of max"},{"line_number":165,"context_line":"# allowed metadata settings plus a default value of 36 for swift internally"},{"line_number":166,"context_line":"# generated headers and regular http headers.  If for some reason this is not"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"b7258d74_f03749b2","line":163,"in_reply_to":"51270c68_12af9dc7","updated":"2025-12-04 20:36:28.000000000","message":"Ack, updated per our discussion","commit_id":"fa70f026d971f825603ac4b5b4e9a367963d798b"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"018bcb23114dc7b954b4d2660d6839e9abe14a5c","unresolved":true,"context_lines":[{"line_number":157,"context_line":"#max_header_size \u003d 8192"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"# max_request_line is the max number of characters in the request line."},{"line_number":161,"context_line":"# Using 8192 as default because eventlet use 8192 as default max request line."},{"line_number":162,"context_line":"#max_request_line \u003d 8192"},{"line_number":163,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"3f0fb9a8_4dde429a","line":160,"range":{"start_line":160,"start_character":26,"end_line":160,"end_character":36},"updated":"2025-12-08 14:43:38.000000000","message":"eventlet.wsgi annoyingly requires len(request_line) \u003c max_request_line so the conf option is actually 1 more than the max number of characters 😞\n\nWe could compensate by adding 1, so the conf option really is the max characters, but that will lead to confusion. So I suggest we just document it very clearly:\n\n``\nmax_request_line constrains the max number of characters in the request\nline; a request line \u0027\u003cmethod\u003e \u003curl\u003e \u003cHTTP/1.1\u003e\\r\\n\u003e\u0027 must have less\nthan this number of characters.\n``","commit_id":"aa8900c8c9e27c149c3b5895c976a3106ef66ce1"},{"author":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"change_message_id":"6f943eb2504c3ee20751f66962d3ff5832c3d903","unresolved":false,"context_lines":[{"line_number":157,"context_line":"#max_header_size \u003d 8192"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"# max_request_line is the max number of characters in the request line."},{"line_number":161,"context_line":"# Using 8192 as default because eventlet use 8192 as default max request line."},{"line_number":162,"context_line":"#max_request_line \u003d 8192"},{"line_number":163,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"f399b5ad_1c87b123","line":160,"range":{"start_line":160,"start_character":26,"end_line":160,"end_character":36},"in_reply_to":"3f0fb9a8_4dde429a","updated":"2025-12-08 20:31:51.000000000","message":"Acknowledged","commit_id":"aa8900c8c9e27c149c3b5895c976a3106ef66ce1"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"018bcb23114dc7b954b4d2660d6839e9abe14a5c","unresolved":true,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"# max_request_line is the max number of characters in the request line."},{"line_number":161,"context_line":"# Using 8192 as default because eventlet use 8192 as default max request line."},{"line_number":162,"context_line":"#max_request_line \u003d 8192"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"# By default the maximum number of allowed headers depends on the number of max"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"7b8e4ac6_2ee7841c","line":161,"updated":"2025-12-08 14:43:38.000000000","message":"We should add something about the coupling with max header length:\n\n```\n# Note: Request urls are concatenated with the request method to form\n# the Referer header that is sent to backend servers, so it may be\n# necessary to increase max_header_size when increasing max_request_line.\n```","commit_id":"aa8900c8c9e27c149c3b5895c976a3106ef66ce1"},{"author":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"change_message_id":"6f943eb2504c3ee20751f66962d3ff5832c3d903","unresolved":false,"context_lines":[{"line_number":158,"context_line":""},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"# max_request_line is the max number of characters in the request line."},{"line_number":161,"context_line":"# Using 8192 as default because eventlet use 8192 as default max request line."},{"line_number":162,"context_line":"#max_request_line \u003d 8192"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"# By default the maximum number of allowed headers depends on the number of max"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"a911ee5c_8616996b","line":161,"in_reply_to":"7b8e4ac6_2ee7841c","updated":"2025-12-08 20:31:51.000000000","message":"Acknowledged","commit_id":"aa8900c8c9e27c149c3b5895c976a3106ef66ce1"}],"swift/common/constraints.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"73c3a81f0a603adcaacd465de47ea76523deb369","unresolved":true,"context_lines":[{"line_number":52,"context_line":"    \u0027max_meta_count\u0027: MAX_META_COUNT,"},{"line_number":53,"context_line":"    \u0027max_meta_overall_size\u0027: MAX_META_OVERALL_SIZE,"},{"line_number":54,"context_line":"    \u0027max_header_size\u0027: MAX_HEADER_SIZE,"},{"line_number":55,"context_line":"    \u0027max_request_line\u0027: MAX_REQUEST_LINE,"},{"line_number":56,"context_line":"    \u0027max_object_name_length\u0027: MAX_OBJECT_NAME_LENGTH,"},{"line_number":57,"context_line":"    \u0027container_listing_limit\u0027: CONTAINER_LISTING_LIMIT,"},{"line_number":58,"context_line":"    \u0027account_listing_limit\u0027: ACCOUNT_LISTING_LIMIT,"}],"source_content_type":"text/x-python","patch_set":2,"id":"e915ce4f_204250f1","line":55,"updated":"2025-12-04 16:02:54.000000000","message":"the failing test is because the proxy app registers anything in EFFECTIVE_CONSTRAINTS for swift info requests, and the test is deliberately brittle:\n\nhttps://github.com/openstack/swift/blob/d9883d083409baac3db44e1db14bf3c79a75f411/swift/proxy/server.py#L366-L373","commit_id":"fa70f026d971f825603ac4b5b4e9a367963d798b"},{"author":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"change_message_id":"3dc2867dc154649965505ed097e0dc69f74502c1","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    \u0027max_meta_count\u0027: MAX_META_COUNT,"},{"line_number":53,"context_line":"    \u0027max_meta_overall_size\u0027: MAX_META_OVERALL_SIZE,"},{"line_number":54,"context_line":"    \u0027max_header_size\u0027: MAX_HEADER_SIZE,"},{"line_number":55,"context_line":"    \u0027max_request_line\u0027: MAX_REQUEST_LINE,"},{"line_number":56,"context_line":"    \u0027max_object_name_length\u0027: MAX_OBJECT_NAME_LENGTH,"},{"line_number":57,"context_line":"    \u0027container_listing_limit\u0027: CONTAINER_LISTING_LIMIT,"},{"line_number":58,"context_line":"    \u0027account_listing_limit\u0027: ACCOUNT_LISTING_LIMIT,"}],"source_content_type":"text/x-python","patch_set":2,"id":"f2660755_068e27c7","line":55,"in_reply_to":"e915ce4f_204250f1","updated":"2025-12-04 20:36:28.000000000","message":"Acknowledged","commit_id":"fa70f026d971f825603ac4b5b4e9a367963d798b"}],"swift/common/wsgi.py":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"9f7d8fc8d5ea9bbc19c8bfee57c6b614c01d2fa8","unresolved":true,"context_lines":[{"line_number":435,"context_line":"    else:"},{"line_number":436,"context_line":"        protocol_class \u003d SwiftHttpProtocol"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"    max_request_line \u003d constraints.EFFECTIVE_CONSTRAINTS[\u0027max_request_line\u0027]"},{"line_number":439,"context_line":"    server_kwargs \u003d {"},{"line_number":440,"context_line":"        \u0027custom_pool\u0027: pool,"},{"line_number":441,"context_line":"        \u0027protocol\u0027: protocol_class,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ceb943b2_cd016e10","line":438,"range":{"start_line":438,"start_character":23,"end_line":438,"end_character":76},"updated":"2025-12-07 23:07:05.000000000","message":"Pretty sure we can just use:\n```\ncontraints.MAX_REQUEST_LINE\n```\n\nBecause we write these into the `contraints.__global__`","commit_id":"aa8900c8c9e27c149c3b5895c976a3106ef66ce1"},{"author":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"change_message_id":"6f943eb2504c3ee20751f66962d3ff5832c3d903","unresolved":false,"context_lines":[{"line_number":435,"context_line":"    else:"},{"line_number":436,"context_line":"        protocol_class \u003d SwiftHttpProtocol"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"    max_request_line \u003d constraints.EFFECTIVE_CONSTRAINTS[\u0027max_request_line\u0027]"},{"line_number":439,"context_line":"    server_kwargs \u003d {"},{"line_number":440,"context_line":"        \u0027custom_pool\u0027: pool,"},{"line_number":441,"context_line":"        \u0027protocol\u0027: protocol_class,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7d7920bb_7f778064","line":438,"range":{"start_line":438,"start_character":23,"end_line":438,"end_character":76},"in_reply_to":"ceb943b2_cd016e10","updated":"2025-12-08 20:31:51.000000000","message":"Acknowledged","commit_id":"aa8900c8c9e27c149c3b5895c976a3106ef66ce1"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"f70730aadf0093ed025b182e8cc02273a34b800b","unresolved":true,"context_lines":[{"line_number":444,"context_line":"        # the AWS SDK to work with s3api middleware (it needs an \"ETag\""},{"line_number":445,"context_line":"        # header; \"Etag\" just won\u0027t do)."},{"line_number":446,"context_line":"        \u0027capitalize_response_headers\u0027: False,"},{"line_number":447,"context_line":"        \u0027url_length_limit\u0027: max_request_line,"},{"line_number":448,"context_line":"    }"},{"line_number":449,"context_line":"    if conf.get(\u0027keepalive_timeout\u0027):"},{"line_number":450,"context_line":"        server_kwargs[\u0027keepalive\u0027] \u003d float(conf[\u0027keepalive_timeout\u0027]) or False"}],"source_content_type":"text/x-python","patch_set":4,"id":"c8010e7f_d3ff1051","line":447,"range":{"start_line":447,"start_character":28,"end_line":447,"end_character":44},"updated":"2025-12-10 02:16:33.000000000","message":"If this is the only reference, we could drop the `max_request_line` local variable and just:\n```\n\u0027url_length_limit\u0027: contraints.MAX_REQUEST_LINE,\n```\n\nBut this is really just a NIT, but also reads better I think, because no it\u0027s obvious its a swift contraint.","commit_id":"a6c3e7dd6c1eaa5bfb7c72ba67b2560f62951ad6"}],"test/unit/proxy/test_server.py":[{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"9f7d8fc8d5ea9bbc19c8bfee57c6b614c01d2fa8","unresolved":true,"context_lines":[{"line_number":12182,"context_line":"        self.assertEqual(si[\u0027max_container_name_length\u0027],"},{"line_number":12183,"context_line":"                         constraints.MAX_CONTAINER_NAME_LENGTH)"},{"line_number":12184,"context_line":"        self.assertEqual(si[\u0027max_object_name_length\u0027],"},{"line_number":12185,"context_line":"                         constraints.MAX_OBJECT_NAME_LENGTH)"},{"line_number":12186,"context_line":"        self.assertIn(\u0027strict_cors_mode\u0027, si)"},{"line_number":12187,"context_line":"        self.assertFalse(si[\u0027allow_account_management\u0027])"},{"line_number":12188,"context_line":"        self.assertFalse(si[\u0027allow_open_expired\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"2f80e06f_01107d29","line":12185,"updated":"2025-12-07 23:07:05.000000000","message":"We should have an assertEqual for the new contraint here too","commit_id":"aa8900c8c9e27c149c3b5895c976a3106ef66ce1"},{"author":{"_account_id":36606,"name":"Yan Xiao","display_name":"Yan","email":"yanxiao@nvidia.com","username":"yanxiao"},"change_message_id":"6f943eb2504c3ee20751f66962d3ff5832c3d903","unresolved":false,"context_lines":[{"line_number":12182,"context_line":"        self.assertEqual(si[\u0027max_container_name_length\u0027],"},{"line_number":12183,"context_line":"                         constraints.MAX_CONTAINER_NAME_LENGTH)"},{"line_number":12184,"context_line":"        self.assertEqual(si[\u0027max_object_name_length\u0027],"},{"line_number":12185,"context_line":"                         constraints.MAX_OBJECT_NAME_LENGTH)"},{"line_number":12186,"context_line":"        self.assertIn(\u0027strict_cors_mode\u0027, si)"},{"line_number":12187,"context_line":"        self.assertFalse(si[\u0027allow_account_management\u0027])"},{"line_number":12188,"context_line":"        self.assertFalse(si[\u0027allow_open_expired\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"119784a6_1791e34b","line":12185,"in_reply_to":"2f80e06f_01107d29","updated":"2025-12-08 20:31:51.000000000","message":"Good point.\n\nLooking at test_constraints.py, the new constraints are actually implicitly covered by unit tests such as TestConstraintsConfig::test_override_constraints which iterates over DEFAULT_CONSTRAINTS. A follow-up patch for probe test would be added to test the request line config in wsgi server. Hopefully that addresses the tests for new config option.","commit_id":"aa8900c8c9e27c149c3b5895c976a3106ef66ce1"}]}
