mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 15:50:51 +03:00 
			
		
		
		
	Problem: When an Incident_log_event contains a bad incident number on disk, the server crashes with an assertion. Fix: Don't validate input with assertions. Use errors. mysql-test/include/cleanup_fake_relay_log.inc: Added auxiliary file to restore things that setup_fake_relay_log.inc did. mysql-test/include/setup_fake_relay_log.inc: Added auxiliary file to setup replication from an existing relay log. mysql-test/std_data/bug40482-bin.000001: Binlog file for rpl.rpl_binlog_corruption mysql-test/suite/rpl/t/rpl_binlog_corruption.test: New test file. sql/log_event.cc: Check that the incident number is correct at the time the event is constructed. Do not assert it at the time it is printed. sql/log_event.h: Incident_log_event::is_valid() should verify that the incident number is valid. sql/rpl_constants.h: Incident numbers should be hard-coded, since they may appear in files.
		
			
				
	
	
		
			19 lines
		
	
	
		
			372 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
		
			372 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef RPL_CONSTANTS_H
 | |
| #define RPL_CONSTANTS_H
 | |
| 
 | |
| /**
 | |
|    Enumeration of the incidents that can occur for the server.
 | |
|  */
 | |
| enum Incident {
 | |
|   /** No incident */
 | |
|   INCIDENT_NONE = 0,
 | |
| 
 | |
|   /** There are possibly lost events in the replication stream */
 | |
|   INCIDENT_LOST_EVENTS = 1,
 | |
| 
 | |
|   /** Shall be last event of the enumeration */
 | |
|   INCIDENT_COUNT
 | |
| };
 | |
| 
 | |
| #endif /* RPL_CONSTANTS_H */
 |