Class HalfDeadTServerIT


  • public class HalfDeadTServerIT
    extends ConfigurableMacBase
    This test verifies tserver behavior when the node experiences certain failure states that cause it to be unresponsive to network I/O and/or disk access.

    This failure state is simulated in a tserver by running that tserver with a shared library that hooks the read/write system calls. When the shared library sees a specific trigger file, it pauses the system calls and prints "sleeping", until that file is deleted, after which it proxies the system call to the real system implementation.

    In response to failures of the type this test simulates, the tserver should recover if the system call is stalled for less than the ZooKeeper timeout. Otherwise, it should lose its lock in ZooKeeper and terminate itself.