Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-12912

URLTtrigger does not poll on jobs which are tied to disconnected slaves

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Component/s: urltrigger-plugin
    • Labels:
      None
    • Environment:
      Jenkins 1.451
      URLTrigger Plugin 0.10, 0.14

      Description

      Since 0.10, URLTtrigger does not poll on jobs which are tied to disconnected slaves even if there are available executors on master.

      URLTrigger Plugin 0.9 makes master poll the URL even if the jobs are tied to slaves.
      If there are changes in URL, a slave that is tied to the job wakes up and runs the job.
      URLTrigger 0.9 says that polling has been done on slaves, but master polles.

      URLTrigger Log (0.14, job which is tied to disconnected slaves)
      Polling for the job aaaaaaaaaa
      Searching a node to run the polling for the label 'llllllll'.
      Can't find any complete active node for the polling action. Maybe slaves are not yet active at this time or the number of executor of the master is 0. Checking again in next polling schedule.
      
      URLTrigger Log (0.14, job which is not tied to any slaves)
      Polling for the job bbbbbbbbbb
      Polling on master.
      Polling started on Feb 28, 2012 10:22:42 AM
      Invoking the url: 
       http://aaaaaaaaaaa.invalid/bbbbbbbbbbbbbb
      Inspecting the content
      
      Polling complete. Took 0.12 sec.
      No changes.
      
      URLTrigger Log (0.9, job which is tied to disconnected slaves)
      Polling started on Feb 28, 2012 10:51:04 AM
      Searching a node to run the polling for the label 'llllllll'.
      Invoking the url: 
       http://aaaaaaaaaaa.invalid/bbbbbbbbbbbbbb
      Inspecting the content
      Polling complete. Took 0.14 sec
      No changes.
      

      Workarounds:

      • Downgrade URLTrigger Plugin to 0.9
      • Do not tie jobs which uses Use URLTrigger
        • Create a job that uses URLTrigger and do not tie the job to any slaves.
        • Configure the job to build other projects in its post-build actions.

        Activity

        Hide
        gbois Gregory Boissinot added a comment -

        If I understand your use case: If slave are disconnected, master have available executors and job are tied to a specific label, you want to monitor on master?

        Show
        gbois Gregory Boissinot added a comment - If I understand your use case: If slave are disconnected, master have available executors and job are tied to a specific label, you want to monitor on master?
        Hide
        ohtake_tomohiro OHTAKE Tomohiro added a comment -

        Yes, that is the behavior of 0.9 and what I would like.
        Since bringing slaves up takes much cost, I would like slaves to be powered off while there are no jobs.

        Show
        ohtake_tomohiro OHTAKE Tomohiro added a comment - Yes, that is the behavior of 0.9 and what I would like. Since bringing slaves up takes much cost, I would like slaves to be powered off while there are no jobs.
        Hide
        gbois Gregory Boissinot added a comment -

        The current behavior is to process polling on the target execution node (master or a slave).
        In your use case, you need to have to ability to poll always on master.

        Does it suits you if I add a check-box 'Poll on master' in the job configuration?

        Show
        gbois Gregory Boissinot added a comment - The current behavior is to process polling on the target execution node (master or a slave). In your use case, you need to have to ability to poll always on master. Does it suits you if I add a check-box 'Poll on master' in the job configuration?
        Hide
        ohtake_tomohiro OHTAKE Tomohiro added a comment -

        It is sufficient for me, but I think "[checkbox] Poll on other node [textbox]" would be more generic. Someone would like to poll on 'remote1-small-instance' and tie to 'remote2-large-instance'.

        Show
        ohtake_tomohiro OHTAKE Tomohiro added a comment - It is sufficient for me, but I think " [checkbox] Poll on other node [textbox] " would be more generic. Someone would like to poll on 'remote1-small-instance' and tie to 'remote2-large-instance'.
        Hide
        scm_issue_link SCM/JIRA link daemon added a comment -

        Code changed in jenkins
        User: Gregory Boissinot
        Path:
        src/main/java/org/jenkinsci/lib/xtrigger/AbstractTrigger.java
        http://jenkins-ci.org/commit/xtrigger-lib/092bff99c4861ae91949a15e85a1adfd1fc4a238
        Log:
        Fix JENKINS-12912

        Show
        scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Gregory Boissinot Path: src/main/java/org/jenkinsci/lib/xtrigger/AbstractTrigger.java http://jenkins-ci.org/commit/xtrigger-lib/092bff99c4861ae91949a15e85a1adfd1fc4a238 Log: Fix JENKINS-12912
        Hide
        scm_issue_link SCM/JIRA link daemon added a comment -

        Code changed in jenkins
        User: Gregory Boissinot
        Path:
        pom.xml
        src/main/java/org/jenkinsci/plugins/urltrigger/URLTrigger.java
        src/main/resources/org/jenkinsci/plugins/urltrigger/URLTrigger/config.jelly
        src/test/java/org/jenkinsci/plugins/urltrigger/URLTriggerTest.java
        http://jenkins-ci.org/commit/urltrigger-plugin/c39c8880172d178842074fee2d0d47c3610e50bf
        Log:
        Fix JENKINS-12912

        Show
        scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Gregory Boissinot Path: pom.xml src/main/java/org/jenkinsci/plugins/urltrigger/URLTrigger.java src/main/resources/org/jenkinsci/plugins/urltrigger/URLTrigger/config.jelly src/test/java/org/jenkinsci/plugins/urltrigger/URLTriggerTest.java http://jenkins-ci.org/commit/urltrigger-plugin/c39c8880172d178842074fee2d0d47c3610e50bf Log: Fix JENKINS-12912
        Hide
        scm_issue_link SCM/JIRA link daemon added a comment -

        Code changed in jenkins
        User: Gregory Boissinot
        Path:
        pom.xml
        http://jenkins-ci.org/commit/urltrigger-plugin/1f783b6f5f60c54e2ae01328504dc79035c69dfd
        Log:
        Fix JENKINS-12912

        Show
        scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Gregory Boissinot Path: pom.xml http://jenkins-ci.org/commit/urltrigger-plugin/1f783b6f5f60c54e2ae01328504dc79035c69dfd Log: Fix JENKINS-12912
        Hide
        gbois Gregory Boissinot added a comment -

        Please try urlttrigger 0.15 if it suits you
        Thanks

        Show
        gbois Gregory Boissinot added a comment - Please try urlttrigger 0.15 if it suits you Thanks
        Hide
        ohtake_tomohiro OHTAKE Tomohiro added a comment -

        0.15 suites my use case very much, thank you.

        But I found a strange behavior.
        Even if I specify restriction for polling node on disconnected slave, polling occured on master.
        It seems reasonable to me that specifing restriction should restrict node to poll.
        If there is no restiriction, AbstractTrigger L368 falls back to master, quite reasonable.
        Even if there is restriction, AbstractTrigger L295 also falls back to master, not reasonable to me.

        I think deleting 4 lines between AbstractTrigger L293 and AbstractTrigger L296 will resolve it.

        Show
        ohtake_tomohiro OHTAKE Tomohiro added a comment - 0.15 suites my use case very much, thank you. But I found a strange behavior. Even if I specify restriction for polling node on disconnected slave, polling occured on master. It seems reasonable to me that specifing restriction should restrict node to poll. If there is no restiriction, AbstractTrigger L368 falls back to master, quite reasonable. Even if there is restriction, AbstractTrigger L295 also falls back to master, not reasonable to me. I think deleting 4 lines between AbstractTrigger L293 and AbstractTrigger L296 will resolve it.

          People

          • Assignee:
            gbois Gregory Boissinot
            Reporter:
            ohtake_tomohiro OHTAKE Tomohiro
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: