)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"94124f407bbcda3ab92626ad1e9a88b8b5ed4c3a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"e9c47403_d98ae47a","updated":"2022-02-08 18:59:20.000000000","message":"Al makes a strong case for absolute size and zero is log everything - I don\u0027t see why it wouldn\u0027t be that way.\n\nAre there any strong objections towards moving the change in that direction?  Is the only missing piece round tuits?","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"17c677ff8a777354de489f48181e84936ab2cd96","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"6eb5ca9b_840590f0","updated":"2022-02-10 06:41:45.000000000","message":"Rebased and simplified to just be an asolute threshold for when to warn. I think I\u0027ve removed all the old max_item_size cruft... will check again post dinner.","commit_id":"be428b7b7436f791b78d3301a274f1e7e2c336a3"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"d268b4d483ae50df258064bfd6f09d625332219b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"ec485c86_0255ed83","updated":"2022-02-15 15:54:59.000000000","message":"I only really see good stuff here","commit_id":"5c7442136aa417c6efa7424e3058ec5558527991"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"58273297e751ad8f0aaf8d75a8ff1bb1610c53fb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"e9bbaa9e_dcb38a93","updated":"2022-02-14 03:23:10.000000000","message":"recheck","commit_id":"5c7442136aa417c6efa7424e3058ec5558527991"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"9cce9ecc38e4c245dbab3e4e9693dc0cf839a185","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"69dcc143_099632c7","updated":"2022-02-15 17:28:42.000000000","message":"fixed a typo","commit_id":"05d83b0a476b5cabcb25e514b31218cc0b37c1fd"}],"etc/memcache.conf-sample":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"e370fef1dffa001e7b960ec424b889efdb52ab3c","unresolved":true,"context_lines":[{"line_number":59,"context_line":"#"},{"line_number":60,"context_line":"# The item_size_max is an option set in memcache that controls to max size"},{"line_number":61,"context_line":"# a single item can be. By telling the memcache client here what it is, it\u0027ll"},{"line_number":62,"context_line":"# start logging a warning if an item size ever gets above 80%. This will help"},{"line_number":63,"context_line":"# alert you if an increase to memcache\u0027s item_size_max is needed soon."},{"line_number":64,"context_line":"# A value of auto will mean swift\u0027s memcache client will attempt to pull the"},{"line_number":65,"context_line":"# value out of memcache (via a \u0027stats settings\u0027 call to memcache) and if it fails"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"979f8dfa_e7ecab56","line":62,"range":{"start_line":62,"start_character":18,"end_line":62,"end_character":61},"updated":"2021-06-11 22:26:23.000000000","message":"I wonder if it\u0027d be easier to reason about if the config option was something like\n\n item_size_warning_threshold\n\nso we don\u0027t have the 80% hard-coded. Leave it blank or absent (or zero?) to disable the warning.","commit_id":"1c21a68899bf1ae9e38468278bb2fc4541014a34"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"561ada228b74313c68bfa8cd9e91be1700b90c4a","unresolved":false,"context_lines":[{"line_number":59,"context_line":"#"},{"line_number":60,"context_line":"# The item_size_max is an option set in memcache that controls to max size"},{"line_number":61,"context_line":"# a single item can be. By telling the memcache client here what it is, it\u0027ll"},{"line_number":62,"context_line":"# start logging a warning if an item size ever gets above 80%. This will help"},{"line_number":63,"context_line":"# alert you if an increase to memcache\u0027s item_size_max is needed soon."},{"line_number":64,"context_line":"# A value of auto will mean swift\u0027s memcache client will attempt to pull the"},{"line_number":65,"context_line":"# value out of memcache (via a \u0027stats settings\u0027 call to memcache) and if it fails"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"b43dce90_b55d2e44","line":62,"range":{"start_line":62,"start_character":18,"end_line":62,"end_character":61},"in_reply_to":"979f8dfa_e7ecab56","updated":"2021-06-18 05:30:02.000000000","message":"yeah great idea. I knew having a hardcoded 80% would come up, but I was running out of battery so decided to shrink the scope. But now that I\u0027m power rich will fix it up 😊","commit_id":"1c21a68899bf1ae9e38468278bb2fc4541014a34"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"e370fef1dffa001e7b960ec424b889efdb52ab3c","unresolved":true,"context_lines":[{"line_number":64,"context_line":"# A value of auto will mean swift\u0027s memcache client will attempt to pull the"},{"line_number":65,"context_line":"# value out of memcache (via a \u0027stats settings\u0027 call to memcache) and if it fails"},{"line_number":66,"context_line":"# this warning will be disabled."},{"line_number":67,"context_line":"# NOTE: If your using mcrouter then \u0027auto\u0027 will not work as mcrounter doesn\u0027t pass"},{"line_number":68,"context_line":"#       the \u0027stats settings\u0027 down to memcache so the number must be specified."},{"line_number":69,"context_line":"# item_size_max \u003d auto"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"8c366fc4_a9a22b43","line":67,"range":{"start_line":67,"start_character":11,"end_line":67,"end_character":15},"updated":"2021-06-11 22:26:23.000000000","message":"you\u0027re","commit_id":"1c21a68899bf1ae9e38468278bb2fc4541014a34"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"561ada228b74313c68bfa8cd9e91be1700b90c4a","unresolved":false,"context_lines":[{"line_number":64,"context_line":"# A value of auto will mean swift\u0027s memcache client will attempt to pull the"},{"line_number":65,"context_line":"# value out of memcache (via a \u0027stats settings\u0027 call to memcache) and if it fails"},{"line_number":66,"context_line":"# this warning will be disabled."},{"line_number":67,"context_line":"# NOTE: If your using mcrouter then \u0027auto\u0027 will not work as mcrounter doesn\u0027t pass"},{"line_number":68,"context_line":"#       the \u0027stats settings\u0027 down to memcache so the number must be specified."},{"line_number":69,"context_line":"# item_size_max \u003d auto"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"59d8137b_562ce3e9","line":67,"range":{"start_line":67,"start_character":11,"end_line":67,"end_character":15},"in_reply_to":"8c366fc4_a9a22b43","updated":"2021-06-18 05:30:02.000000000","message":"Done","commit_id":"1c21a68899bf1ae9e38468278bb2fc4541014a34"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"dca394831e39227415946aa301a40c7322f98552","unresolved":true,"context_lines":[{"line_number":60,"context_line":"# The item_size_max is an option set in memcache that controls the max size"},{"line_number":61,"context_line":"# a single item can be. By telling the memcache client here what it is, it\u0027ll"},{"line_number":62,"context_line":"# start logging a warning if an item size ever gets above item_size_warning_threshold"},{"line_number":63,"context_line":"# percent. If the threshold is set to 0 it\u0027s disabled."},{"line_number":64,"context_line":"# This will help track if an increase to memcache\u0027s item_size_max is required soon."},{"line_number":65,"context_line":"# A value of auto will mean swift\u0027s memcache client will attempt to pull the"},{"line_number":66,"context_line":"# value out of memcache (via a \u0027stats settings\u0027 call to memcache) and if it fails"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"85c1cf90_a14bd53a","line":63,"range":{"start_line":63,"start_character":11,"end_line":63,"end_character":54},"updated":"2021-06-21 16:01:58.000000000","message":"that seems odd to me, vs -1 -\u003e unlimited i.e. warnings disabled","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"502f2dbd6e98646c8fdecbe1ee45536e8832a752","unresolved":false,"context_lines":[{"line_number":60,"context_line":"# The item_size_max is an option set in memcache that controls the max size"},{"line_number":61,"context_line":"# a single item can be. By telling the memcache client here what it is, it\u0027ll"},{"line_number":62,"context_line":"# start logging a warning if an item size ever gets above item_size_warning_threshold"},{"line_number":63,"context_line":"# percent. If the threshold is set to 0 it\u0027s disabled."},{"line_number":64,"context_line":"# This will help track if an increase to memcache\u0027s item_size_max is required soon."},{"line_number":65,"context_line":"# A value of auto will mean swift\u0027s memcache client will attempt to pull the"},{"line_number":66,"context_line":"# value out of memcache (via a \u0027stats settings\u0027 call to memcache) and if it fails"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"ea282615_3f58afaa","line":63,"range":{"start_line":63,"start_character":11,"end_line":63,"end_character":54},"in_reply_to":"24ab441a_06c0403a","updated":"2022-02-10 06:35:41.000000000","message":"Done","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"e0484b288a9e0f9b377f8e06ffe444ee7b038a34","unresolved":true,"context_lines":[{"line_number":60,"context_line":"# The item_size_max is an option set in memcache that controls the max size"},{"line_number":61,"context_line":"# a single item can be. By telling the memcache client here what it is, it\u0027ll"},{"line_number":62,"context_line":"# start logging a warning if an item size ever gets above item_size_warning_threshold"},{"line_number":63,"context_line":"# percent. If the threshold is set to 0 it\u0027s disabled."},{"line_number":64,"context_line":"# This will help track if an increase to memcache\u0027s item_size_max is required soon."},{"line_number":65,"context_line":"# A value of auto will mean swift\u0027s memcache client will attempt to pull the"},{"line_number":66,"context_line":"# value out of memcache (via a \u0027stats settings\u0027 call to memcache) and if it fails"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"24ab441a_06c0403a","line":63,"range":{"start_line":63,"start_character":11,"end_line":63,"end_character":54},"in_reply_to":"85c1cf90_a14bd53a","updated":"2021-06-24 03:03:52.000000000","message":"OK. So what do you think, -1 is disabled 0 is everything is logged?","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"dca394831e39227415946aa301a40c7322f98552","unresolved":true,"context_lines":[{"line_number":62,"context_line":"# start logging a warning if an item size ever gets above item_size_warning_threshold"},{"line_number":63,"context_line":"# percent. If the threshold is set to 0 it\u0027s disabled."},{"line_number":64,"context_line":"# This will help track if an increase to memcache\u0027s item_size_max is required soon."},{"line_number":65,"context_line":"# A value of auto will mean swift\u0027s memcache client will attempt to pull the"},{"line_number":66,"context_line":"# value out of memcache (via a \u0027stats settings\u0027 call to memcache) and if it fails"},{"line_number":67,"context_line":"# this warning will be disabled."},{"line_number":68,"context_line":"# NOTE: If you\u0027re using mcrouter then \u0027auto\u0027 will not work as mcrounter doesn\u0027t pass"},{"line_number":69,"context_line":"#       the \u0027stats settings\u0027 down to memcache so the number must be specified."}],"source_content_type":"application/octet-stream","patch_set":4,"id":"4920f18f_6a3ed085","line":66,"range":{"start_line":65,"start_character":57,"end_line":66,"end_character":65},"updated":"2021-06-21 16:01:58.000000000","message":"but only once i.e. auto does not track changes to memcache configs until the swift service is restarted","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"e0484b288a9e0f9b377f8e06ffe444ee7b038a34","unresolved":true,"context_lines":[{"line_number":62,"context_line":"# start logging a warning if an item size ever gets above item_size_warning_threshold"},{"line_number":63,"context_line":"# percent. If the threshold is set to 0 it\u0027s disabled."},{"line_number":64,"context_line":"# This will help track if an increase to memcache\u0027s item_size_max is required soon."},{"line_number":65,"context_line":"# A value of auto will mean swift\u0027s memcache client will attempt to pull the"},{"line_number":66,"context_line":"# value out of memcache (via a \u0027stats settings\u0027 call to memcache) and if it fails"},{"line_number":67,"context_line":"# this warning will be disabled."},{"line_number":68,"context_line":"# NOTE: If you\u0027re using mcrouter then \u0027auto\u0027 will not work as mcrounter doesn\u0027t pass"},{"line_number":69,"context_line":"#       the \u0027stats settings\u0027 down to memcache so the number must be specified."}],"source_content_type":"application/octet-stream","patch_set":4,"id":"9d13c12d_2a39d92a","line":66,"range":{"start_line":65,"start_character":57,"end_line":66,"end_character":65},"in_reply_to":"4920f18f_6a3ed085","updated":"2021-06-24 03:03:52.000000000","message":"Oh interesting point. We could check everytime but that might be a little too much extra load. And AFAICT there isn\u0027t an easy way to re-load based on a timer withougt changes to the wsgi server code... unless I\u0027m missing something obvious.","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"502f2dbd6e98646c8fdecbe1ee45536e8832a752","unresolved":false,"context_lines":[{"line_number":62,"context_line":"# start logging a warning if an item size ever gets above item_size_warning_threshold"},{"line_number":63,"context_line":"# percent. If the threshold is set to 0 it\u0027s disabled."},{"line_number":64,"context_line":"# This will help track if an increase to memcache\u0027s item_size_max is required soon."},{"line_number":65,"context_line":"# A value of auto will mean swift\u0027s memcache client will attempt to pull the"},{"line_number":66,"context_line":"# value out of memcache (via a \u0027stats settings\u0027 call to memcache) and if it fails"},{"line_number":67,"context_line":"# this warning will be disabled."},{"line_number":68,"context_line":"# NOTE: If you\u0027re using mcrouter then \u0027auto\u0027 will not work as mcrounter doesn\u0027t pass"},{"line_number":69,"context_line":"#       the \u0027stats settings\u0027 down to memcache so the number must be specified."}],"source_content_type":"application/octet-stream","patch_set":4,"id":"a8408961_88c48586","line":66,"range":{"start_line":65,"start_character":57,"end_line":66,"end_character":65},"in_reply_to":"9d13c12d_2a39d92a","updated":"2022-02-10 06:35:41.000000000","message":"removed","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"dca394831e39227415946aa301a40c7322f98552","unresolved":true,"context_lines":[{"line_number":68,"context_line":"# NOTE: If you\u0027re using mcrouter then \u0027auto\u0027 will not work as mcrounter doesn\u0027t pass"},{"line_number":69,"context_line":"#       the \u0027stats settings\u0027 down to memcache so the number must be specified."},{"line_number":70,"context_line":"# item_size_max \u003d auto"},{"line_number":71,"context_line":"# item_size_warning_threshold \u003d 80"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"ad88ee60_f301185b","line":71,"range":{"start_line":71,"start_character":32,"end_line":71,"end_character":34},"updated":"2021-06-21 16:01:58.000000000","message":"given that 80 is an arbitrary choice, do we really want to start firing warning on potentially very healthy clusters after upgrade, rather than defaulting to \u0027off\u0027.\n\nAlso, how does an op switch this off without having to go and lookup memcache config: I think I\u0027d need to know the item_size_max, hope it is consistent across memcache, and also set the threshold to 100.\n\nI\u0027m not sure the current behaviour of item_size_warning_threshold\u003d0 causing the warnings to be disabled is  intuitive. item_size_warning_threshold\u003d-1 -\u003e unlimited would be intuitive but is probably disallowed because it\u0027s a percent option.\n\nI might suggest KISS: just support an absolute warning threshold that can be -1 to disable.","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"502f2dbd6e98646c8fdecbe1ee45536e8832a752","unresolved":false,"context_lines":[{"line_number":68,"context_line":"# NOTE: If you\u0027re using mcrouter then \u0027auto\u0027 will not work as mcrounter doesn\u0027t pass"},{"line_number":69,"context_line":"#       the \u0027stats settings\u0027 down to memcache so the number must be specified."},{"line_number":70,"context_line":"# item_size_max \u003d auto"},{"line_number":71,"context_line":"# item_size_warning_threshold \u003d 80"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"b57794fc_dde713fe","line":71,"range":{"start_line":71,"start_character":32,"end_line":71,"end_character":34},"in_reply_to":"0d53ae53_6827dbf9","updated":"2022-02-10 06:35:41.000000000","message":"Done","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"e0484b288a9e0f9b377f8e06ffe444ee7b038a34","unresolved":true,"context_lines":[{"line_number":68,"context_line":"# NOTE: If you\u0027re using mcrouter then \u0027auto\u0027 will not work as mcrounter doesn\u0027t pass"},{"line_number":69,"context_line":"#       the \u0027stats settings\u0027 down to memcache so the number must be specified."},{"line_number":70,"context_line":"# item_size_max \u003d auto"},{"line_number":71,"context_line":"# item_size_warning_threshold \u003d 80"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"0d53ae53_6827dbf9","line":71,"range":{"start_line":71,"start_character":32,"end_line":71,"end_character":34},"in_reply_to":"ad88ee60_f301185b","updated":"2021-06-24 03:03:52.000000000","message":"oh ok. So to KISS, we just have a item_size_warning_threshold which isn\u0027t a percentage. But an absolute size. But it seems in this case we loose the advantage of the auto lookup, now you need to keep an eye on the max_item_size anyway to figure out when you want it triggered.","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"d268b4d483ae50df258064bfd6f09d625332219b","unresolved":true,"context_lines":[{"line_number":59,"context_line":"#"},{"line_number":60,"context_line":"# If an item size ever gets above item_size_warning_threshold then a warning will be"},{"line_number":61,"context_line":"# logged. This can be used to alert when memcache item sizes are getting to their limit."},{"line_number":62,"context_line":"# It\u0027s an absolute size in bytes. Setting the value to 0 will warn on every memcache set."},{"line_number":63,"context_line":"# A value of -1 disables the warning."},{"line_number":64,"context_line":"# item_size_warning_threshold \u003d -1"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"829cd30a_f5a048b2","line":62,"updated":"2022-02-15 15:54:59.000000000","message":"\"size in bytes\" 👍","commit_id":"5c7442136aa417c6efa7424e3058ec5558527991"}],"swift/common/memcached.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"e370fef1dffa001e7b960ec424b889efdb52ab3c","unresolved":true,"context_lines":[{"line_number":313,"context_line":"                            \"Error setting value in memcached: \""},{"line_number":314,"context_line":"                            \"%(server)s: %(msg)s\","},{"line_number":315,"context_line":"                            {\u0027server\u0027: server, \u0027msg\u0027: msg})"},{"line_number":316,"context_line":"                    elif self.item_size_max and \\"},{"line_number":317,"context_line":"                            len(value) / self.item_size_max \u003e\u003d 0.8:"},{"line_number":318,"context_line":"                        percent \u003d int(len(value) / self.item_size_max * 100)"},{"line_number":319,"context_line":"                        self.logger.warning("}],"source_content_type":"text/x-python","patch_set":2,"id":"1fc48736_c46dab4b","line":316,"range":{"start_line":316,"start_character":25,"end_line":316,"end_character":43},"updated":"2021-06-11 22:26:23.000000000","message":"So 0 and None get the same behaviors? And I suppose if you really want to log everybody, you set it to 1. Seems reasonable.","commit_id":"1c21a68899bf1ae9e38468278bb2fc4541014a34"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"502f2dbd6e98646c8fdecbe1ee45536e8832a752","unresolved":false,"context_lines":[{"line_number":313,"context_line":"                            \"Error setting value in memcached: \""},{"line_number":314,"context_line":"                            \"%(server)s: %(msg)s\","},{"line_number":315,"context_line":"                            {\u0027server\u0027: server, \u0027msg\u0027: msg})"},{"line_number":316,"context_line":"                    elif self.item_size_max and \\"},{"line_number":317,"context_line":"                            len(value) / self.item_size_max \u003e\u003d 0.8:"},{"line_number":318,"context_line":"                        percent \u003d int(len(value) / self.item_size_max * 100)"},{"line_number":319,"context_line":"                        self.logger.warning("}],"source_content_type":"text/x-python","patch_set":2,"id":"73a438a5_985a7e68","line":316,"range":{"start_line":316,"start_character":25,"end_line":316,"end_character":43},"in_reply_to":"1fc48736_c46dab4b","updated":"2022-02-10 06:35:41.000000000","message":"behaviour changed","commit_id":"1c21a68899bf1ae9e38468278bb2fc4541014a34"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"e370fef1dffa001e7b960ec424b889efdb52ab3c","unresolved":true,"context_lines":[{"line_number":314,"context_line":"                            \"%(server)s: %(msg)s\","},{"line_number":315,"context_line":"                            {\u0027server\u0027: server, \u0027msg\u0027: msg})"},{"line_number":316,"context_line":"                    elif self.item_size_max and \\"},{"line_number":317,"context_line":"                            len(value) / self.item_size_max \u003e\u003d 0.8:"},{"line_number":318,"context_line":"                        percent \u003d int(len(value) / self.item_size_max * 100)"},{"line_number":319,"context_line":"                        self.logger.warning("},{"line_number":320,"context_line":"                            \"Key size larger then 80% of item_size_max in \""}],"source_content_type":"text/x-python","patch_set":2,"id":"e27a4807_2797dce8","line":317,"updated":"2021-06-11 22:26:23.000000000","message":"I think this\u0027ll have integer division troubles on py2.","commit_id":"1c21a68899bf1ae9e38468278bb2fc4541014a34"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"502f2dbd6e98646c8fdecbe1ee45536e8832a752","unresolved":false,"context_lines":[{"line_number":314,"context_line":"                            \"%(server)s: %(msg)s\","},{"line_number":315,"context_line":"                            {\u0027server\u0027: server, \u0027msg\u0027: msg})"},{"line_number":316,"context_line":"                    elif self.item_size_max and \\"},{"line_number":317,"context_line":"                            len(value) / self.item_size_max \u003e\u003d 0.8:"},{"line_number":318,"context_line":"                        percent \u003d int(len(value) / self.item_size_max * 100)"},{"line_number":319,"context_line":"                        self.logger.warning("},{"line_number":320,"context_line":"                            \"Key size larger then 80% of item_size_max in \""}],"source_content_type":"text/x-python","patch_set":2,"id":"d07d82a0_63498d4c","line":317,"in_reply_to":"e27a4807_2797dce8","updated":"2022-02-10 06:35:41.000000000","message":"Ack","commit_id":"1c21a68899bf1ae9e38468278bb2fc4541014a34"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"e370fef1dffa001e7b960ec424b889efdb52ab3c","unresolved":true,"context_lines":[{"line_number":332,"context_line":"        \"\"\""},{"line_number":333,"context_line":"        value \u003d None"},{"line_number":334,"context_line":"        key \u003d md5hash(random.randbytes(random.randint(0, len(self._ring))))"},{"line_number":335,"context_line":"        for (server, fp, sock) in self._get_conns(key):"},{"line_number":336,"context_line":"            try:"},{"line_number":337,"context_line":"                with Timeout(self._io_timeout):"},{"line_number":338,"context_line":"                    sock.sendall(b\u0027stats settings\\r\\n\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"dc09793c_8f197682","line":335,"updated":"2021-06-11 22:26:23.000000000","message":"I\u0027m not sure about the attempt at auto-detection -- what if the memecached servers in the pool don\u0027t have homogeneous configs? Is it really enough to check a single arbitrary server?","commit_id":"1c21a68899bf1ae9e38468278bb2fc4541014a34"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"502f2dbd6e98646c8fdecbe1ee45536e8832a752","unresolved":false,"context_lines":[{"line_number":332,"context_line":"        \"\"\""},{"line_number":333,"context_line":"        value \u003d None"},{"line_number":334,"context_line":"        key \u003d md5hash(random.randbytes(random.randint(0, len(self._ring))))"},{"line_number":335,"context_line":"        for (server, fp, sock) in self._get_conns(key):"},{"line_number":336,"context_line":"            try:"},{"line_number":337,"context_line":"                with Timeout(self._io_timeout):"},{"line_number":338,"context_line":"                    sock.sendall(b\u0027stats settings\\r\\n\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"56fd1918_86c1d185","line":335,"in_reply_to":"c7fd367f_775f7809","updated":"2022-02-10 06:35:41.000000000","message":"removed","commit_id":"1c21a68899bf1ae9e38468278bb2fc4541014a34"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"561ada228b74313c68bfa8cd9e91be1700b90c4a","unresolved":true,"context_lines":[{"line_number":332,"context_line":"        \"\"\""},{"line_number":333,"context_line":"        value \u003d None"},{"line_number":334,"context_line":"        key \u003d md5hash(random.randbytes(random.randint(0, len(self._ring))))"},{"line_number":335,"context_line":"        for (server, fp, sock) in self._get_conns(key):"},{"line_number":336,"context_line":"            try:"},{"line_number":337,"context_line":"                with Timeout(self._io_timeout):"},{"line_number":338,"context_line":"                    sock.sendall(b\u0027stats settings\\r\\n\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"c7fd367f_775f7809","line":335,"in_reply_to":"dc09793c_8f197682","updated":"2021-06-18 05:30:02.000000000","message":"yeah, that\u0027s why I choose a random server _and_ make sure I add the item_size_max in the log message so any mixed configs will hopefully be detected. I guess we could go check each member of the ring.. but that might be a little noisy.\n\nIn theory we have the same problem with mcrounter. There is nothing there that says any of the underlying memcache server configs are the same.","commit_id":"1c21a68899bf1ae9e38468278bb2fc4541014a34"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"dca394831e39227415946aa301a40c7322f98552","unresolved":true,"context_lines":[{"line_number":318,"context_line":"                            \"Error setting value in memcached: \""},{"line_number":319,"context_line":"                            \"%(server)s: %(msg)s\","},{"line_number":320,"context_line":"                            {\u0027server\u0027: server, \u0027msg\u0027: msg})"},{"line_number":321,"context_line":"                    elif (self.item_size_max and"},{"line_number":322,"context_line":"                          self.item_size_warning_threshold and"},{"line_number":323,"context_line":"                          len(value) / float(self.item_size_max) \u003e\u003d"},{"line_number":324,"context_line":"                          self.item_size_warning_threshold):"}],"source_content_type":"text/x-python","patch_set":4,"id":"a879b68e_887f91d8","line":321,"range":{"start_line":321,"start_character":20,"end_line":321,"end_character":24},"updated":"2021-06-21 16:01:58.000000000","message":"Does this need to be \u0027elif\u0027 vs \u0027if\u0027?\n\nIf setting the value failed it would be great to know if that was because it was too large. Ideally all in one error log line though, rather than an error plus a warning.","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"502f2dbd6e98646c8fdecbe1ee45536e8832a752","unresolved":false,"context_lines":[{"line_number":318,"context_line":"                            \"Error setting value in memcached: \""},{"line_number":319,"context_line":"                            \"%(server)s: %(msg)s\","},{"line_number":320,"context_line":"                            {\u0027server\u0027: server, \u0027msg\u0027: msg})"},{"line_number":321,"context_line":"                    elif (self.item_size_max and"},{"line_number":322,"context_line":"                          self.item_size_warning_threshold and"},{"line_number":323,"context_line":"                          len(value) / float(self.item_size_max) \u003e\u003d"},{"line_number":324,"context_line":"                          self.item_size_warning_threshold):"}],"source_content_type":"text/x-python","patch_set":4,"id":"afb37b6b_57a26188","line":321,"range":{"start_line":321,"start_character":20,"end_line":321,"end_character":24},"in_reply_to":"a879b68e_887f91d8","updated":"2022-02-10 06:35:41.000000000","message":"Done","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"dca394831e39227415946aa301a40c7322f98552","unresolved":true,"context_lines":[{"line_number":319,"context_line":"                            \"%(server)s: %(msg)s\","},{"line_number":320,"context_line":"                            {\u0027server\u0027: server, \u0027msg\u0027: msg})"},{"line_number":321,"context_line":"                    elif (self.item_size_max and"},{"line_number":322,"context_line":"                          self.item_size_warning_threshold and"},{"line_number":323,"context_line":"                          len(value) / float(self.item_size_max) \u003e\u003d"},{"line_number":324,"context_line":"                          self.item_size_warning_threshold):"},{"line_number":325,"context_line":"                        percent \u003d len(value) / float(self.item_size_max) * 100"}],"source_content_type":"text/x-python","patch_set":4,"id":"0e77abe2_ec62bcef","line":322,"range":{"start_line":322,"start_character":26,"end_line":322,"end_character":58},"updated":"2021-06-21 16:01:58.000000000","message":"so if I (perversely) want to get warnings for everything I might like to set this to zero, but that actually disables the warnings","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"e0484b288a9e0f9b377f8e06ffe444ee7b038a34","unresolved":true,"context_lines":[{"line_number":319,"context_line":"                            \"%(server)s: %(msg)s\","},{"line_number":320,"context_line":"                            {\u0027server\u0027: server, \u0027msg\u0027: msg})"},{"line_number":321,"context_line":"                    elif (self.item_size_max and"},{"line_number":322,"context_line":"                          self.item_size_warning_threshold and"},{"line_number":323,"context_line":"                          len(value) / float(self.item_size_max) \u003e\u003d"},{"line_number":324,"context_line":"                          self.item_size_warning_threshold):"},{"line_number":325,"context_line":"                        percent \u003d len(value) / float(self.item_size_max) * 100"}],"source_content_type":"text/x-python","patch_set":4,"id":"5d77bf1f_5997e404","line":322,"range":{"start_line":322,"start_character":26,"end_line":322,"end_character":58},"in_reply_to":"0e77abe2_ec62bcef","updated":"2021-06-24 03:03:52.000000000","message":"yeah.. I guess youd need to make it 1 as it stands. So yeah need to change this in anycase 😊","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"502f2dbd6e98646c8fdecbe1ee45536e8832a752","unresolved":false,"context_lines":[{"line_number":319,"context_line":"                            \"%(server)s: %(msg)s\","},{"line_number":320,"context_line":"                            {\u0027server\u0027: server, \u0027msg\u0027: msg})"},{"line_number":321,"context_line":"                    elif (self.item_size_max and"},{"line_number":322,"context_line":"                          self.item_size_warning_threshold and"},{"line_number":323,"context_line":"                          len(value) / float(self.item_size_max) \u003e\u003d"},{"line_number":324,"context_line":"                          self.item_size_warning_threshold):"},{"line_number":325,"context_line":"                        percent \u003d len(value) / float(self.item_size_max) * 100"}],"source_content_type":"text/x-python","patch_set":4,"id":"2b4f9bc7_907bb27c","line":322,"range":{"start_line":322,"start_character":26,"end_line":322,"end_character":58},"in_reply_to":"5d77bf1f_5997e404","updated":"2022-02-10 06:35:41.000000000","message":"Done","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"dca394831e39227415946aa301a40c7322f98552","unresolved":true,"context_lines":[{"line_number":326,"context_line":"                        threshold_percent \u003d \\"},{"line_number":327,"context_line":"                            self.item_size_warning_threshold * 100"},{"line_number":328,"context_line":"                        self.logger.warning("},{"line_number":329,"context_line":"                            \"Key size larger then %d%% of item_size_max in \""},{"line_number":330,"context_line":"                            \"memcache: %s: %d%% (%d/%d)\", threshold_percent,"},{"line_number":331,"context_line":"                            server, percent, len(value),"},{"line_number":332,"context_line":"                            self.item_size_max)"}],"source_content_type":"text/x-python","patch_set":4,"id":"4ec69c1b_c047cc6c","line":329,"range":{"start_line":329,"start_character":29,"end_line":329,"end_character":32},"updated":"2021-06-21 16:01:58.000000000","message":"This should be either \u0027Item size\u0027 or \u0027Value size\u0027 - the key size is fixed. But it would be useful to include the actual (unhashed) key string in the message.\n\nAlso, I\u0027d be happy with just the absolute size vs threshold.","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"dca394831e39227415946aa301a40c7322f98552","unresolved":true,"context_lines":[{"line_number":326,"context_line":"                        threshold_percent \u003d \\"},{"line_number":327,"context_line":"                            self.item_size_warning_threshold * 100"},{"line_number":328,"context_line":"                        self.logger.warning("},{"line_number":329,"context_line":"                            \"Key size larger then %d%% of item_size_max in \""},{"line_number":330,"context_line":"                            \"memcache: %s: %d%% (%d/%d)\", threshold_percent,"},{"line_number":331,"context_line":"                            server, percent, len(value),"},{"line_number":332,"context_line":"                            self.item_size_max)"}],"source_content_type":"text/x-python","patch_set":4,"id":"77e5de74_fce18cbb","line":329,"range":{"start_line":329,"start_character":45,"end_line":329,"end_character":49},"updated":"2021-06-21 16:01:58.000000000","message":"s/than/then/","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"502f2dbd6e98646c8fdecbe1ee45536e8832a752","unresolved":false,"context_lines":[{"line_number":326,"context_line":"                        threshold_percent \u003d \\"},{"line_number":327,"context_line":"                            self.item_size_warning_threshold * 100"},{"line_number":328,"context_line":"                        self.logger.warning("},{"line_number":329,"context_line":"                            \"Key size larger then %d%% of item_size_max in \""},{"line_number":330,"context_line":"                            \"memcache: %s: %d%% (%d/%d)\", threshold_percent,"},{"line_number":331,"context_line":"                            server, percent, len(value),"},{"line_number":332,"context_line":"                            self.item_size_max)"}],"source_content_type":"text/x-python","patch_set":4,"id":"022a6073_367de6b0","line":329,"range":{"start_line":329,"start_character":29,"end_line":329,"end_character":32},"in_reply_to":"095f14a3_ca4b353b","updated":"2022-02-10 06:35:41.000000000","message":"Done","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"e0484b288a9e0f9b377f8e06ffe444ee7b038a34","unresolved":true,"context_lines":[{"line_number":326,"context_line":"                        threshold_percent \u003d \\"},{"line_number":327,"context_line":"                            self.item_size_warning_threshold * 100"},{"line_number":328,"context_line":"                        self.logger.warning("},{"line_number":329,"context_line":"                            \"Key size larger then %d%% of item_size_max in \""},{"line_number":330,"context_line":"                            \"memcache: %s: %d%% (%d/%d)\", threshold_percent,"},{"line_number":331,"context_line":"                            server, percent, len(value),"},{"line_number":332,"context_line":"                            self.item_size_max)"}],"source_content_type":"text/x-python","patch_set":4,"id":"095f14a3_ca4b353b","line":329,"range":{"start_line":329,"start_character":29,"end_line":329,"end_character":32},"in_reply_to":"4ec69c1b_c047cc6c","updated":"2021-06-24 03:03:52.000000000","message":"good call","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"e0484b288a9e0f9b377f8e06ffe444ee7b038a34","unresolved":false,"context_lines":[{"line_number":326,"context_line":"                        threshold_percent \u003d \\"},{"line_number":327,"context_line":"                            self.item_size_warning_threshold * 100"},{"line_number":328,"context_line":"                        self.logger.warning("},{"line_number":329,"context_line":"                            \"Key size larger then %d%% of item_size_max in \""},{"line_number":330,"context_line":"                            \"memcache: %s: %d%% (%d/%d)\", threshold_percent,"},{"line_number":331,"context_line":"                            server, percent, len(value),"},{"line_number":332,"context_line":"                            self.item_size_max)"}],"source_content_type":"text/x-python","patch_set":4,"id":"d5898a52_8020c23b","line":329,"range":{"start_line":329,"start_character":45,"end_line":329,"end_character":49},"in_reply_to":"77e5de74_fce18cbb","updated":"2021-06-24 03:03:52.000000000","message":"Ack","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"dca394831e39227415946aa301a40c7322f98552","unresolved":true,"context_lines":[{"line_number":360,"context_line":"                    self._return_conn(server, fp, sock)"},{"line_number":361,"context_line":"                    return value"},{"line_number":362,"context_line":"            except (Exception, Timeout) as e:"},{"line_number":363,"context_line":"                self._exception_occurred(server, e, sock\u003dsock, fp\u003dfp)"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"    def get(self, key):"},{"line_number":366,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"8dc23df0_8739d781","line":363,"updated":"2021-06-21 16:01:58.000000000","message":"The auto stuff is cool, but given that it doesn\u0027t work for mcrouter I\u0027d be happy with keeping things simpler and just having an absolute warning threshold.","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"502f2dbd6e98646c8fdecbe1ee45536e8832a752","unresolved":false,"context_lines":[{"line_number":360,"context_line":"                    self._return_conn(server, fp, sock)"},{"line_number":361,"context_line":"                    return value"},{"line_number":362,"context_line":"            except (Exception, Timeout) as e:"},{"line_number":363,"context_line":"                self._exception_occurred(server, e, sock\u003dsock, fp\u003dfp)"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"    def get(self, key):"},{"line_number":366,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"4c618b84_6ce67ce6","line":363,"in_reply_to":"5d24e76f_6e503d35","updated":"2022-02-10 06:35:41.000000000","message":"Done","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"e0484b288a9e0f9b377f8e06ffe444ee7b038a34","unresolved":true,"context_lines":[{"line_number":360,"context_line":"                    self._return_conn(server, fp, sock)"},{"line_number":361,"context_line":"                    return value"},{"line_number":362,"context_line":"            except (Exception, Timeout) as e:"},{"line_number":363,"context_line":"                self._exception_occurred(server, e, sock\u003dsock, fp\u003dfp)"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"    def get(self, key):"},{"line_number":366,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"5d24e76f_6e503d35","line":363,"in_reply_to":"8dc23df0_8739d781","updated":"2021-06-24 03:03:52.000000000","message":"Yeah, so it wont effect us much, but in general trying to make it awesome for people who do just use memcache.. and who knows maybe mcrouter will grow a max_item_size lookup.. to be honest, not being able to find the max mcrouter value size seems to be a lacking stat for mcrouter.","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"d268b4d483ae50df258064bfd6f09d625332219b","unresolved":true,"context_lines":[{"line_number":335,"context_line":"                            \"%d (%s) \u003e\u003d %d (%s)\", len(value),"},{"line_number":336,"context_line":"                            human_readable(len(value)),"},{"line_number":337,"context_line":"                            self.item_size_warning_threshold,"},{"line_number":338,"context_line":"                            human_readable(self.item_size_warning_threshold))"},{"line_number":339,"context_line":"                    self._return_conn(server, fp, sock)"},{"line_number":340,"context_line":"                    return"},{"line_number":341,"context_line":"            except (Exception, Timeout) as e:"}],"source_content_type":"text/x-python","patch_set":6,"id":"b6124fed_7739110c","line":338,"updated":"2022-02-15 15:54:59.000000000","message":"this looks pretty obvious","commit_id":"5c7442136aa417c6efa7424e3058ec5558527991"}],"swift/common/middleware/memcache.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"dca394831e39227415946aa301a40c7322f98552","unresolved":true,"context_lines":[{"line_number":136,"context_line":"        if item_size_max:"},{"line_number":137,"context_line":"            if item_size_max \u003d\u003d \u0027auto\u0027:"},{"line_number":138,"context_line":"                item_size_max \u003d self.memcache.get_item_size_max()"},{"line_number":139,"context_line":"            self.memcache.item_size_max \u003d item_size_max"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def __call__(self, env, start_response):"},{"line_number":142,"context_line":"        env[\u0027swift.cache\u0027] \u003d self.memcache"}],"source_content_type":"text/x-python","patch_set":4,"id":"1dbbd38b_1ff43a56","line":139,"updated":"2021-06-21 16:01:58.000000000","message":"Some kind of warning might be nice if auto failed to get a value (but I\u0027m not sure about having the auto option at all)\n\nAlso it seems odd that this is not encapsulated in the MemcacheRing","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"e0484b288a9e0f9b377f8e06ffe444ee7b038a34","unresolved":true,"context_lines":[{"line_number":136,"context_line":"        if item_size_max:"},{"line_number":137,"context_line":"            if item_size_max \u003d\u003d \u0027auto\u0027:"},{"line_number":138,"context_line":"                item_size_max \u003d self.memcache.get_item_size_max()"},{"line_number":139,"context_line":"            self.memcache.item_size_max \u003d item_size_max"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def __call__(self, env, start_response):"},{"line_number":142,"context_line":"        env[\u0027swift.cache\u0027] \u003d self.memcache"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fe17b37_258a3a66","line":139,"in_reply_to":"1dbbd38b_1ff43a56","updated":"2021-06-24 03:03:52.000000000","message":"yeah, that\u0027s true. encapsulation into memcachering does sound better. I\u0027ll have a play. It\u0027s a little wierd, but also totally makes sense that in our memcache layer that we deal with config here (because it\u0027s a middleware) and keep memcachering just a common class.","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"502f2dbd6e98646c8fdecbe1ee45536e8832a752","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        if item_size_max:"},{"line_number":137,"context_line":"            if item_size_max \u003d\u003d \u0027auto\u0027:"},{"line_number":138,"context_line":"                item_size_max \u003d self.memcache.get_item_size_max()"},{"line_number":139,"context_line":"            self.memcache.item_size_max \u003d item_size_max"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def __call__(self, env, start_response):"},{"line_number":142,"context_line":"        env[\u0027swift.cache\u0027] \u003d self.memcache"}],"source_content_type":"text/x-python","patch_set":4,"id":"d37b2123_663a47da","line":139,"in_reply_to":"9fe17b37_258a3a66","updated":"2022-02-10 06:35:41.000000000","message":"removed the item_size_max all together, it\u0027s now just a threshold for warnings.","commit_id":"107413e15572154af5f4bd3a757fe21dbcb379d7"}],"test/unit/common/test_memcached.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"d268b4d483ae50df258064bfd6f09d625332219b","unresolved":true,"context_lines":[{"line_number":991,"context_line":"        # Changing to 0 should warn on everything"},{"line_number":992,"context_line":"        for data_size, warn in ((0, True), (1, True), (50, True),"},{"line_number":993,"context_line":"                                (99, True), (100, True)):"},{"line_number":994,"context_line":"            do_test(data[:data_size], 0, warn)"},{"line_number":995,"context_line":""},{"line_number":996,"context_line":"        # Let\u0027s do a big number"},{"line_number":997,"context_line":"        do_test(\u00271\u0027 * 2048576, 1000000, True)"}],"source_content_type":"text/x-python","patch_set":6,"id":"06c35f7a_103e117d","line":994,"updated":"2022-02-15 15:54:59.000000000","message":"this test is pretty good","commit_id":"5c7442136aa417c6efa7424e3058ec5558527991"}]}
