asterixdb-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ASTERIXDB-2130) NPE in RecoveryManager.undo
Date Sat, 04 Nov 2017 20:55:00 GMT

    [ https://issues.apache.org/jira/browse/ASTERIXDB-2130?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16239223#comment-16239223
] 

ASF subversion and git services commented on ASTERIXDB-2130:
------------------------------------------------------------

Commit 18dee962950b0783e0dd46edededdd4bddb87925 in asterixdb's branch refs/heads/master from
[~mhubail]
[ https://git-wip-us.apache.org/repos/asf?p=asterixdb.git;h=18dee96 ]

[ASTERIXDB-2130][TX] Avoid Evicting Datasets Pending Txn Completion

- user model changes: no
- storage format changes: no
- interface changes: yes
  Added ITransactionOperationTracker for txn specific op tracker.
  Added complete to ITransactionManager to release all resources
  held by the txn upon its completion.

Details:
Currently, a dataset could be evicted/dropped while a transaction
waiting for its completion (commit/rollback). This change prevents
that by incrementing the reference counter of the datasets of all
indexes registered in the transaction.

Change-Id: I82b614a938f24f3199fd327502ed422ce9d3b9b7
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2122
Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Michael Blow <mblow@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
>            Priority: Major
>
> 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)

Mime
View raw message