Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7505733
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 29, 20262026-05-29T22:00:42+00:00 2026-05-29T22:00:42+00:00

We have a custom plugin for Hudson which uploads the output of a build

  • 0

We have a custom plugin for Hudson which uploads the output of a build onto a remote machine. We have just started looking into using a Hudson slave to improve throughput of builds, but the projects which use the custom plugin are failing to deploy with FileNotFoundExceptions.

From what we can see, the plugin is being run on the master even when the build is happening on the slave. The file that is not being found does exist on the slave but not on the master.

Questions:

  1. Can plugins be run on slaves? If so, how? Is there a way to identify a plugin as being ‘serializable’? If Hudson slaves can’t run plugins, how does the SVN checkout happen?
  2. Some of the developers here think that the solution to this problem is to make the Hudson master’s workspace a network drive and let the slave use that same workspace – is this as bad an idea as it seems to me?
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-29T22:00:46+00:00Added an answer on May 29, 2026 at 10:00 pm

    Firstly, go Jenkins! 😉

    Secondly, you are correct — the code is being executed on the master. This is the default behaviour of a Hudson/Jenkins plugin.

    When you want to run code on a remote node, you need to get a reference to that node’s VirtualChannel, e.g. via the Launcher that’s probably passed into your plugin’s main method.

    The code to be run on the remote node should be encapsulated in a Callable — this is the part that needs to be serialisable, as Jenkins will automagically serialise it, pass it to the node via its channel, execute it and return the result.

    This also hides the distinction between master and slave — even if the build is actually running on the master, the “callable” code will transparently run on the correct machine.

    For example:

    @Override
    public boolean perform(AbstractBuild<?, ?> build, Launcher launcher,
                           BuildListener listener) {
        // This method is being run on the master...
    
        // Define what should be run on the slave for this build
        Callable<String, IOException> task = new Callable<String, IOException>() {
            public String call() throws IOException {
                // This code will run on the build slave
                return InetAddress.getLocalHost().getHostName();
            }
        };
    
        // Get a "channel" to the build machine and run the task there
        String hostname = launcher.getChannel().call(task);
    
        // Much success...
    }
    

    See also FileCallable, and check out the source code of other Jenkins plugins with similar functionality.

    I would recommend making your plugin work properly rather than using the network share solution.. 🙂

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a custom jQuery plugin which binds a change event to a form
I have a custom category (disciplines) in my method plugin which I want to
I have a custom WordPress plugin that works fine on my local dev machine,
I am using jquery validation plugin for form validation. I have added a custom
i have custom cell with 2 buttons(the function of these buttons is just to
I have a custom plugin, with a constructor like this: (function($){ $.fn.extend({ myplugin: function(options)
I have a custom WordPress plugin I made and it doesn't seem to work
I have a custom plugin that was made for powerpoint and has a functionality
I have a CKEditor custom plugin I'm trying to write, but need some help
I have parent pom which configures certain plugins <pluginManagement> </plugins> <plugin> <artifactId>gmaven-plugin</artifactId> ... </plugin>

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.