---
name: "db4.7_deadlock"
section: "1"
platform: "linux"
package: "db4.7-util"
version: "4.7.25-21"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/db4.7_deadlock"
---

# db4.7\_deadlock(1)

Detect and abort deadlocks

## NAME

db4.7\_deadlock - Detect and abort deadlocks

## SYNOPSIS

**db4.7\_deadlock** \[-Vv\] \[-a e \| m \| n \| o \| W \| w \| y\] \[-h home\] \[-L file\] \[-t sec.usec\]

## DESCRIPTION

The db4.7\_deadlock utility traverses the database environment lock region, and aborts a lock request each time it detects a deadlock or a lock request that has timed out. By default, in the case of a deadlock, a random lock request is chosen to be aborted.

This utility should be run as a background daemon, or the underlying Berkeley DB deadlock detection interfaces should be called in some other way, whenever there are multiple threads or processes accessing a database and at least one of them is modifying it.

## OPTIONS

- **-a**

  When a deadlock is detected, abort the locker:

  - m

    with the most locks

  - n

    with the fewest locks

  - o

    with the oldest lock

  - W

    with the most write locks

  - w

    with the fewest write locks

  - y

    with the youngest lock

-

  When lock or transaction timeouts have been specified:

  - e

    abort any lock request that has timed out

- **-h**

  Specify a home directory for the database environment; by default, the current working directory is used.

- **-L**

  Log the execution of the db4.7\_deadlock utility to the specified file in the following format, where *###* is the process ID, and the date is the time the utility was started.

- db\_deadlock: ### Wed Jun 15 01:23:45 EDT 1995

  This file will be removed if the db4.7\_deadlock utility exits gracefully.

- **-t**

  Check the database environment every **sec** seconds plus **usec** microseconds to see if a process has been forced to wait for a lock; if one has, review the database environment lock structures.

- **-V**

  Write the library version number to the standard output, and exit.

- **-v**

  Run in verbose mode, generating messages each time the detector runs.

If the **-t** option is not specified, db4.7\_deadlock will run once and exit.

The db4.7\_deadlock utility uses a Berkeley DB environment (as described for the **-h** option, the environment variable **DB\_HOME**, or because the utility was run in a directory containing a Berkeley DB environment).  In order to avoid environment corruption when using a Berkeley DB environment, db4.7\_deadlock should always be given the chance to detach from the environment and exit gracefully.  To cause db4.7\_deadlock to release all environment resources and exit cleanly, send it an interrupt signal (SIGINT).

The db4.7\_deadlock utility does not attempt to create the Berkeley DB shared memory regions if they do not already exist.  The application which creates the region should be started first, and then, once the region is created, the db4.7\_deadlock utility should be started.

The DB\_ENV-\>lock\_detect method is the underlying method used by the db\_deadlock utility. See the db\_deadlock utility source code for an example of using DB\_ENV-\>lock\_detect in a IEEE/ANSI Std 1003.1 (POSIX) environment.

The db4.7\_deadlock utility exits 0 on success, and \>0 if an error occurs.

## ENVIRONMENT

- **DB\_HOME**

  If the **-h** option is not specified and the environment variable DB\_HOME is set, it is used as the path of the database home, as described in DB\_ENV-\>open.

## AUTHORS

Sleepycat Software, Inc. This manual page was created based on the HTML documentation for db\_deadlock from Sleepycat, by Thijs Kinkhorst \<thijs@kinkhorst.com\>, for the Debian system (but may be used by others).
