-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
关于极限网关升新版本后报dirty_read的ERR报错 #49
Comments
是用的gateway-linux-amd64,操作系统redhat 8.6 |
有异常关闭网关的情况么? |
这个错误应该没问题,是文件还没写完的过程中,读到了部分未写完的消息,这里报错是故意的,退出本次读取,重新打开文件并重试读的。 |
|
这个读取会重复relplay消息么,我看日志第一次读,成功读到了20条消息,会有条日志success replay 20 message,然后马上脏读,从新读,读到25条消息,也会打条日志success replay 25 messge,然后又再次脏读,直到没有脏读为止。 |
能确认消息被重复消费了么? |
消息应该会被重复处理,backup磁盘队列这边脏读,aysync_bulk队列也会脏读。而且脏读概率非常高,一分钟很多条。对比旧版本和新版本日志输出,感觉磁盘队列消费那块儿代码应该变动过,感觉有些参数像eof_retry_delay_in_ms参数及到达eof时的检查没有生效 |
你帮忙看一下索引文档的版本信息,如果是覆盖模式,版本会一直增加,如果是 Create 模式,重复消费会直接报错。 |
问题描述
极限网关双写,写主集群后,会将写成功的bulk请求保存到backup磁盘队列,采用离线处理器flow_runner异步消费backup队列,并将其进行bulk_reshuffer后,由其他离线处理器消费写到备ES集群。
升级后,发现消费backup磁盘队列,总是出现脏读现象,对比1.25.0版本,调整了很多组合参数尝试,均无法消除。开trace看,虽然该ERR报错暂不会导致丢数,但看起来会重复处理数据,脏读时,会从上一次提交的consumer offset重新读取数据,有时候可能会出现很多次脏读(每一次都会从上一次提交的consumer offset重新读取数据),感觉有一定风险。
日志贴图
1.28.0新版本trace日志
The text was updated successfully, but these errors were encountered: