Commit Graph

486 Commits

Author SHA1 Message Date
zhengchao
c4c1ade152 变更table runtime垃圾回收机制的单元测试通过。 2021-08-05 10:08:21 +08:00
zhengchao
c7e9b29309 IP Plugin和FQDN Plugin内部实现垃圾回收,不再由外部调用。 2021-08-05 00:39:32 +08:00
zhengchao
e356d74bc0 重构table runtime工作量较大,准备放弃。 2021-08-05 00:22:00 +08:00
zhengchao
7e3b746eaa 未对FQDN Plugin表的changed_flag进行重置,产生不必要的FQDN Engine重建 2021-08-04 23:18:02 +08:00
zhengchao
96abe1d9f4 Maat_hierarchy_build_region2clause_hash中,不在对group中的region id排序和去重, 可以提高大Group的加载性能。 2021-07-27 15:17:29 +08:00
zhengchao
dc057b2562 减少增量更新时hier重建的写锁临界区,减少扫描线程的所冲突。 修复 TSG-7211 2021-07-27 11:54:24 +08:00
zhengchao
479eb77369 基于Maat_cmd的测试用例增加扫描状态输出。 2021-07-21 15:30:30 +08:00
zhengchao
0037646ef6 因使用MAAT_SET_SCAN_NO_COUNT后,在Group移除region id时会出现误命中,移除对MAAT_SET_SCAN_NO_COUNT的支持。 回调表使用feather中的垃圾回收队列,便于观察队列长度。 2021-07-21 14:48:08 +08:00
zhengchao
72ffbd9809 修复bug:上一版本引入,region更新不能反映到compile命中;
改善Maat_hierarchy_compile_mid_udpate的处理性能。
2021-07-20 20:55:52 +08:00
zhengchao
524edff8be 优化hit_path增加性能 2021-07-19 20:55:13 +08:00
zhengchao
53beb2f221 compile_mid使用ut_arrary替代tailq存储hit_path。 2021-07-19 20:55:13 +08:00
zhengchao
1e2e3a1798 改进Hierarchy的多线程扫描性能: Hierarchy使用rwlock来保证更新线程和扫描线程间的线程安全, 测试发现在不发生读写锁冲突的情况下, 读写锁的固有开销会导致并发扫描速度降低。
reference:
https://stackoverflow.com/questions/11866486/how-many-simultaneous-readers-can-a-pthread-rwlock-have
2021-07-19 20:55:12 +08:00
zhengchao
e21db4ddf7 去掉不必要的memset,避免性损失。 2021-07-19 20:55:12 +08:00
zhengchao
233bc2f0ef Maat_set_scan_status可以设置MAAT_SET_SCAN_NO_COUNT类型参数, 指示下一次扫描不进行计数,以减少hit path的存储开销。 2021-07-19 20:55:12 +08:00
zhengchao
99e8ffb510 修改scan status重的测试用例,覆盖更多分支。 2021-07-19 20:55:11 +08:00
郑超
6d5a42fb4a 提高expr_plus和interval_plus表的扫描性能 2021-07-15 03:59:09 +00:00
zhengchao
1c08363dc4 bool Matcher对输入的item id(clause id)排序和去重,会改变外部ut_array内容,可能造成风险, 去除bool matcher 中的这部分代码。 2021-07-01 14:42:14 +08:00
zhengchao
00f782b0cf 修复配置数量为0时,流式扫描句柄计数错误。 2021-06-18 15:11:52 +08:00
郑超
8bf48ba1f3 Feature faster bool matcher on reptead item 2021-06-15 01:32:46 +00:00
zhengchao
fe73ef1156 Hierarchy中,使用垃圾回收方式释放compile,避免bool_matcher命中已删除的compile后,从而非法内存访问导致段错误。 修复 TSG-6548 2021-06-01 21:40:20 +08:00
zhengchao
7980d87924 bool matcher中引用了已经被释放的compile,导致段错误。 TSG-6548 2021-06-01 21:19:41 +08:00
zhengchao
6b9162272d 修复bug: Bool matcher重建时,maat hierarchy会重新生成clause id,会引发两种bug现象:
1. 新生成的clause id,与扫描状态mid中缓存的clause id冲突,导致误命中。引发 TSG-6419
2. mid中已缓存了clause id,但是由于构造的bool macher使用新的clause id,导致漏命中。
修复方案:
1. 将生成clause id的哈希表保存在hierarchy中, 保证增量更新前后clause id不变化;
2. 在mid中增加时间戳作为版本号,旧版本的mid不进行bool matcher运算,以免误命中。
2021-05-27 20:44:21 +08:00
zhengchao
df4fad9e8b 增加测试用例: 使用同一个mid扫描时, 更新boolmatcher。 2021-05-24 23:11:54 +08:00
zhengchao
85daf06a79 TSG-6345 redis断开期间redis内的数据发生变化,且版本号未发生回滚,导致maat无法加载新配置。 修复方法: 重连redis后,触发全量配置更新。 2021-05-13 17:51:23 +08:00
zhengchao
f2fac87894 修复bug: TSG-6324 在流式扫描过程中,发生版本号回滚导致的全量更新后,Maat_stream_scan_string_end释放rulescan流式扫描句柄时,会非法访问已被销毁的rulescan句柄内存,从而导致段错误。 2021-05-13 16:11:37 +08:00
zhengchao
1460f891c6 支持加载使用gzip命令压缩的maat JSON文件。允许先压缩、后加密,不支持先加密后压缩。 2021-04-28 21:44:04 +08:00
zhengchao
c1355dd3e5 为了便于单元测试,支持设置垃圾回收时间,默认10秒。 2021-04-28 12:06:34 +08:00
zhengchao
66c294feae 确认bug修复:组合扫描命中域配置或编译配置时,进行全量更新,会导致的hierarchy导致的死锁。 更新版本号为 v3.1.19 2021-04-20 15:04:02 +08:00
zhengchao
cd5f2c7c26 Maat Hierarchy中的compile mid结构体保留了Hier的指针,可能指向已被释放的hier,导致扫描线程死锁。 2021-04-20 12:47:05 +08:00
zhengchao
ac4b39e6f5 Maat_hierarchy_region_compile按照用户传入的结果数量申请缓存,当bool mactcher返回的结果中包含之前命中过的compile时, 可能导致bool matcher未返回全部的命中结果。 2021-04-19 10:27:12 +08:00
zhengchao
0f6eccbb47 增加hierarachy中为每个线程分配expr_buff,以修复使用用户设置的缓冲区大小,导致不命中的bug。 2021-04-19 10:27:11 +08:00
zhengchao
e3b3288dc1 集成支持expr_id的bool matcher 2021-04-19 10:27:11 +08:00
liuxueli
0eff6faae6 使用流式扫描接口,命中多个不同策略时导致死循环 2021-04-18 21:10:27 +08:00
刘学利
912749b1cd Fix memory leak by update uncare table 2021-04-01 02:28:12 +00:00
郑超
f82454a310 修复bug:ip_plugin和fqdn_plugin的扫描线程可能访问到无效的EX_data_container,导致#26; plugin的扫描线程和更新线程发生线程不安全访问EX_data_rt中的uthash。 2021-03-20 08:09:52 +00:00
liuxueli
1d8f35ca50 未对for中释放内存的变量置NULL,当redis-server不可用时,freeReplyObject释放内存时出错 2021-03-17 16:00:36 +08:00
liuxueli
673eeb9413 校验子句的序号值,避免越界重启 2021-03-15 11:25:59 +08:00
liuxueli
dc6d324b52 生效范围支持对\b、\\、\&字符转义 2021-03-11 09:36:07 +08:00
zhengchao
80576aafbc 扫描expr_plus表时,避免对rulescan result的不必要的拷贝。 2021-03-09 13:44:43 +08:00
zhengchao
af64b86de8 增加版本号 2021-03-08 20:04:12 +08:00
zhengchao
460831ea23 处理expr_plus中的district时,使用了memmove,当命中region较多时,显著影响性能。 #25 2021-03-08 18:59:51 +08:00
zhengchao
593cb23a7d 更新版本号到3.1.11 2021-01-29 21:08:14 +08:00
zhengchao
e12bef3033 Maat_hierarchy_compile_mid_update_by_compile中的assert并不准确:在扫描命中region后,进行region_compile之前,该region被删除时,此region不会加入hit_path。 2021-01-29 21:06:32 +08:00
zhengchao
653727e19a 增加删除8个子串的与表达式的测试用例 2020-12-20 19:54:39 +06:00
zhengchao
f908f2e3ac 修复加载8个字符串与表达式报错的bug TSG-4717;增加Hierarchy日志中输出去重后Clause的数量。 2020-12-16 10:51:34 +06:00
zhengchao
a925ed039d region_compile中compile_rule缓存数组的大小,调整为与调用参数相同。去除部分无效代码。 2020-12-05 16:54:04 +06:00
zhengchao
df48863c65 1. 提高group被大量compile同时引用的性能
2. 修复Maat_hierarchy_region_compile中对literal_ids的线程不安全访问,在配置更新时可导致段错误。
2020-12-05 13:39:48 +06:00
liuxueli
e6a7f24863 同时命中compile数量过多时,仅对MAX_GROUP_CACHE个数中间结果的进行排序,减少循环的次数 2020-11-25 11:28:01 +06:00
zhengchao
b9779088b9 对命中clause_id的数量设置上限,避免同时命中compile数量过多时,utarray排序耗时过大。 2020-11-24 21:08:40 +06:00
zhengchao
e9a9c89116 增加IP composition的测试用例,确认端口范围的起始不能为1。 2020-11-24 21:08:40 +06:00