Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-5773

Scheduler throwing NullPointerException

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Duplicate
    • 2.0
    • 2.3
    • None
    • None
    • Oracle Hotspot 1.8_121
      Ignite 2.0.0
      Springmix 4.3.7

    Description

      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:

      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
      

      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

      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) }
         }, "* * * * *")}  
      

      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) :

          /** {@inheritDoc} */
          @Override public void start() throws IgniteCheckedException {
              sched = new Scheduler();
              sched.start();
          }
      

      That's why the default (empty) impl is used. And the "sched" attribute stay
      null.

      Attachments

        Activity

          People

            ilantukh Ilya Lantukh
            mcherkasov Mikhail Cherkasov
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: