第一篇是发现了问题,这一篇发现了更多有意思的现象。
当我实时观察偏移量的时候(想看什么时候能追上),发现我记录的offset竟然由大变小了,我以为自己看错了,但一段时间后,又复现了!紧张感顿生,大bug?
为什么offset会变小,感觉是循环解析mysql-bin.010672
感觉是个大bug,
sprintf("%s",...)
,那么这个存储没问题。#171205 16:06:59 server id 2012 end_log_pos 4294934461 CRC32 0x29e814c4 Update_rows: table id 111580
#171205 16:06:59 server id 2012 end_log_pos 4294942639 CRC32 0xc85227c4 Update_rows: table id 111580
#171205 16:06:59 server id 2012 end_log_pos 4294952475 CRC32 0x4bf1a443 Update_rows: table id 111580
#171205 16:06:59 server id 2012 end_log_pos 4294963179 CRC32 0xe3263ec6 Update_rows: table id 111580
#171205 16:06:59 server id 2012 end_log_pos 5775 CRC32 0x0b2c2d31 Update_rows: table id 111580
#171205 16:06:59 server id 2012 end_log_pos 15731 CRC32 0x8d92b8e3 Update_rows: table id 111580
#171205 16:06:59 server id 2012 end_log_pos 25781 CRC32 0x043bc145 Update_rows: table id 111580
#171205 16:06:59 server id 2012 end_log_pos 28567 CRC32 0x7c9e0674 Update_rows: table id 111580
#171205 16:06:59 server id 2012 end_log_pos 39917 CRC32 0xcb431e05 Update_rows: table id 111580
#171205 16:06:59 server id 2012 end_log_pos 49975 CRC32 0x92c1a163 Update_rows: table id 111580
问题确认! mysql写入的offset确实是被截断了
我看到的所谓循环,其实不是循环,只是offset确实变小了。
这个问题本身这次并没有对业务产生影响,这次主要问题是延迟。但这个问题本身很重要。