bug Wrong Packet goes null_bitmask from table map event
Closed this issue · 0 comments
sean-k1 commented
Problem
timing of event creation and the timing of now the table structure are different,
ex) drop table but replication did not reach that point
if self.table_id in table_map:
self.column_schemas = table_map[self.table_id].column_schemas
else:
self.column_schemas = self._ctl_connection._get_table_information(self.schema, self.table)
ordinal_pos_loc = 0
if len(self.column_schemas) != 0:
# Read columns meta data
column_types = bytearray(self.packet.read(self.column_count)) # read packet point
self.null_bitmask = self.packet.read((self.column_count + 7) / 8) #error packet goes
self.column_schemas doesn't yield any results, the code will exit the if statement.
However, since there is more column information in the remaining packets
If we don't read the packet here, an incorrect byte packet for null_bit_mask could be passed through.