[ https://issues.apache.org/jira/browse/ASTERIXDB-2130?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16246187#comment-16246187 ]
ASF subversion and git services commented on ASTERIXDB-2130: ------------------------------------------------------------ Commit 7f00136dc098c6e7956de6843323c5affd887723 in asterixdb's branch refs/heads/master from [~mhubail] [ https://git-wip-us.apache.org/repos/asf?p=asterixdb.git;h=7f00136 ] [ASTERIXDB-2130][TX] Prevent Dropping Index Pending Txn Completion - user model changes: no - storage format changes: no - interface changes: yes Added resource id to ITransactionOperationTracker before/after txn operations. Details: - Currently, an index could be evicted/dropped while a transaction waiting for its completion (commit/rollback). This change prevents that by incrementing the reference counter of the indexes registered in the transaction. - Add test case. Change-Id: If6a938cbb5a9c3b7f5cc59505c07ae45b3425223 Reviewed-on: https://asterix-gerrit.ics.uci.edu/2132 Sonar-Qube: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Tested-by: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Contrib: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Integration-Tests: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Reviewed-by: Michael Blow <mb...@apache.org> > NPE in RecoveryManager.undo > --------------------------- > > Key: ASTERIXDB-2130 > URL: https://issues.apache.org/jira/browse/ASTERIXDB-2130 > Project: Apache AsterixDB > Issue Type: Bug > Components: TX - Transactions > Reporter: Till > Assignee: Murtadha Hubail > > RecoveryManager.undo throws an NPE, as the result of > DatasetLifecycleManager.getIndex is not checked: > {noformat} > 12:29:41 Oct 11, 2017 7:30:38 PM > org.apache.hyracks.control.cc.executor.JobExecutor notifyTaskComplete > 12:29:41 WARNING: Spurious task complete notification: > TAID:TID:ANID:ODID:2:0:1:0 Current state = ABORTED > 12:29:41 Oct 11, 2017 7:30:38 PM org.apache.asterix.app.nc.RecoveryManager > rollbackTransaction > 12:29:41 INFO: undoing loser transaction's effect > 12:29:41 Oct 11, 2017 7:30:38 PM > org.apache.asterix.transaction.management.service.transaction.TransactionManager > abortTransaction > 12:29:41 SEVERE: Could not complete rollback! System is in an inconsistent > state > 12:29:41 java.lang.IllegalStateException: Failed to undo > 12:29:41 at > org.apache.asterix.app.nc.RecoveryManager.undo(RecoveryManager.java:690) > 12:29:41 at > org.apache.asterix.app.nc.RecoveryManager.rollbackTransaction(RecoveryManager.java:630) > 12:29:41 at > org.apache.asterix.transaction.management.service.transaction.TransactionManager.abortTransaction(TransactionManager.java:65) > 12:29:41 at > org.apache.asterix.transaction.management.service.transaction.TransactionManager.completedTransaction(TransactionManager.java:132) > 12:29:41 at > org.apache.asterix.runtime.job.listener.JobEventListenerFactory$1.jobletFinish(JobEventListenerFactory.java:58) > 12:29:41 Oct 11, 2017 7:30:38 PM org.apache.asterix.app.nc.RecoveryManager > rollbackTransaction > 12:29:41 INFO: rollbacking transaction log records from 341833971 to 342015311 > 12:29:41 at > org.apache.hyracks.control.nc.Joblet.performCleanup(Joblet.java:317) > 12:29:41 at > org.apache.hyracks.control.nc.Joblet.removeTask(Joblet.java:152) > 12:29:41 at > org.apache.hyracks.control.nc.work.NotifyTaskCompleteWork.run(NotifyTaskCompleteWork.java:49) > 12:29:41 Oct 11, 2017 7:30:38 PM org.apache.asterix.app.nc.RecoveryManager > rollbackTransaction > 12:29:41 INFO: collecting loser transaction's LSNs from 341833971 to 342015311 > 12:29:41 at > org.apache.hyracks.control.common.work.WorkQueue$WorkerThread.run(WorkQueue.java:127) > 12:29:41 Caused by: java.lang.NullPointerException > 12:29:41 at > org.apache.asterix.app.nc.RecoveryManager.undo(RecoveryManager.java:666) > 12:29:41 ... 8 more > 12:29:41 Oct 11, 2017 7:30:38 PM org.apache.asterix.app.nc.RecoveryManager > rollbackTransaction > 12:29:41 INFO: undoing loser transaction's effect > 12:29:41 Oct 11, 2017 7:30:38 PM > org.apache.hyracks.control.common.work.WorkQueue$WorkerThread > auditWaitsAndBlocks > 12:29:41 WARNING: Work NotifyTaskCompleteWork:TAID:TID:ANID:ODID:2:0:3:0 > waited 1 times (~0ms), blocked 3 times (~0ms) > 12:29:41 Exception in thread "Worker:asterix_nc2" java.lang.Error: > org.apache.asterix.common.exceptions.ACIDException: Could not complete > rollback! System is in an inconsistent state > 12:29:41 at > org.apache.asterix.runtime.job.listener.JobEventListenerFactory$1.jobletFinish(JobEventListenerFactory.java:61) > 12:29:41 at > org.apache.hyracks.control.nc.Joblet.performCleanup(Joblet.java:317) > 12:29:41 at > org.apache.hyracks.control.nc.Joblet.removeTask(Joblet.java:152) > 12:29:41 at > org.apache.hyracks.control.nc.work.NotifyTaskCompleteWork.run(NotifyTaskCompleteWork.java:49) > 12:29:41 at > org.apache.hyracks.control.common.work.WorkQueue$WorkerThread.run(WorkQueue.java:127) > 12:29:41 Caused by: org.apache.asterix.common.exceptions.ACIDException: Could > not complete rollback! System is in an inconsistent state > 12:29:41 at > org.apache.asterix.transaction.management.service.transaction.TransactionManager.abortTransaction(TransactionManager.java:73) > 12:29:41 at > org.apache.asterix.transaction.management.service.transaction.TransactionManager.completedTransaction(TransactionManager.java:132) > 12:29:41 at > org.apache.asterix.runtime.job.listener.JobEventListenerFactory$1.jobletFinish(JobEventListenerFactory.java:58) > 12:29:41 ... 4 more > 12:29:41 Caused by: java.lang.IllegalStateException: Failed to undo > 12:29:41 at > org.apache.asterix.app.nc.RecoveryManager.undo(RecoveryManager.java:690) > 12:29:41 at > org.apache.asterix.app.nc.RecoveryManager.rollbackTransaction(RecoveryManager.java:630) > 12:29:41 at > org.apache.asterix.transaction.management.service.transaction.TransactionManager.abortTransaction(TransactionManager.java:65) > 12:29:41 ... 6 more > 12:29:41 Caused by: java.lang.NullPointerException > 12:29:41 at > org.apache.asterix.app.nc.RecoveryManager.undo(RecoveryManager.java:666) > 12:29:41 ... 8 more > 12:29:41 Oct 11, 2017 7:30:38 PM org.apache.asterix.app.nc.RecoveryManager > rollbackTransaction > 12:29:41 INFO: undone loser transaction's effect > 12:29:41 Oct 11, 2017 7:30:38 PM org.apache.asterix.app.nc.RecoveryManager > rollbackTransaction > 12:29:41 INFO: [RecoveryManager's rollback log count] > update/entityCommit/undo:761/0/761 > {noformat} -- This message was sent by Atlassian JIRA (v6.4.14#64029)