123456789101112131415161718192021222324252627282930313233 |
- <?php
-
- namespace Illuminate\Database;
-
- use Exception;
- use Illuminate\Support\Str;
-
- trait DetectsDeadlocks
- {
- /**
- * Determine if the given exception was caused by a deadlock.
- *
- * @param \Exception $e
- * @return bool
- */
- protected function causedByDeadlock(Exception $e)
- {
- $message = $e->getMessage();
-
- return Str::contains($message, [
- 'Deadlock found when trying to get lock',
- 'deadlock detected',
- 'The database file is locked',
- 'database is locked',
- 'database table is locked',
- 'A table in the database is locked',
- 'has been chosen as the deadlock victim',
- 'Lock wait timeout exceeded; try restarting transaction',
- 'WSREP detected deadlock/conflict and aborted the transaction. Try restarting the transaction',
- ]);
- }
- }
|