Summary
Update processing is extremely complicated, much more so than is commonly appreciated. SQL Server generally takes great care to ensure correct operation at all times. It does this partly by protecting physical structures with appropriate latches and locks in accordance with the requirements of the current transaction isolation level.It was a huge surprise then, to discover a case where SQL Server gets things wrong. This failure can result in errors, internal assertion failures, stack dumps, and connection termination.