Project: duracloud
Issue DURACLOUD-1021: Mill: Dup Task Processor should perform delete on destination only if the source does not contain item.
In order to cover the case of content disappearing (due to provider failure) from the source provider we must make sure to delete destination store content only if the content is no longer in the source manifest. Currently if a dup task comes to dup content from a source to a dest provider, if the item doesn't exist in the primary we delete it in the destination. However the looping dup producer adds dup messages for items not in the source that are in the destination in order to synchronize any missed deletes. Thus a file that disappears from the source unexpectedly will be deleted resulting in data loss. So to fix this problem: if dup task targets a content item that does not exist in the source provider, ensure that it is not in the source manifest before deleting from destination.
Story points: 2