The failOnPoisonedFieldLookup fail point, when enabled, causes an exception to be thrown when a field named "POISON" is looked up in a document in the SBE VM. There are only two integration tests which make use of this fail point:
Both of these tests are about short-circuiting. They are trying to show that if short-circuiting takes place and skips an expression that depends on "POISON".
The problem is that this is somewhat dependent on the internals of the implementation. There's nothing to prevent the system from choosing to extract the "POISON" dependency earlier, and reuse a slot containing the resulting value later. In fact, it may be beneficial to do so for performance. Indeed, andrew.paroski@mongodb.com had to inject some special logic when working on SERVER-70972 in order to keep the failOnPoisonedFieldLookup fail point working.
I propose that we wiggle out of the current situation by using this ticket to either delete the tests which rely on "failOnPoisonedFieldLookup", or rewrite them so that they depend less on the internal details of how an SBE plan is structured.