Description
The ILLEGAL_GENERATION error is a bit confusing today. When a consumer receives an ILLEGAL_GENERATION from hearbeat response, it should still use that generation id to commit offset. i.e. the generation id was not really illegal.
The current code was written earlier when we still bump up the generation id when the coordinator enters PrepareRebalance state. Since now the generation id is bumped up after PreareRebalance state ends, we should not overload ILLEGAL_GENERATION to notify a rebalance but create a new error code such as REBALANCE_IN_PROGRESS.