Currently, ENOMEM error indicating there is no available memory is propagated to the user. There may be cases that we return this error but the user operation actually succeeds. We need to handle this error in a better way.
- We can crash if we hit ENOMEM.
- If we don't want to crash every time, print out the state of the transaction, don't allow any more operation on the transaction, and make sure the transaction is rolled back in the end.