Deadlock
When two threads wait for each other forever — A holds lock 1 and waits for 2, B holds lock 2 and waits for 1.
Classic concurrency bug. Prevent by always acquiring locks in the same order, using timeouts, or higher abstractions (channels, actors).