Fixed undefined behavior in BatchedFallback (#43705)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/43705
This was causing fb-internal flakiness. I'm surprised that the ASAN
builds don't catch this behavior.
The problem is that dereferencing the end() pointer of a vector is
undefined behavior. This PR fixes one callsite where BatchedFallback
dereferences the end() pointer and adds an assert to make sure another
callsite doesn't do that.
Test Plan:
- Make sure all tests pass (`pytest test/test_vmap.py -v`)
- It's hard to write a new test for this because most of the time this
doesn't cause a crash. It really depends on what lives at the end()
pointer.
Reviewed By: ezyang
Differential Revision: D23373352
Pulled By: zou3519
fbshipit-source-id: 61ea0be80dc006f6d4e73f2c5badd75096f63e56