Summary:
Some bundle2 handlers (such as pushvars) run prior to the acquisition of the lock. In order to have those handlers be able to set hook variables, we have to save the hook variables onto the bundle object, rather than the transaction object.
Once the transaction is retrieved, we drain all the hook arguments into the transaction. Further attempts to call `addhookargs will cause an abort.
An alternative to aborting is to save the transaction, and pass further arguments to the transaction. I believe this is an inferior choice because it is masking a bug.
Test Plan: run ./verify_reviewedby_info.t in opsfiles with D2880506 patched in. passed.
Reviewers: #sourcecontrol, durham
Reviewed By: durham
Subscribers: durham, mitrandir
Differential Revision: https://phabricator.fb.com/D2898401
Signature: t1:2898401:1454615031:94933cf513eaa06c5b60686ec5d65a563ddc31c4