Issue Details (XML | Word | Printable)

Key: CORE-1696
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Roman Simakov
Reporter: Roman Simakov
Votes: 0
Watchers: 0

If you were logged in you would be able to see more operations.
Firebird Core

Deadlock in LM by using nbackup utility

Created: 17/Jan/08 07:55 AM   Updated: 19/Jan/16 05:01 AM
Component/s: Engine
Affects Version/s: 2.1.0
Fix Version/s: 2.5 Beta 1

Environment: Classic server

QA Status: No test

 Description  « Hide
Deadlock description: Process A inserts records into a table. It keeps LCK_read lock on LCK_backup_database and can fetch other pages since NBackupState use recursive locks. So process A calls FETCH_LOCK for a page (for example PP) and waits it if a process B already uses this page. On the other hand process B can have called FETCH_LOCK and must read the page from disk. To do this it must request LCK_backup_database with LCK_read level for status receiving. In this case process B have to wait if third process N already request LCK_backup_database with LCK_write level.

 All   Comments   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Roman Simakov added a comment - 17/Jan/08 08:00 AM - edited
To resolve the problem nbackup must have an order of lock requesting for LCK_bdb and LCK_backup_database.