Project: usergrid
Issue USERGRID-1077: Create a repair task in usergrid to handle instances of multiple INDEXES when they are detected
Things that need to be addressed when they are found. EntityManagerImpl.java line 1135 if ( properties == null ) { logger.error( "Error deserializing entity with key {} entity probaby doesn't exist, where did this key come from?", key ); continue; } UUID id = uuid( properties.get( PROPERTY_UUID ) ); String type = string( properties.get( PROPERTY_TYPE ) ); if ( ( id == null ) || ( type == null ) ) { logger.error( "Error retrieving entity with key {}, no type or id deseriazable, where did this key come from?", key ); continue; } Then in EntityManagerImpl getUUIDsForUniqueProperty //shouldn't happen, but it's an error case if ( cols.size() > 1 ) { logger.error( "INDEX CORRUPTION: More than 1 unique value exists for entities in ownerId {} of type {} on " + "property {} with value {}", new Object[] { ownerEntityId, collectionNameInternal, propertyName, propertyValue } ); } ^ Need to address both issues on read repair path such that we no longer need to worry about users seeing them. For the second issue we should be able to just call delete UniqueProperty with the entity unique value in question. Just make this happen in the backend.
Story points: 8