replmd: Try to add forward-link for unknown cross-partition links
authorTim Beale <timbeale@catalyst.net.nz>
Mon, 24 Jul 2017 04:20:58 +0000 (16:20 +1200)
committerAndrew Bartlett <abartlet@samba.org>
Fri, 18 Aug 2017 04:07:12 +0000 (06:07 +0200)
commitfae5df891c11f642cbede9e4e3d845c49c5f86b8
treea11b33aecdffb468ee9c32d8c9aa1fefbc9a6110
parent89cf5c3f76e214fbd06ce461470eb64b338c5144
replmd: Try to add forward-link for unknown cross-partition links

Previously Samba would just drop cross-partition links where the link
target object is unknown. Instead, what we want to do is try to add the
forward link for the GUID specified. We can't add the backlink because
we don't know the target, however, dbcheck should be able to fix any
missing backlinks.

The new behaviour should now mean dbcheck will detect the problem and be
able to fix it. It's still not ideal, but it's better than dropping the
link completely.

I've updated the log so that it has higher severity and tells the user
what they need to do to fix it.

These changes now mean that the selftests now detect an error - instead
of completely dropping the serverReference, we now have a missing
backlink. I've updated the selftests to fix up any missing
serverReference backlinks before running dbcheck.

Signed-off-by: Tim Beale <timbeale@catalyst.net.nz>
Reviewed-by: Garming Sam <garming@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
BUG: https://bugzilla.samba.org/show_bug.cgi?id=12972
source4/dsdb/samdb/ldb_modules/repl_meta_data.c
testprogs/blackbox/dbcheck.sh