You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "Murtadha Hubail (JIRA)" <ji...@apache.org> on 2015/11/05 05:21:27 UTC

[jira] [Created] (ASTERIXDB-1160) Possible deadlock between LogManager and LogFlusher

Murtadha Hubail created ASTERIXDB-1160:
------------------------------------------

             Summary: Possible deadlock between LogManager and LogFlusher
                 Key: ASTERIXDB-1160
                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-1160
             Project: Apache AsterixDB
          Issue Type: Bug
          Components: Transactions
            Reporter: Murtadha Hubail
            Assignee: Murtadha Hubail


Currently when LogFlusher thread flushes a full log tail buffer, it calls PrimaryIndexOpeartionTracker.completeOperation. If the completeOperation call results in generating a FLUSH log type and the LogManager has no empty log buffers available to log it, a deadlock happens.

To reproduce the deadlock with high probabilty, set the number of log pages in the asterix configuration to 1 and a small size, then load some data to the system.

The proposed solution is to have a different thread responsible for logging FLUSH logs. This way logging FLUSH logs will have to wait until an empty log buffer becomes available to the LogManager on a different thread than the LogFlusher.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)