[ https://issues.apache.org/jira/browse/IGNITE-5773?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dmitriy Govorukhin reassigned IGNITE-5773: ------------------------------------------ Assignee: Dmitriy Govorukhin (was: Dmitriy Pavlov) > Scheduler throwing NullPointerException > --------------------------------------- > > Key: IGNITE-5773 > URL: https://issues.apache.org/jira/browse/IGNITE-5773 > Project: Ignite > Issue Type: Bug > Affects Versions: 2.0 > Environment: Oracle Hotspot 1.8_121 > Ignite 2.0.0 > Springmix 4.3.7 > Reporter: Mikhail Cherkasov > Assignee: Dmitriy Govorukhin > Priority: Critical > Fix For: 2.2 > > > NPE occurs during deploying a service as cluster singleton. Ignite scheduler > is used as a cron for this purpose, however NPE occurs for ignite version > 2.0.0. > Below is the log information for the exception: > {noformat} > 2017-06-06 13:21:08 ERROR GridServiceProcessor:495 - Failed to initialize > service (service will not be deployed): AVxezSbWNphcxa1CYjfP > java.lang.NullPointerException > at > org.apache.ignite.internal.processors.schedule.ScheduleFutureImpl.schedule(ScheduleFutureImpl.java:299) > at > org.apache.ignite.internal.processors.schedule.IgniteScheduleProcessor.schedule(IgniteScheduleProcessor.java:56) > at > org.apache.ignite.internal.IgniteSchedulerImpl.scheduleLocal(IgniteSchedulerImpl.java:109) > at > com.mypackage.state.services.MyService.startScheduler(MyService.scala:172) > at com.mypackage.state.services.MyService.init(MyService.scala:149) > at > org.apache.ignite.internal.processors.service.GridServiceProcessor.redeploy(GridServiceProcessor.java:1097) > at > org.apache.ignite.internal.processors.service.GridServiceProcessor.processAssignment(GridServiceProcessor.java:1698) > at > org.apache.ignite.internal.processors.service.GridServiceProcessor.onSystemCacheUpdated(GridServiceProcessor.java:1372) > at > org.apache.ignite.internal.processors.service.GridServiceProcessor.access$300(GridServiceProcessor.java:117) > at > org.apache.ignite.internal.processors.service.GridServiceProcessor$ServiceEntriesListener$1.run0(GridServiceProcessor.java:1339) > at > org.apache.ignite.internal.processors.service.GridServiceProcessor$DepRunnable.run(GridServiceProcessor.java:1753) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > 2017-06-06 13:21:08:868 ERROR application - Unable to initialise GRID: > class org.apache.ignite.IgniteException: null > at > org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:949) > at > org.apache.ignite.internal.IgniteServicesImpl.deployClusterSingleton(IgniteServicesImpl.java:122) > at > com.mypackage.state.mypackage1.InitialiseGrid$$anonfun$apply$1.apply(InitialiseGrid.scala:22) > at > com.mypackage.state.mypackage1.InitialiseGrid$$anonfun$apply$1.apply(InitialiseGrid.scala:19) > at > scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59) > at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48) > at > com.mypackage.state.mypackage1.InitialiseGrid$.apply(InitialiseGrid.scala:19) > at com.mypackage.state.Application$.main(Application.scala:54) > at com.mypackage.state.Application.main(Application.scala) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at sbt.Run.invokeMain(Run.scala:67) > at sbt.Run.run0(Run.scala:61) > at sbt.Run.sbt$Run$$execute$1(Run.scala:51) > at sbt.Run$$anonfun$run$1.apply$mcV$sp(Run.scala:55) > at sbt.Run$$anonfun$run$1.apply(Run.scala:55) > at sbt.Run$$anonfun$run$1.apply(Run.scala:55) > at sbt.Logger$$anon$4.apply(Logger.scala:85) > at sbt.TrapExit$App.run(TrapExit.scala:248) > at java.lang.Thread.run(Thread.java:745) > Caused by: class org.apache.ignite.IgniteCheckedException: null > at > org.apache.ignite.internal.util.IgniteUtils.cast(IgniteUtils.java:7242) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.resolve(GridFutureAdapter.java:258) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:189) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:139) > at > org.apache.ignite.internal.AsyncSupportAdapter.saveOrGet(AsyncSupportAdapter.java:112) > at > org.apache.ignite.internal.IgniteServicesImpl.deployClusterSingleton(IgniteServicesImpl.java:119) > ... 20 more > Caused by: java.lang.NullPointerException > at > org.apache.ignite.internal.processors.schedule.ScheduleFutureImpl.schedule(ScheduleFutureImpl.java:299) > at > org.apache.ignite.internal.processors.schedule.IgniteScheduleProcessor.schedule(IgniteScheduleProcessor.java:56) > at > org.apache.ignite.internal.IgniteSchedulerImpl.scheduleLocal(IgniteSchedulerImpl.java:109) > at > com.mypackage.state.services.MyService.startScheduler(MyService.scala:172) > at com.mypackage.state.services.MyService.init(MyService.scala:149) > at > org.apache.ignite.internal.processors.service.GridServiceProcessor.redeploy(GridServiceProcessor.java:1097) > at > org.apache.ignite.internal.processors.service.GridServiceProcessor.processAssignment(GridServiceProcessor.java:1698) > at > org.apache.ignite.internal.processors.service.GridServiceProcessor.onSystemCacheUpdated(GridServiceProcessor.java:1372) > at > org.apache.ignite.internal.processors.service.GridServiceProcessor.access$300(GridServiceProcessor.java:117) > at > org.apache.ignite.internal.processors.service.GridServiceProcessor$ServiceEntriesListener$1.run0(GridServiceProcessor.java:1339) > at > org.apache.ignite.internal.processors.service.GridServiceProcessor$DepRunnable.run(GridServiceProcessor.java:1753) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > ... 1 more > {noformat} > This exception occurs right on start up when try to add a services to the > cron. > The scheduler from example us used: > https://apacheignite.readme.io/docs/cron-based-scheduling . > Below is the example, similar to the issue raised by another user, link for > the reference > (http://apache-ignite-users.70518.x6.nabble.com/Fwd-NPE-at-ScheduleFutureImpl-line-177-td13435.html > {code} > private def startScheduler() = { > ignite.scheduler.scheduleLocal(new Runnable() { > override def run() = > try { > Logger.info("Tick tock") > /** Do Stuff! */ > } > catch { case e:Exception => Logger.error("I poked, I failed!", e) } > }, "* * * * *")} > {code} > I think the scheduler processor does not match the expected processor > interface. This results to a bad state. > IgniteKernal is responsible to start each processors : > org.apache.ignite.internal.IgniteKernal.startProcessor(GridProcessor): > proc.start(cfg.isActiveOnStart()); > But the > org.apache.ignite.internal.processors.schedule.IgniteScheduleProcessor does > not implement it (missing boolean parameter) : > {code} > /** {@inheritDoc} */ > @Override public void start() throws IgniteCheckedException { > sched = new Scheduler(); > sched.start(); > } > {code} > That's why the default (empty) impl is used. And the "sched" attribute stay > null. -- This message was sent by Atlassian JIRA (v6.4.14#64029)