Ticket #74 (closed defect: fixed)

Opened 6 months ago

Last modified 6 months ago

Blocked entry tasks not rescheduled on transaction end

Reported by: T.Doenz Owned by: T.Doenz
Priority: critical Milestone: 2.1
Component: CAPI3-Native Version: 2.1
Keywords: Cc:

Description

Blocked entry tasks (read, take, test, delete, write) are not rescheduled, although they should be, under certain conditions. For example, if a take (or read, test, delete) is performed on an empty container with an explicit transaction, the task is blocked but not rescheduled when the explicit transaction ends (commit or rollback). The reason is, that when the take operation returns with DELAYABLE, no LogItem is added to the transaction log, and thus the container used in the operation is not returned by DefaultTransaction.getAccessedContainers called in SynchronizedWaitAndEventManager.processTransactionCommit/Rollback. This is the case for the CAPI-3 status DELAYABLE and LOCKED. The write operation is affected only when it returns with LOCKED because the container is locked, otherwise a LogItem is added before the actual operation (writing the entry to the container) is performed.

Change History

comment:1 Changed 6 months ago by T.Doenz

Test cases showing this bug are in the class Ticket74BlockedTaskNotRescheduledOnTxEnd (module core-integration-test).

comment:2 Changed 6 months ago by T.Doenz

  • Status changed from new to closed
  • Resolution set to fixed

fixed with SVN rev. 11080

comment:3 Changed 6 months ago by T.Doenz

  • Milestone set to 2.1
Note: See TracTickets for help on using tickets.