mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-04 09:44:21 +00:00 
			
		
		
		
	Backport #23975 by @wxiaoguang Do not use Rename here, because the old sid and new sid may be in different redis cluster slot. Fix #23869 Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
		@@ -183,16 +183,21 @@ func (p *RedisProvider) Regenerate(oldsid, sid string) (_ session.RawStore, err
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if err = p.c.Rename(graceful.GetManager().HammerContext(), poldsid, psid).Err(); err != nil {
 | 
						// do not use Rename here, because the old sid and new sid may be in different redis cluster slot.
 | 
				
			||||||
		return nil, err
 | 
						kvs, err := p.c.Get(graceful.GetManager().HammerContext(), poldsid).Result()
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	var kv map[interface{}]interface{}
 | 
					 | 
				
			||||||
	kvs, err := p.c.Get(graceful.GetManager().HammerContext(), psid).Result()
 | 
					 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if err = p.c.Del(graceful.GetManager().HammerContext(), poldsid).Err(); err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if err = p.c.Set(graceful.GetManager().HammerContext(), psid, kvs, p.duration).Err(); err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						var kv map[interface{}]interface{}
 | 
				
			||||||
	if len(kvs) == 0 {
 | 
						if len(kvs) == 0 {
 | 
				
			||||||
		kv = make(map[interface{}]interface{})
 | 
							kv = make(map[interface{}]interface{})
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user