Failed dispatching to node x.x.x.x: java.lang.NullPointerException: Cannot get property 'meta' on null object

1,084 views
Skip to first unread message

Prasad Mediboina

unread,
Apr 6, 2018, 2:05:42 PM4/6/18
to rundeck-discuss
Failed dispatching to node x.x.x.x: java.lang.NullPointerException: Cannot get property 'meta' on null object

Getting this error, when running a job.


Mine is a new setup. 

The private key is under /var/lib/rundeck/keys, and ssh is working fine.


Can you throw some light?

Thanks

Alex Honor

unread,
Apr 6, 2018, 2:07:11 PM4/6/18
to rundeck...@googlegroups.com
Hi Prasad,

Is there a stacktrace in the service.log that corresponds to this error?

Thanks

--
You received this message because you are subscribed to the Google Groups "rundeck-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rundeck-discuss+unsubscribe@googlegroups.com.
To post to this group, send email to rundeck-discuss@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rundeck-discuss/eac9d18e-6f63-4343-86ae-014289d5e7a9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--

Alex Honor

[Rundeck | a...@rundeck.com ]

Prasad Mediboina

unread,
Apr 6, 2018, 3:03:47 PM4/6/18
to rundeck-discuss
Hi,

Here is the service log output. There is stack trace, but I do not know, if it is related. I am new but have few questions; does it use Java to push jobs to nodes fo execution (Similar to Ansible using python)?
How do I test the connectivity from rundeck host to any node? They say, there is a dispatch command, but I could not fogure out a way to find or use it.

Thank you for your help.



ERROR ExecutionUtilService: Execution failed: 57 in project device42_jamf: [Workflow result: , step failures: {1=Dispatch failed on 1 nodes: [1.1.1.2: Unknown: java.lang.NullPointerException: Cannot get property 'meta' on null object]}, Node failures: {1.1.1.2=[Unknown: java.lang.NullPointerException: Cannot get property 'meta' on null object], 1.1.1.1=[]}, status: failed]

INFO  ScheduledExecutionService: scheduling temp job: TEMP:admin:58

ERROR ExecutionUtilService: Execution failed: 58 in project Simple_project: [Workflow result: , step failures: {1=Dispatch failed on 1 nodes: [1.1.1.2: Unknown: java.lang.NullPointerException: Cannot get property 'meta' on null object]}, Node failures: {1.1.1.2=[Unknown: java.lang.NullPointerException: Cannot get property 'meta' on null object]}, status: failed]

INFO  ScheduledExecutionService: scheduling temp job: TEMP:admin:59

ERROR ExecutionUtilService: Execution failed: 59 in project Simple_project: [Workflow result: , step failures: {1=Dispatch failed on 1 nodes: [1.1.1.2: Unknown: java.lang.NullPointerException: Cannot get property 'meta' on null object]}, Node failures: {1.1.1.2=[Unknown: java.lang.NullPointerException: Cannot get property 'meta' on null object]}, status: failed]

ERROR GrailsExceptionResolver: Exception occurred when processing request: [POST] /project/Simple_project/job/save

Workflow is empty. Stacktrace follows:

java.lang.Exception: Workflow is empty

at rundeck.services.ExecutionUtilService.createExecutionItemForWorkflow(ExecutionUtilService.groovy:139)

at rundeck.services.ScheduledExecutionService.validateWorkflowStrategyPlugin(ScheduledExecutionService.groovy:3479)

at rundeck.services.ScheduledExecutionService._dovalidate(ScheduledExecutionService.groovy:3283)

at rundeck.services.ScheduledExecutionService._dosave(ScheduledExecutionService.groovy:2945)

at rundeck.controllers.ScheduledExecutionController$_save_closure70.doCall(ScheduledExecutionController.groovy:2442)

at org.grails.plugins.web.rest.api.ControllersRestApi.withForm(ControllersRestApi.groovy:53)

at rundeck.controllers.ScheduledExecutionController.save(ScheduledExecutionController.groovy:2436)

at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:696)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1515)

at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198)

at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1486)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1486)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1486)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1486)

at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:519)

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:138)

at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:582)

at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:213)

at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1097)

at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:448)

at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:175)

at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1031)

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:136)

at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:261)

at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:101)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1486)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1486)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1486)

at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:97)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1486)

at com.dtolabs.rundeck.server.filters.AuthFilter.doFilter(AuthFilter.java:74)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1486)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1486)

at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:519)

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:138)

at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:529)

at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:213)

at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1097)

at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:448)

at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:175)

at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1031)

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:136)

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)

at org.eclipse.jetty.server.Server.handle(Server.java:446)

at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:271)

at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:246)

at org.eclipse.jetty.io.AbstractConnection$ReadCallback.run(AbstractConnection.java:358)

at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:601)

at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:532)

at java.lang.Thread.run(Thread.java:748)

ERROR ExecutionUtilService: Execution failed: 60 in project Simple_project: [Workflow result: , step failures: {1=Dispatch failed on 1 nodes: [1.1.1.2: Unknown: java.lang.NullPointerException: Cannot get property 'meta' on null object]}, Node failures: {1.1.1.2=[Unknown: java.lang.NullPointerException: Cannot get property 'meta' on null object]}, status: failed]

root@xxx:~# 

edu...@rundeck.com

unread,
Apr 11, 2018, 12:11:08 PM4/11/18
to rundeck-discuss
Hi Prasad,

Indeed, Rundeck is a Java-based webapp but Rundeck's distributed command execution is plugin based, thus allowing you to use multiple protocols and languages to communicate to your nodes. You can refer to our plugin user guide for details about our bundled plugins and online repository.

By default, rundeck uses SSH to remotely execute commands and scripts to Unix family Nodes.

Do you use a default key for all nodes in your project? Do you store the keys in the Rundeck keystore? You might try using the SSH CLI to simulate the same remote command Rundeck’s SSH plugin will do like so:

rundeck$ ssh -i /path/to/ssh/key user@hostname test


See this page for more doc about the ssh plugin: http://rundeck.org/docs/plugins-user-guide/ssh-plugins.html


Assuming the key and credentials are correctly defined in Rundeck, you can do a simple test for connectivity to the nodes by executing an ad-hoc command. By selecting a project via the WebGUI, you can issue an ad-hoc command using the "command" tab. There, you can use a node filter to specify the target nodes, and input the command you want to send to each node, example:





This can also be achieved via Rundeck CLI, by running the 'rd' command with this syntax on your rundeck server:


rundeck$ rd adhoc -F [node_filter] -p [project] COMMAND

That being said, the review of the errors from service log you provided results inconclusive, and unable to find the cause from just the logs.

Can you share your job definition, and provide an overall description of your current setup, such as Rundeck version, Node Executor/File Copier used, node resource detail, steps to reproduce, etc.?

That information will help us to reproduce and verify the underlying behaviour causing this NullPointerException.


Hope it helps

Eduardo Carrasco

Prasad Mediboina

unread,
Apr 11, 2018, 12:36:40 PM4/11/18
to rundeck...@googlegroups.com
Hi,

Thank you for the reply. It was the location of the keys / keystore that was causing the issue. Once I fixed it, it started working. The error was a bit misleading; it would have told something like "key not found", than throwing a java exception.

Regards

--
You received this message because you are subscribed to a topic in the Google Groups "rundeck-discuss" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/rundeck-discuss/suY4wGi2eNs/unsubscribe.
To unsubscribe from this group and all its topics, send an email to rundeck-discuss+unsubscribe@googlegroups.com.

To post to this group, send email to rundeck-discuss@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages