diff --git a/lock/db/sql.go b/lock/db/sql.go
index a77ae9e2c878ef85f3b176b3b9c41244062b62d3..e1afa9ec68cda1dc7e5ddf7a23d9fce171e3f41d 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 36afe7850f091c93acbb9884017102360accb0fa..a037b5e9645710d4d106963a29f7d1b39b49103f 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)
 }