Merge pull request #22922 from taosdata/fix/TD-26325
fix race crash and add log
This commit is contained in:
commit
e20c8b39f4
|
@ -1731,25 +1731,23 @@ int streamStateGetCfIdx(SStreamState* pState, const char* funcName) {
|
|||
if (pState != NULL && idx != -1) {
|
||||
SBackendCfWrapper* wrapper = pState->pTdbState->pBackendCfWrapper;
|
||||
rocksdb_column_family_handle_t* cf = NULL;
|
||||
taosThreadRwlockRdlock(&wrapper->rwLock);
|
||||
taosThreadRwlockWrlock(&wrapper->rwLock);
|
||||
cf = wrapper->pHandle[idx];
|
||||
taosThreadRwlockUnlock(&wrapper->rwLock);
|
||||
if (cf == NULL) {
|
||||
char buf[128] = {0};
|
||||
GEN_COLUMN_FAMILY_NAME(buf, wrapper->idstr, ginitDict[idx].key);
|
||||
char* err = NULL;
|
||||
|
||||
taosThreadRwlockWrlock(&wrapper->rwLock);
|
||||
cf = rocksdb_create_column_family(wrapper->rocksdb, wrapper->cfOpts[idx], buf, &err);
|
||||
if (err != NULL) {
|
||||
idx = -1;
|
||||
qError("failed to to open cf, %p %s_%s, reason:%s", pState, wrapper->idstr, funcName, err);
|
||||
qError("failed to open cf, %p %s_%s, reason:%s", pState, wrapper->idstr, funcName, err);
|
||||
taosMemoryFree(err);
|
||||
} else {
|
||||
qDebug("succ to to open cf, %p %s_%s", pState, wrapper->idstr, funcName);
|
||||
wrapper->pHandle[idx] = cf;
|
||||
}
|
||||
taosThreadRwlockUnlock(&wrapper->rwLock);
|
||||
}
|
||||
taosThreadRwlockUnlock(&wrapper->rwLock);
|
||||
}
|
||||
|
||||
return idx;
|
||||
|
|
Loading…
Reference in New Issue