Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
1dccb4b4
T
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1184
Star
22015
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
1dccb4b4
编写于
7月 04, 2023
作者:
D
dapan1121
提交者:
GitHub
7月 04, 2023
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #21937 from taosdata/fix/TS-3551-M
chore: enable sysInfo update
上级
e14f892c
cd494803
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
46 addition
and
40 deletion
+46
-40
source/client/src/clientHb.c
source/client/src/clientHb.c
+32
-25
tests/script/api/passwdTest.c
tests/script/api/passwdTest.c
+14
-15
未找到文件。
source/client/src/clientHb.c
浏览文件 @
1dccb4b4
...
...
@@ -74,41 +74,48 @@ static int32_t hbUpdateUserAuthInfo(SAppHbMgr *pAppHbMgr, SUserAuthBatchRsp *bat
continue
;
}
SClientHbReq
*
pReq
=
NULL
;
SClientHbReq
*
pReq
=
NULL
;
SGetUserAuthRsp
*
pRsp
=
NULL
;
while
((
pReq
=
taosHashIterate
(
hbMgr
->
activeInfo
,
pReq
)))
{
STscObj
*
pTscObj
=
(
STscObj
*
)
acquireTscObj
(
pReq
->
connKey
.
tscRid
);
if
(
!
pTscObj
)
{
continue
;
}
for
(
int32_t
j
=
0
;
j
<
TARRAY_SIZE
(
batchRsp
->
pArray
);
++
j
)
{
SGetUserAuthRsp
*
rsp
=
TARRAY_GET_ELEM
(
batchRsp
->
pArray
,
j
);
if
(
0
==
strncmp
(
rsp
->
user
,
pTscObj
->
user
,
TSDB_USER_LEN
))
{
pTscObj
->
authVer
=
rsp
->
version
;
#if 0 // make jenkins happy temporarily. After PR pass, enable these lines again.
if (pTscObj->sysInfo != rsp->sysInfo) {
tscDebug("update sysInfo of user %s from %" PRIi8 " to %" PRIi8 ", tscRid:%" PRIi64, rsp->user,
pTscObj->sysInfo, rsp->sysInfo, pTscObj->id);
pTscObj->sysInfo = rsp->sysInfo;
}
#endif
if
(
pTscObj
->
passInfo
.
fp
)
{
SPassInfo
*
passInfo
=
&
pTscObj
->
passInfo
;
int32_t
oldVer
=
atomic_load_32
(
&
passInfo
->
ver
);
if
(
oldVer
<
rsp
->
passVer
)
{
atomic_store_32
(
&
passInfo
->
ver
,
rsp
->
passVer
);
if
(
passInfo
->
fp
)
{
(
*
passInfo
->
fp
)(
passInfo
->
param
,
&
rsp
->
passVer
,
TAOS_NOTIFY_PASSVER
);
}
tscDebug
(
"update passVer of user %s from %d to %d, tscRid:%"
PRIi64
,
rsp
->
user
,
oldVer
,
atomic_load_32
(
&
passInfo
->
ver
),
pTscObj
->
id
);
}
if
(
!
pRsp
)
{
for
(
int32_t
j
=
0
;
j
<
TARRAY_SIZE
(
batchRsp
->
pArray
);
++
j
)
{
SGetUserAuthRsp
*
rsp
=
TARRAY_GET_ELEM
(
batchRsp
->
pArray
,
j
);
if
(
0
==
strncmp
(
rsp
->
user
,
pTscObj
->
user
,
TSDB_USER_LEN
))
{
pRsp
=
rsp
;
break
;
}
}
if
(
!
pRsp
)
{
releaseTscObj
(
pReq
->
connKey
.
tscRid
);
break
;
}
}
pTscObj
->
authVer
=
pRsp
->
version
;
if
(
pTscObj
->
sysInfo
!=
pRsp
->
sysInfo
)
{
tscDebug
(
"update sysInfo of user %s from %"
PRIi8
" to %"
PRIi8
", tscRid:%"
PRIi64
,
pRsp
->
user
,
pTscObj
->
sysInfo
,
pRsp
->
sysInfo
,
pTscObj
->
id
);
pTscObj
->
sysInfo
=
pRsp
->
sysInfo
;
}
if
(
pTscObj
->
passInfo
.
fp
)
{
SPassInfo
*
passInfo
=
&
pTscObj
->
passInfo
;
int32_t
oldVer
=
atomic_load_32
(
&
passInfo
->
ver
);
if
(
oldVer
<
pRsp
->
passVer
)
{
atomic_store_32
(
&
passInfo
->
ver
,
pRsp
->
passVer
);
if
(
passInfo
->
fp
)
{
(
*
passInfo
->
fp
)(
passInfo
->
param
,
&
pRsp
->
passVer
,
TAOS_NOTIFY_PASSVER
);
}
tscDebug
(
"update passVer of user %s from %d to %d, tscRid:%"
PRIi64
,
pRsp
->
user
,
oldVer
,
atomic_load_32
(
&
passInfo
->
ver
),
pTscObj
->
id
);
}
}
releaseTscObj
(
pReq
->
connKey
.
tscRid
);
}
}
...
...
tests/script/api/passwdTest.c
浏览文件 @
1dccb4b4
...
...
@@ -32,7 +32,7 @@
#define nRoot 10
#define nUser 10
#define USER_LEN 24
#define BUF_LEN
256
#define BUF_LEN
1024
typedef
uint16_t
VarDataLenT
;
...
...
@@ -46,7 +46,7 @@ typedef uint16_t VarDataLenT;
void
createUsers
(
TAOS
*
taos
,
const
char
*
host
,
char
*
qstr
);
void
passVerTestMulti
(
const
char
*
host
,
char
*
qstr
);
void
sysInfoTest
(
const
char
*
host
,
char
*
qstr
);
void
sysInfoTest
(
TAOS
*
taos
,
const
char
*
host
,
char
*
qstr
);
int
nPassVerNotified
=
0
;
TAOS
*
taosu
[
nRoot
]
=
{
0
};
...
...
@@ -200,7 +200,7 @@ int main(int argc, char *argv[]) {
}
createUsers
(
taos
,
argv
[
1
],
qstr
);
passVerTestMulti
(
argv
[
1
],
qstr
);
sysInfoTest
(
argv
[
1
],
qstr
);
sysInfoTest
(
taos
,
argv
[
1
],
qstr
);
taos_close
(
taos
);
taos_cleanup
();
...
...
@@ -299,26 +299,25 @@ void passVerTestMulti(const char *host, char *qstr) {
// sleep(300);
}
void
sysInfoTest
(
const
char
*
host
,
char
*
qstr
)
{
// root
void
sysInfoTest
(
TAOS
*
taosRoot
,
const
char
*
host
,
char
*
qstr
)
{
TAOS
*
taos
[
nRoot
]
=
{
0
};
char
userName
[
USER_LEN
]
=
"
root
"
;
char
userName
[
USER_LEN
]
=
"
user0
"
;
for
(
int
i
=
0
;
i
<
nRoot
;
++
i
)
{
taos
[
i
]
=
taos_connect
(
host
,
"
root
"
,
"taos"
,
NULL
,
0
);
taos
[
i
]
=
taos_connect
(
host
,
"
user0
"
,
"taos"
,
NULL
,
0
);
if
(
taos
[
i
]
==
NULL
)
{
fprintf
(
stderr
,
"failed to connect to server, reason:%s
\n
"
,
"null taos"
/*taos_errstr(taos)*/
);
exit
(
1
);
}
}
queryDB
(
taos
[
0
]
,
"create database if not exists demo11 vgroups 1 minrows 10"
);
queryDB
(
taos
[
0
]
,
"create database if not exists demo12 vgroups 1 minrows 10"
);
queryDB
(
taos
[
0
]
,
"create database if not exists demo13 vgroups 1 minrows 10"
);
queryDB
(
taos
Root
,
"create database if not exists demo11 vgroups 1 minrows 10"
);
queryDB
(
taos
Root
,
"create database if not exists demo12 vgroups 1 minrows 10"
);
queryDB
(
taos
Root
,
"create database if not exists demo13 vgroups 1 minrows 10"
);
queryDB
(
taos
[
0
]
,
"create table demo11.stb (ts timestamp, c1 int) tags(t1 int)"
);
queryDB
(
taos
[
0
]
,
"create table demo12.stb (ts timestamp, c1 int) tags(t1 int)"
);
queryDB
(
taos
[
0
]
,
"create table demo13.stb (ts timestamp, c1 int) tags(t1 int)"
);
queryDB
(
taos
Root
,
"create table demo11.stb (ts timestamp, c1 int) tags(t1 int)"
);
queryDB
(
taos
Root
,
"create table demo12.stb (ts timestamp, c1 int) tags(t1 int)"
);
queryDB
(
taos
Root
,
"create table demo13.stb (ts timestamp, c1 int) tags(t1 int)"
);
sprintf
(
qstr
,
"show grants"
);
char
output
[
BUF_LEN
];
...
...
@@ -340,7 +339,7 @@ _REP:
exit
(
EXIT_FAILURE
);
}
queryDB
(
taos
[
0
],
"alter user root
sysinfo 0"
);
queryDB
(
taos
Root
,
"alter user user0
sysinfo 0"
);
fprintf
(
stderr
,
"%s:%d sleep 2 seconds to wait HB take effect
\n
"
,
__func__
,
__LINE__
);
for
(
int
i
=
1
;
i
<=
2
;
++
i
)
{
...
...
@@ -357,7 +356,7 @@ _REP:
}
taos_free_result
(
res
);
queryDB
(
taos
[
0
],
"alter user root
sysinfo 1"
);
queryDB
(
taos
Root
,
"alter user user0
sysinfo 1"
);
fprintf
(
stderr
,
"%s:%d sleep 2 seconds to wait HB take effect
\n
"
,
__func__
,
__LINE__
);
for
(
int
i
=
1
;
i
<=
2
;
++
i
)
{
sleep
(
1
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录