mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	cache: validate_cache_key in cache_delete_many may get other prefixes.
This commit is contained in:
		
				
					committed by
					
						
						Tim Abbott
					
				
			
			
				
	
			
			
			
						parent
						
							ae6acd9f05
						
					
				
				
					commit
					67bea1f103
				
			@@ -199,8 +199,8 @@ def log_invalid_cache_keys(stack_trace: str, key: list[str]) -> None:
 | 
				
			|||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def validate_cache_key(key: str) -> None:
 | 
					def validate_cache_key(key: str, auto_prepend_prefix: bool = True) -> None:
 | 
				
			||||||
    if not key.startswith(KEY_PREFIX):
 | 
					    if auto_prepend_prefix and not key.startswith(KEY_PREFIX):
 | 
				
			||||||
        key = KEY_PREFIX + key
 | 
					        key = KEY_PREFIX + key
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Theoretically memcached can handle non-ascii characters
 | 
					    # Theoretically memcached can handle non-ascii characters
 | 
				
			||||||
@@ -311,7 +311,7 @@ def cache_delete_many(items: Iterable[str], cache_name: str | None = None) -> No
 | 
				
			|||||||
    for key_prefix in get_all_cache_key_prefixes():
 | 
					    for key_prefix in get_all_cache_key_prefixes():
 | 
				
			||||||
        keys += [key_prefix + item for item in items]
 | 
					        keys += [key_prefix + item for item in items]
 | 
				
			||||||
    for key in keys:
 | 
					    for key in keys:
 | 
				
			||||||
        validate_cache_key(key)
 | 
					        validate_cache_key(key, auto_prepend_prefix=False)
 | 
				
			||||||
    remote_cache_stats_start()
 | 
					    remote_cache_stats_start()
 | 
				
			||||||
    get_cache_backend(cache_name).delete_many(keys)
 | 
					    get_cache_backend(cache_name).delete_many(keys)
 | 
				
			||||||
    remote_cache_stats_finish()
 | 
					    remote_cache_stats_finish()
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user