Uploaded image for project: 'Bamboo Data Center'
  1. Bamboo Data Center
  2. BAM-18638

Quiet Period Validation

    XMLWordPrintable

Details

    • 2
    • 1
    • Our product teams collect and evaluate feedback from a number of different sources. To learn more about how we use customer feedback in the planning process, check out our new feature policy.

    Description

      Problem Definition

      Currently, we don't have any validation in configuring Quiet Period time for repository change detection. This has a potential risk for the whole Bamboo application because setting a very high Quiet Period time even for a single repository of a plan (say 24 hrs) could result in threads getting in a sleep state and just doing nothing. Since all the threads are in a sleep state, this impacts the other processes.

      See below example for more reference:

      A customer has a Bitbucket repository trigger set on one plan. And the repository linked to this plan has a quiet period setup as 28800 seconds.
      This results in all the threads in a sleeping state(as shown below) and thus impacting other processes in the Bamboo (in this case scheduled trigger build of the other plans were not triggered because the threads were already occupied).

      All the four threads are sleeping:

      "10-BAM::PlanExec:pool-17-thread-1" daemon prio=1 tid=0x00000000000000be nid=0 sleeping 
      java.lang.Thread.State: TIMED_WAITING (sleeping)
      at java.lang.Thread.sleep(Native Method)
      at com.atlassian.bamboo.v2.trigger.DefaultChangeDetectionManager.collectChangesAfterQuietPeriod(DefaultChangeDetectionManager.java:450)
      
      "10-BAM::PlanExec:pool-17-thread-2" daemon prio=1 tid=0x00000000000000bf nid=0 sleeping 
      java.lang.Thread.State: TIMED_WAITING (sleeping)
      at java.lang.Thread.sleep(Native Method)
      at com.atlassian.bamboo.v2.trigger.DefaultChangeDetectionManager.collectChangesAfterQuietPeriod(DefaultChangeDetectionManager.java:450)
      at com.atlassian.bamboo.v2.trigger.DefaultChangeDetectionManager.lambda$createBuildRepositoryChanges$0(DefaultChangeDetectionManager.java:360)
      
      "10-BAM::PlanExec:pool-17-thread-3" daemon prio=1 tid=0x00000000000000c1 nid=0 sleeping 
      java.lang.Thread.State: TIMED_WAITING (sleeping)
      at java.lang.Thread.sleep(Native Method)
      at com.atlassian.bamboo.v2.trigger.DefaultChangeDetectionManager.collectChangesAfterQuietPeriod(DefaultChangeDetectionManager.java:450)
      
      "10-BAM::PlanExec:pool-17-thread-4" daemon prio=1 tid=0x00000000000000c0 nid=0 sleeping 
      java.lang.Thread.State: TIMED_WAITING (sleeping)
      at java.lang.Thread.sleep(Native Method)
      at com.atlassian.bamboo.v2.trigger.DefaultChangeDetectionManager.collectChangesAfterQuietPeriod(DefaultChangeDetectionManager.java:450)
      

      Time waiting is 1440 minutes ~ 24 hrs with 4 more tries remaining.

      2017-08-23 05:15:32,808 INFO [10-BAM::PlanExec:pool-17-thread-2] [DefaultChangeDetectionManager] : Found 18 changes for plan 'DD-DDUI427', waiting 1440 minutes to see if there are any more... (4 retries remaining)
      2017-08-23 05:15:32,828 INFO [10-BAM::PlanExec:pool-17-thread-1] [DefaultChangeDetectionManager] : Found 18 changes for plan 'DD-DDUI425', waiting 1440 minutes to see if there are any more... (4 retries remaining)
      

      Suggested Solution

      We should have a validation in UI itself which will restrict the value used for the Quiet Period. (say value more than 100 seconds not allowed)

      Workaround

      Identify the repository having such a high quiet period time and decrease the time.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              rsaxena@atlassian.com Robhit Saxena (Inactive)
              Votes:
              1 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated: