diff --git a/flow/flat_buffers.cpp b/flow/flat_buffers.cpp index a840dfc81e..679c3c8a61 100644 --- a/flow/flat_buffers.cpp +++ b/flow/flat_buffers.cpp @@ -452,6 +452,10 @@ TEST_CASE("/flow/FlatBuffers/VectorRef") { serializedVector = StringRef(readerArena, writer.toStringRef()); } ArenaObjectReader reader(readerArena, serializedVector, Unversioned()); + // The VectorRef and Arena arguments are intentionally in a different order from the serialize call above. + // Arenas need to get serialized after any Ref types whose memory they own. In order for schema evolution to be + // possible, it needs to be okay to reorder an Arena so that it appears after a newly added Ref type. For this + // reason, Arenas are ignored by the wire protocol entirely. We test that behavior here. reader.deserialize(FileIdentifierFor::value, outVec, vecArena); } ASSERT(src.size() == outVec.size());