6473608 Ticket 47490 - Schema replication between DS versions may overwrite newer base schema

Authored and Committed by tbordaz 10 years ago
    Ticket 47490 - Schema replication between DS versions may overwrite newer base schema
    
    Bug Description:
    	At the beginning of a replication session, the supplier checks if the schema (that the supplier owns) needs to be pushed
    	to the consumer. This is based on the comparison of a CSN (nsSchemaCSN).
    	The problem is that the CSN specifies which is the most recent update but does not garantee that the most recent
    	update is a superset of a previous update.
    	In an upgrade scenario a consumer schema can be overwriten by a supplier schema although the consumer schema is a superset
    	of the supplier schema
    
    Fix Description:
    	The fix contains two parts:
    		- one to prevent a supplier to push its schema if it is not a superset of the consumer one
    		- one to prevent a consumer to accept a schema push, if the supplier schema is not a superset of its schema
    	To determine that a schema is a superset of an other, this fix only deals objectclasses.
    	For all objectclasses (of the consumer schema), it checks that
    		- all required attributes are also required in the supplier objectclasses
    		- all allowed  attributes are also allowed  in the supplier objectclasses
    
    https://fedorahosted.org/389/ticket/47490
    
    Reviewed by: Rich Megginson (thanks Rich !)
    
    Platforms tested: unit tests, acceptance mmr, new TC in tet accept/mmr
    
    Flag Day: no
    
    Doc impact: possibly for troubleshooting guide, in case of warning messages
    
        
file modified
+289 -31