Skip to content

Commit 0975fab

Browse files
committed
emsmdb: deactivate broken partial message change download
References: GXL-624, DESK-3529
1 parent 527d25e commit 0975fab

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

exch/emsmdb/icsdownctx_object.cpp

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -901,7 +901,19 @@ static BOOL icsdownctx_object_write_message_change(icsdownctx_object *pctx,
901901

902902
std::vector<uint32_t> groups;
903903
std::vector<proptag_t> ugrp_tags;
904-
if (!b_downloaded || progmsg.b_fai) {
904+
/*
905+
* [Grep keyword: FAULTY-PARTIALS]. The partial change synchronization
906+
* looks pretty bugged.
907+
*
908+
* The save_change_pgrp EXRPC records changed proptags between CNs. But
909+
* message_write_messages issues a fat `DELETE FROM message_changes`,
910+
* so in effect, only the most recent upload (i.e. diff(CN-1, CN)) is
911+
* ever kept. A client which is at CN-2 thus would not be served enough
912+
* propvals when catching up to CN-0.
913+
*
914+
* As a result, always transfer full messages.
915+
*/
916+
if (true /* !b_downloaded || progmsg.b_fai */) {
905917
b_full = TRUE;
906918
} else {
907919
/* Downloaded && Normal message */

0 commit comments

Comments
 (0)