aurora-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kevin Sweeney (JIRA)" <j...@apache.org>
Subject [jira] [Created] (AURORA-801) deadlock in scheduler startup
Date Tue, 07 Oct 2014 01:33:34 GMT
Kevin Sweeney created AURORA-801:
------------------------------------

             Summary: deadlock in scheduler startup
                 Key: AURORA-801
                 URL: https://issues.apache.org/jira/browse/AURORA-801
             Project: Aurora
          Issue Type: Bug
          Components: Scheduler
            Reporter: Kevin Sweeney
            Priority: Blocker


The recently-added update code adds a deadlock to the scheduler whenever there are concurrent
{{TasksDeleted}} and {{TaskStateChange}} events on the EventBus.

Relevant bits from /threads
{noformat}
Name: AsyncProcessor-0
State: BLOCKED
Daemon: true
ID: 2461
    org.apache.aurora.scheduler.updater.JobUpdateEventSubscriber.tasksDeleted(JobUpdateEventSubscriber.java:64)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:606)
    com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
    com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
    com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
    com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
    com.google.common.eventbus.EventBus.post(EventBus.java:275)
    org.apache.aurora.scheduler.events.PubsubEventModule$2.post(PubsubEventModule.java:68)
    org.apache.aurora.scheduler.state.StateManagerImpl.updateTaskAndExternalState(StateManagerImpl.java:443)
    org.apache.aurora.scheduler.state.StateManagerImpl.access$100(StateManagerImpl.java:80)
    org.apache.aurora.scheduler.state.StateManagerImpl$8.execute(StateManagerImpl.java:460)
    org.apache.aurora.scheduler.storage.Storage$MutateWork$NoResult.apply(Storage.java:132)
    org.apache.aurora.scheduler.storage.Storage$MutateWork$NoResult$Quiet.apply(Storage.java:149)
    org.apache.aurora.scheduler.storage.log.LogStorage$7.apply(LogStorage.java:559)
    org.apache.aurora.scheduler.storage.log.LogStorage$7.apply(LogStorage.java:556)
    org.apache.aurora.scheduler.storage.mem.MemStorage.doWork(MemStorage.java:175)
    org.apache.aurora.scheduler.storage.mem.MemStorage.access$400(MemStorage.java:59)
    org.apache.aurora.scheduler.storage.mem.MemStorage$4.apply(MemStorage.java:200)
    org.apache.aurora.scheduler.storage.mem.MemStorage$4.apply(MemStorage.java:197)
    org.apache.aurora.scheduler.storage.db.DbStorage.write(DbStorage.java:150)
    org.apache.aurora.scheduler.storage.db.DbStorage$$EnhancerByGuice$$51136dc.CGLIB$write$0(<generated>)
    org.apache.aurora.scheduler.storage.db.DbStorage$$EnhancerByGuice$$51136dc$$FastClassByGuice$$8e80cfa0.invoke(<generated>)
    com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)
    com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
    org.mybatis.guice.transactional.TransactionalMethodInterceptor.invoke(TransactionalMethodInterceptor.java:101)
    com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
    com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:52)
    org.apache.aurora.scheduler.storage.db.DbStorage$$EnhancerByGuice$$51136dc.write(<generated>)
    org.apache.aurora.scheduler.storage.mem.MemStorage.write(MemStorage.java:197)
    org.apache.aurora.scheduler.storage.log.LogStorage.write(LogStorage.java:556)
    org.apache.aurora.scheduler.storage.CallOrderEnforcingStorage.write(CallOrderEnforcingStorage.java:130)
    org.apache.aurora.scheduler.state.StateManagerImpl.deleteTasks(StateManagerImpl.java:451)
    org.apache.aurora.scheduler.async.HistoryPruner.deleteTasks(HistoryPruner.java:126)
    org.apache.aurora.scheduler.async.HistoryPruner.access$500(HistoryPruner.java:51)
    org.apache.aurora.scheduler.async.HistoryPruner$3.run(HistoryPruner.java:164)
    java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    java.util.concurrent.FutureTask.run(FutureTask.java:262)
    java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
    java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    java.lang.Thread.run(Thread.java:745)

Name: TaskScheduler-0
State: BLOCKED
Daemon: true
ID: 2460
    org.apache.aurora.scheduler.storage.log.LogStorage.write(LogStorage.java:544)
    org.apache.aurora.scheduler.storage.CallOrderEnforcingStorage.write(CallOrderEnforcingStorage.java:130)
    org.apache.aurora.scheduler.async.TaskScheduler$TaskSchedulerImpl.schedule(TaskScheduler.java:182)
    org.apache.aurora.scheduler.async.TaskScheduler$TaskSchedulerImpl$$EnhancerByGuice$$b669120f.CGLIB$schedule$0(<generated>)
    org.apache.aurora.scheduler.async.TaskScheduler$TaskSchedulerImpl$$EnhancerByGuice$$b669120f$$FastClassByGuice$$2204e025.invoke(<generated>)
    com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)
    com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
    com.twitter.common.inject.TimedInterceptor.invoke(TimedInterceptor.java:87)
    com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:72)
    com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:52)
    org.apache.aurora.scheduler.async.TaskScheduler$TaskSchedulerImpl$$EnhancerByGuice$$b669120f.schedule(<generated>)
    org.apache.aurora.scheduler.async.TaskGroups$1.schedule(TaskGroups.java:122)
    org.apache.aurora.scheduler.async.TaskGroups$2.run(TaskGroups.java:144)
    java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    java.util.concurrent.FutureTask.run(FutureTask.java:262)
    java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
    java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    java.lang.Thread.run(Thread.java:745)

Name: Lifecycle-0
State: BLOCKED
Daemon: true
ID: 2462
    org.apache.aurora.scheduler.storage.log.LogStorage.write(LogStorage.java:544)
    org.apache.aurora.scheduler.storage.CallOrderEnforcingStorage.write(CallOrderEnforcingStorage.java:130)
    org.apache.aurora.scheduler.updater.JobUpdateControllerImpl.systemResume(JobUpdateControllerImpl.java:195)
    org.apache.aurora.scheduler.updater.JobUpdateEventSubscriber.schedulerActive(JobUpdateEventSubscriber.java:83)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:606)
    com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
    com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
    com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
    com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
    com.google.common.eventbus.EventBus.post(EventBus.java:275)
    org.apache.aurora.scheduler.events.PubsubEventModule$2.post(PubsubEventModule.java:68)
    org.apache.aurora.scheduler.SchedulerLifecycle$7$2.run(SchedulerLifecycle.java:336)
    java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    java.util.concurrent.FutureTask.run(FutureTask.java:262)
    java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
    java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    java.lang.Thread.run(Thread.java:745)

{noformat}



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

Mime
View raw message