From efe8c6c8ff63733e1d2d8a57139990fac0963335 Mon Sep 17 00:00:00 2001
From: "liqiankun.1111" <liqiankun.1111@bytedance.com>
Date: Tue, 31 Oct 2023 11:39:49 +0800
Subject: [PATCH] fix: fix return lock infer

---
 lock/db/sql.go      | 2 +-
 lock/db/sql_test.go | 7 +++++--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/lock/db/sql.go b/lock/db/sql.go
index a77ae9e..e1afa9e 100644
--- a/lock/db/sql.go
+++ b/lock/db/sql.go
@@ -88,7 +88,7 @@ func (r *DBLock) lock(ctx context.Context, key string) (keyLock interface{}, err
 		// resource updated by others
 		return nil, ErrConflict
 	}
-	return lock, nil
+	return &lock, nil
 }
 
 func (r *DBLock) UnLock(ctx context.Context, keyLock interface{}) error {
diff --git a/lock/db/sql_test.go b/lock/db/sql_test.go
index 36afe78..a037b5e 100644
--- a/lock/db/sql_test.go
+++ b/lock/db/sql_test.go
@@ -35,8 +35,11 @@ func TestLock(t *testing.T) {
 	assert.NoError(t, err)
 	r := l.(*ResourceLock)
 	assert.True(t, len(r.LockerID) > 0)
-	// 重试5次,至少耗时500ms
-	_, err = lock.Lock(context.Background(), "abc")
+	// 测试lock 过期场景
+	time.Sleep(1 * time.Second)
+	l, err = lock.Lock(context.Background(), "abc")
+	assert.NoError(t, err)
+	err = lock.UnLock(context.Background(), l)
 	assert.NoError(t, err)
 }
 
-- 
GitLab