Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
d067104e
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
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看板
提交
d067104e
编写于
5月 25, 2022
作者:
dengyihao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: index memory error
上级
c8ba20ac
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
15 addition
and
9 deletion
+15
-9
source/libs/index/src/index.c
source/libs/index/src/index.c
+3
-3
source/libs/index/src/indexTfile.c
source/libs/index/src/indexTfile.c
+10
-4
source/libs/index/test/indexTests.cc
source/libs/index/test/indexTests.cc
+2
-2
未找到文件。
source/libs/index/src/index.c
浏览文件 @
d067104e
...
...
@@ -558,17 +558,17 @@ static int64_t indexGetAvaialbleVer(SIndex* sIdx, IndexCache* cache) {
ICacheKey
key
=
{.
suid
=
cache
->
suid
,
.
colName
=
cache
->
colName
,
.
nColName
=
strlen
(
cache
->
colName
)};
int64_t
ver
=
CACHE_VERSION
(
cache
);
TFileReader
*
rd
=
tfileCacheGet
(((
IndexTFile
*
)
sIdx
->
tindex
)
->
cache
,
&
key
);
IndexTFile
*
tf
=
(
IndexTFile
*
)(
sIdx
->
tindex
);
IndexTFile
*
tf
=
(
IndexTFile
*
)(
sIdx
->
tindex
);
taosThreadMutexLock
(
&
tf
->
mtx
);
tfileCacheGet
(
tf
->
cache
,
&
key
);
TFileReader
*
rd
=
tfileCacheGet
(
tf
->
cache
,
&
key
);
taosThreadMutexUnlock
(
&
tf
->
mtx
);
if
(
rd
!=
NULL
)
{
ver
+=
MAX
(
ver
,
rd
->
header
.
version
)
+
1
;
indexInfo
(
"header: %"
PRId64
", ver: %"
PRId64
""
,
rd
->
header
.
version
,
ver
);
}
tfileReaderUnRef
(
rd
);
return
ver
;
}
static
int
indexGenTFile
(
SIndex
*
sIdx
,
IndexCache
*
cache
,
SArray
*
batch
)
{
...
...
source/libs/index/src/indexTfile.c
浏览文件 @
d067104e
...
...
@@ -165,11 +165,11 @@ void tfileCachePut(TFileCache* tcache, ICacheKey* key, TFileReader* reader) {
// remove last version index reader
TFileReader
**
p
=
taosHashGet
(
tcache
->
tableCache
,
buf
,
sz
);
if
(
p
!=
NULL
&&
*
p
!=
NULL
)
{
TFileReader
*
oldR
eade
r
=
*
p
;
TFileReader
*
oldR
d
r
=
*
p
;
taosHashRemove
(
tcache
->
tableCache
,
buf
,
sz
);
indexInfo
(
"found %s,
remove file %s"
,
buf
,
oldReade
r
->
ctx
->
file
.
buf
);
oldR
eade
r
->
remove
=
true
;
tfileReaderUnRef
(
oldR
eade
r
);
indexInfo
(
"found %s,
should remove file %s"
,
buf
,
oldRd
r
->
ctx
->
file
.
buf
);
oldR
d
r
->
remove
=
true
;
tfileReaderUnRef
(
oldR
d
r
);
}
taosHashPut
(
tcache
->
tableCache
,
buf
,
sz
,
&
reader
,
sizeof
(
void
*
));
tfileReaderRef
(
reader
);
...
...
@@ -212,6 +212,12 @@ void tfileReaderDestroy(TFileReader* reader) {
// T_REF_INC(reader);
fstDestroy
(
reader
->
fst
);
writerCtxDestroy
(
reader
->
ctx
,
reader
->
remove
);
if
(
reader
->
remove
)
{
indexInfo
(
"%s is removed"
,
reader
->
ctx
->
file
.
buf
);
}
else
{
indexInfo
(
"%s is not removed"
,
reader
->
ctx
->
file
.
buf
);
}
taosMemoryFree
(
reader
);
}
static
int32_t
tfSearchTerm
(
void
*
reader
,
SIndexTerm
*
tem
,
SIdxTempResult
*
tr
)
{
...
...
source/libs/index/test/indexTests.cc
浏览文件 @
d067104e
...
...
@@ -953,8 +953,8 @@ TEST_F(IndexEnv2, testIndex_TrigeFlush) {
}
static
void
single_write_and_search
(
IndexObj
*
idx
)
{
int
target
=
idx
->
SearchOne
(
"tag1"
,
"Hello"
);
target
=
idx
->
SearchOne
(
"tag2"
,
"Test"
);
//
int target = idx->SearchOne("tag1", "Hello");
//
target = idx->SearchOne("tag2", "Test");
}
static
void
multi_write_and_search
(
IndexObj
*
idx
)
{
idx
->
PutOne
(
"tag1"
,
"Hello"
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录