# 【WMS-UTR】MAAT跨版本加载配置存在加载到重复ID的情况,导致firewall大量输出FATAL日志 | ID | Creation Date | Assignee | Status | |----|----------------|----------|--------| | OMPUB-1231 | 2024-04-18T09:33:14.000+0800 | 刘畅 | 完成 | --- MAAT在跨版本的配置扫描中,同一个条配置只能获取两个MAAT_UPDATE_STATUS记录(实际跨版本的范围内同一条ID有多次MAAT_UPDATE_STATUS的更新),     ,这种情况下MAAT会抛出FATAL级别的异常日志,过多的FATAL日志导致firewall磁盘告警。     BUG详细情况参见:https://jira.geedge.net/projects/OMPUB/issues/OMPUB-1221?filter=allissues**duandongmei** commented on *2024-04-19T16:44:54.182+0800*: 2024-04-19 讨论更新MAAT规范,考虑MAAT_UPDATE_STATUS格式变更为:ADD,TableName,ID,Unique ID,此变更可以解决Redis ZSET 成员覆盖导致MAAT配置扫描丢失配置版本变更问题。 --- **yangwei** commented on *2024-04-22T14:17:19.561+0800*: 问题原因 * MAAT_UPDATE_STATUS为ZSET,使用格式为“ADD/DEL,TableName,ID”的字符串作为member,score为版本号 * 在一个时间段T内,对同一个Table中的相同ID多次操作时,仅member的score变化 * 在T+1时刻查询MAAT_UPDATE_STATUS,仅保留最后操作member的score,触发maat检查报错的流程如下: ** T0时刻, 生效版本 100, ID=400有效 ** T1-T2时刻,多次操作ID=400,操作序列: *** 101 DEL ID=400 *** 102 ADD ID=400 *** 103 DEL ID=400 *** 104 ADD ID=400 *** 105 DEL ID=400 ** T3时刻,maat查询MAAT_UPDATE_STATUS结果: *** 104 ADD ID=400 *** 105 DEL ID=400 ** 处理“104 ADD ID=400”这行时,会认为{*}该ID与当前已生效的ID=400重复,记录fatal日志{*} ** 处理“105 DEL ID=400”时,能够正确删除ID=400,最终结果无误。 --- **zhengchao** commented on *2024-04-22T17:17:43.760+0800*: Maat现在的设计不影响配置的最终一致性,无需修改业务逻辑。 --- **duandongmei** commented on *2024-04-22T18:18:02.731+0800*: 根据上述评论回滚已更改的业务逻辑 --- **liuchang** commented on *2024-04-23T18:17:53.990+0800*: 讨论maat修改方案为:针对添加的key已存在的情况,不算失败,不打印失败日志。并增加打印一条debug级别日志输出添加重复key的情况 --- **gitlab** commented on *2024-04-26T14:40:29.515+0800*: [刘畅|https://git.mesalab.cn/liuchang] mentioned this issue in [a merge request|https://git.mesalab.cn/tango/maat/-/merge_requests/289] of [TSG Appliance / Maat|https://git.mesalab.cn/tango/maat] on branch [add_dup_key_dont_output_fatal_log|https://git.mesalab.cn/tango/maat/-/tree/add_dup_key_dont_output_fatal_log]:{quote}OMPUB-1231:add dup key don't output fatal log{quote} --- **gitlab** commented on *2024-04-28T18:01:28.320+0800*: [刘畅|https://git.mesalab.cn/liuchang] mentioned this issue in [a merge request|https://git.mesalab.cn/tsg/tsg-os-buildimage/-/merge_requests/2445] of [TSG / tsg-os-buildimage|https://git.mesalab.cn/tsg/tsg-os-buildimage] on branch [update-maat_4_1_36|https://git.mesalab.cn/tsg/tsg-os-buildimage/-/tree/update-maat_4_1_36]:{quote}update maat to 4.1.36, fix 3 bugs{quote} --- ## Attachments