Abortion

What Is Abortion?

Abortion, in the context of computing and information systems, is the deliberate or automatic termination of a process, transaction, or operation before it reaches its normal completion. The term describes a class of control mechanisms that allow a running computation to be halted cleanly when continuing would produce incorrect, inconsistent, or harmful results. It applies at several levels of a computing stack: from individual software processes in an operating system to distributed database transactions spanning multiple networked nodes.

The concept is distinct from an ordinary program exit, which implies orderly completion. An abort signals that something went wrong or that an external agent decided to stop the operation, and that any partial work should be treated as if it never happened.

Process Termination and Signals

At the operating system level, process abortion is implemented through signal mechanisms. On POSIX-compliant systems, the SIGABRT signal causes a process to terminate and, by default, produce a core dump for post-mortem analysis. The standard C library function abort() raises SIGABRT internally, giving the runtime an opportunity to flush buffers and invoke registered handlers before termination. Unlike exit(), which represents a clean shutdown, abort() indicates abnormal termination: memory may be inconsistent, locks may be held, and the process state at the moment of termination is preserved in the core dump for debugging. POSIX documentation for the abort function defines the precise contract that conforming implementations must honor.

Transaction Abort and Rollback

In database and distributed systems, the abort operation is central to the ACID properties that govern transaction integrity. ACID stands for Atomicity, Consistency, Isolation, and Durability. Atomicity requires that a transaction either commits all of its changes or leaves the database entirely unchanged. When a transaction aborts, the database engine rolls back every modification that the transaction made, restoring the data to its state before the transaction began.

Rollback is typically implemented through a write-ahead log (WAL) or undo log, which records the original values of any rows modified by the transaction. If an abort occurs, the log is replayed in reverse order to undo each change. In distributed systems, the two-phase commit (2PC) protocol coordinates abort decisions across multiple resource managers: a coordinator first polls all participants, and if any participant votes to abort, the coordinator instructs all nodes to roll back. The ScienceDirect overview of transaction abort describes how abort and commit paths differ across database architectures.

Abort in Communication Protocols

Abort operations also appear in network and communication protocols, where they signal the premature end of a data transfer or session. In the HDLC (High-level Data Link Control) framing standard, an abort sequence tells the receiver to discard the current frame and wait for a new one. In higher-level protocols such as HTTP and TCP, connection resets serve a similar function, terminating an exchange without completing the expected handshake or data delivery. IEEE standards for data communications define abort conditions and recovery procedures in several link-layer and transport-layer specifications.

Applications

Abortion as a computing primitive has applications across a range of systems, including:

  • Database management systems requiring guaranteed transactional consistency
  • Real-time operating systems that must stop misbehaving tasks before they corrupt shared state
  • Fault-tolerant distributed systems using two-phase commit for cross-node coordination
  • Compilers and interpreters that halt execution when undefined behavior is detected
  • Network protocol stacks managing error recovery at the link and transport layers
Loading…