This happens when allocator has contiguous 4GB-aligned chunks to allocate from only. Internal stuff searching for free contiguous chunk operates 32-bit length field when doing the lookup. Due to 32-bit wrapping This results in free chunks of zero length to return. Which in turn is treated as the lack of free space.