diff --git a/src/backend/utils/mmgr/generation.c b/src/backend/utils/mmgr/generation.c
index 2ede8e1be93ff9392e2fdc9e19ca64b014202ec6..a748ee266c2010b0e37512d2468499fe4256f937 100644
--- a/src/backend/utils/mmgr/generation.c
+++ b/src/backend/utils/mmgr/generation.c
@@ -409,9 +409,14 @@ GenerationAlloc(MemoryContext context, Size size)
 
 	chunk = (GenerationChunk *) block->freeptr;
 
+	/* Prepare to initialize the chunk header. */
+	VALGRIND_MAKE_MEM_UNDEFINED(chunk, Generation_CHUNKHDRSZ);
+
 	block->nchunks += 1;
 	block->freeptr += (Generation_CHUNKHDRSZ + chunk_size);
 
+	Assert(block->freeptr <= block->endptr);
+
 	chunk->block = block;
 
 	chunk->context = set;