Distributed Systems 5ed by Coulouris says on p68

2.4.2 Failure Models

Omission Failures ...

Arbitrary Failures The term arbitrary or Byzantine failure is used to describe the worst possible failure semantics, in which any type of error may occur. For example, a process may set wrong values in its data items, or it may return a wrong value in response to an invocation.

Timing Failures ...

Are arbitrary/Byzantine failures arbitrary? (Sounds yes to me.)

Do arbitrary/Byzantine failures include omission failures and timing failures? (I guess not. Otherwise, why does it describe omission failures and timing failures separately?)

The book on p660 says

15.5.1 System model and problem definitions

Our system model includes a collection of processes communicating by message passing. An important requirement that applies in many practical situa- tions is for consensus to be reached even in the presence of faults. We assume, as before, that communication is reliable but that processes may fail. In this section we consider Byzantine (arbitrary) process failures, as well as crash failures.

Does the above quote imply that crash failures (a kind of process omission failures, as the book said in Section 2.4.2) are not Byzantine (arbitrary) process failures?


  • $\begingroup$ Are there people feeling uncomfortable with the abuse on my post? $\endgroup$
    – Tim
    Dec 24, 2019 at 18:23

1 Answer 1


Arbitrary failure means exactly what it says. It means that the failing process should be treated as if an opponent is choosing the process's behavior to try to break your system.

Other types of failure, such as omission failures and timing failures, are special cases of this. They are relevant because certain algorithms only guarantee correct results in all cases if, for example, it is assumed that a process may fail to respond to a message (omission failure) but cannot fail in other ways, such as by responding with incorrect data.

  • $\begingroup$ Thanks. I just added a quote from the book to my post, about the usage of the failure model in consensus problems. Does the new quote imply that crash failures (a kind of process omission failures, as the book said in Section 2.4.2) are not Byzantine (arbitrary) process failures? $\endgroup$
    – Tim
    Dec 24, 2019 at 1:11
  • $\begingroup$ @Tim I don't have a copy of that book, but my understanding is that crash failures are also a subset of Byzantine failures, since a crash is effectively the same as an adversary choosing to send no responses. The wording reads as if the section is going to consider what can be proved in the presence of Byzantine failures, and then separately going to consider what further can be proved if we assume the only failures that can happen are crash failures. Does this appear to match the structure of the section in the book? $\endgroup$ Dec 24, 2019 at 1:30
  • $\begingroup$ 15.5.2 Solve Consensus problem in a synchronous system with process crashing failure, and 15.5.3 Solve the Byzantine generals problem in a synchronous system with arbitrary/Byzantine process failures. Do they make sense to you? $\endgroup$
    – Tim
    Dec 24, 2019 at 1:42
  • $\begingroup$ @Tim Sounds like you found your answer. The book has two sections describing different problems with different assumptions. One section assumes crash failures only, the other section assumes arbitrary failures which can include crash failures as well as any other types of failures. $\endgroup$ Dec 24, 2019 at 3:13
  • $\begingroup$ What distributed system books do you like? $\endgroup$
    – Tim
    Dec 24, 2019 at 3:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.