Description
1. isUnderReplicated method in Partition.scala needs to take the leaderIsrUpdateLock before reading the inSyncReplica structure. We suspect that this could cause the gauge to read stale values from the cache.
2. toString api should take the leaderIsrUpdateLock to prevent anything from blowing up when it iterates the data structures