!5918 【回合6.0.0】解决测试用例hw_audit_full随机挂库导致后续所有用例失败,audit版块存在段错误

Merge pull request !5918 from 梅程/master
This commit is contained in:
opengauss_bot
2024-08-06 02:37:06 +00:00
committed by Gitee

View File

@ -1160,11 +1160,15 @@ static void pgaudit_write_file(char* buffer, int count)
/* if record time is earlier than current file's create time,
* create a new audit file to avoid the confusion caused by system clock change */
FILE* fh = NULL;
LWLockAcquire(AuditIndexFileLock, LW_SHARED);
bool haslock = true;
if (g_instance.audit_cxt.audit_indextbl) {
AuditIndexItem *cur_item =
g_instance.audit_cxt.audit_indextbl->data +
g_instance.audit_cxt.audit_indextbl->curidx[t_thrd.audit.cur_thread_idx];
if (curtime < cur_item->ctime) {
LWLockRelease(AuditIndexFileLock);
haslock = false;
auditfile_close(SYSAUDITFILE_TYPE);
fh = auditfile_open((pg_time_t)time(NULL), "a", true);
if (fh != NULL) {
@ -1174,6 +1178,9 @@ static void pgaudit_write_file(char* buffer, int count)
}
uint32 retry_cnt = 0;
if (haslock) {
LWLockRelease(AuditIndexFileLock);
}
retry1:
rc = fwrite(buffer, 1, count, t_thrd.audit.sysauditFile);