I wonder when the client receive OSDMap::Incremental and apply_incremental, why not compare the OSDMap.crc with inc.full_crc, like this https://github.com/ceph/ceph/blob/master/src/osd/OSD.cc#L6456 The OSDMonitor also check the crc when update OSMap, like this https://github.com/ceph/ceph/blob/master/src/mon/OSDMonitor.cc#L247 2016-02-04 1:00 GMT+08:00 Gregory Farnum <gfarnum@xxxxxxxxxx>: > On Wed, Feb 3, 2016 at 5:54 AM, Xinze Chi (信泽) <xmdxcxz@xxxxxxxxx> wrote: >> hi, all: >> >> When osd update the osdmap, it would apply the >> OSDMap::Incremental and get the crc for the new osdmap. If the crc is >> not the same as define in Incremental osd would request the full >> osdmap. I think the logic is quite well. >> >> But in the client, the objecter do not check the crc. I do not >> know why not client do the same logic as osd. >> >> Could anyone explain this? Thanks. > > Two things: > 1) The client doesn't necessarily have the full OSDMap that the OSDs > do, so the CRC won't match. (You can see this in the encoding family > of functions; there are sections which are server-only.) I suppose the > monitors could include a client-only CRC as well... > 2) Nobody bothered since it seemed less important for "ephemeral" > clients versus OSDs that persist their maps and share them with peers. > -Greg -- Regards, Xinze Chi -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html