
<!DOCTYPE html>

<html lang="en">
<meta charset="utf-8">
<meta name="google" value="notranslate">
<title>
  
      Infra Failure
    
    -
    infra-continuous-precise-32 2d8d62f6be545b10
</title>
<link rel="stylesheet" href="/static/buildbot/css/default.css" type="text/css">
<link rel="stylesheet" href="/static/common/third_party/css/jquery-ui.min.css" type="text/css">
<link rel="stylesheet" href="/static/common/third_party/css/vis.min.css" type="text/css">
<link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="LUCI" />
<script src="/static/common/third_party/js/moment-with-locales.min.js"></script>
<script src="/static/common/third_party/js/moment-timezone-with-data-2012-2022.min.js"></script>
<script src="/static/common/js/time.js"></script>
<script src="/static/common/third_party/js/jquery.min.js"></script>
<script src="/static/common/third_party/js/jquery-ui.min.js"></script>
<script src="/static/common/third_party/js/vis-custom.min.js"></script>

<link id="favicon" rel="shortcut icon" type="image/png" href="/static/common/favicon/purple-32.png">


<script src="/static/common/js/build.js"></script>
<link rel="stylesheet" href="/static/common/css/tabs.css" type="text/css">



<body class="interface">
  <header>
    <div>
      <a href="/" aria-label="Home page">Home</a> |
      <a href="/search" aria-label="Search page">Search</a>
    </div>
    <div>
      
        <a href="http://fake.example.com/login?dest=%2Ffoobar" alt="Login">Login</a>
      
    </div>
  </header>
  <hr>
  
  <div class="content">
    <h1>
    
      Builder <a href="/p/infra/builders/estaab-infra-waterfall-test/infra-continuous-precise-32" aria-label="buildbucket builder infra-continuous-precise-32 on bucket estaab-infra-waterfall-test">infra-continuous-precise-32</a>
    
    Build <a>2d8d62f6be545b10</a>
    
      
        <img src="/static/common/logos/ubuntu.svg" alt="Canonical Ubuntu"
             width="25px">
      
      
    
    </h1>

    <div id="tabs" style="display: none;">
      <ul>
        <li><a href="#results-tab">Results</a></li>
        <li><a href="#properties-tab">Properties</a></li>
        <li><a href="#changes-tab">Changes</a></li>
        
      </ul>
      <div id="results-tab">
  <div id="results">
    <h2>Results:</h2>
    
      <p class="result status-InfraFailure">
      <span class="step-text">Task timed out </span>
      
      </p>
     

    
    

    <h2>Trigger Info:</h2>

    <table class="info" width="100%">
    
      <tr><td class="left">Project</td><td>infra</td></tr>
    

    

    

    

    

    

    </table>
      
      

    
    <h2>Execution:</h2>
    <ul>
      
      <li>
        Source:
        <a href="https://example.com/task?id=2d8d62f6be545b10&amp;show_raw=1&amp;wide_logs=true"
           aria-label="Source for Task 2d8d62f6be545b10">
          Task 2d8d62f6be545b10
        </a>
      </li>
      

      
      <li>
        Bot:
        <a href="https://example.com/restricted/bot/swarm3-c4"
           aria-label="Bot swarm3-c4">
          swarm3-c4
        </a>
      </li>
      

      
      <li>
        Recipe: <a href="https://cs.chromium.org/search/?q=file:recipes/infra/infra_continuous.py" aria-label="recipe infra/infra_continuous">infra/infra_continuous</a>
      </li>
      
    </ul>
     

    
      
    

    
      <h2>Steps and Logfiles:</h2>
      Show:
      <input type="radio" name="hider" id="showExpanded">
      <label for="showExpanded">Expanded</label>
      <input type="radio" name="hider" id="showDefault">
      <label for="showDefault">Default</label>
      <input type="radio" name="hider" id="showNonGreen" checked>
      <label for="showNonGreen">Non-Green</label>

      <ol id="steps" class="non-green">

        
          
          <li>
            <div class="status-InfraFailure result">
              
  
    <span class="duration"
          data-starttime="2016-03-14T10:00:01Z"
          data-endtime="2016-03-14T11:00:18Z">
          ( 1 hrs )</span>
  

              <b>Steps</b>
            </div>
            <ul>
              
              <li class="sublink"><a href="/swarming/task/build-timeout/stdout" aria-label="log link for stdout">stdout</a></li>
              
            </ul>
          </li>
          
        

        
          
<li class="green">
  <div class="status-Success result">
      
  
    <span class="duration"
          data-starttime="2016-03-14T10:00:02Z"
          data-endtime="2016-03-14T10:00:04Z">
          ( 2 secs )</span>
  

    <b><a aria-label="recipe bootstrap">recipe bootstrap</a></b>
    <span>
      
    </span>
  </div>
  <ul>
    
      <li class="sublink"><a href="/swarming/task/build-timeout/steps/recipe_bootstrap/0/stdout" aria-label="log link for stdout">stdout</a></li>
    
    
  </ul>
  
</li>

        
          
<li class="green">
  <div class="status-Success result">
      
  
    <span class="duration"
          data-starttime="2016-03-14T10:00:02Z"
          data-endtime="2016-03-14T10:00:03Z">
          ( 1 secs )</span>
  

    <b><a aria-label="setup_build">setup_build</a></b>
    <span>
      <div class="step-text">running recipe: &#34;v8&#34;</div>
    </span>
  </div>
  <ul>
    
      <li class="sublink"><a href="/swarming/task/build-timeout/steps/setup_build/0/stdout" aria-label="log link for stdout">stdout</a></li>
    
      <li class="sublink"><a href="/swarming/task/build-timeout/steps/setup_build/0/logs/run_recipe/0" aria-label="log link for run_recipe">run_recipe</a></li>
    
    
  </ul>
  
</li>

        
      </ol>
     

  </div>
</div>
      <div id="properties-tab">
  <div id="properties">
    <h2>Build Properties:</h2>

    <table class="info BuildProperties" width="100%">
    <tr><th>Name</th><th>Value</th><th>Source</th></tr>

      
      
        
          <tr>
            <td class="left">path_config</td>
            <td class="middle"><abbr title="kitchen">kitchen</abbr></td>
            <td>recipe bootstrap</td>
          </tr>
        
          <tr>
            <td class="left">slavename</td>
            <td class="middle"><abbr title="fakeslave">fakeslave</abbr></td>
            <td>recipe bootstrap</td>
          </tr>
        
          <tr>
            <td class="left">buildername</td>
            <td class="middle"><abbr title="infra-continuous-precise-32">infra-continuous-precise-32</abbr></td>
            <td>recipe bootstrap</td>
          </tr>
        
          <tr>
            <td class="left">mastername</td>
            <td class="middle"><abbr title="chromium.infra">chromium.infra</abbr></td>
            <td>recipe bootstrap</td>
          </tr>
        
      
      
        
      
      
        
      
      
        
          <tr>
            <td class="left">Cost of job (USD)</td>
            <td class="middle"><abbr title="$0.52">$0.52</abbr></td>
            <td>Swarming</td>
          </tr>
        
          <tr>
            <td class="left">Exit Code</td>
            <td class="middle"><abbr title="-15">-15</abbr></td>
            <td>Swarming</td>
          </tr>
        
      
    </table>

    

    <h2>Timing:</h2>
    <table class="info" width="100%">
      <tr class="alt"><td class="left">Create</td>
      <td>
        <span class="local-time " data-timestamp="1457949601468">Monday, 14-Mar-16 10:00:01 UTC</span>
      </td></tr>
      <tr><td class="left">Start</td>
      <td>
        <span class="local-time " data-timestamp="1457949601850">Monday, 14-Mar-16 10:00:01 UTC</span>
      </td></tr>
      <tr class="alt"><td class="left">End</td>
      <td>
        <span class="local-time " data-timestamp="1457953218486">Monday, 14-Mar-16 11:00:18 UTC</span>
      </td></tr>
      <tr><td class="left">Pending</td>
      <td id="duration">
        
          382 ms
        
      </td></tr>
      <tr class="alt"><td class="left">Execution</td>
      <td id="duration">
        
          1 hrs
        
      </td></tr>
    </table>

  </div>
</div>
      <div id="changes-tab">
  <div id="changes">
    
  </div>
</div>
      
    </div>
  </div>

  <footer>
    <hr>
      <div><img class="lucy-logo" src="https://storage.googleapis.com/chrome-infra/lucy-small.png"></div>
      <div>
        <a href="https://chromium.googlesource.com/infra/luci">LUCI</a><br>
        built: <b><span class="local-time " data-timestamp="-6792498672871">Saturday, 03-Feb-01 04:05:06 UTC</span></b><br>
        version: <b>testVersionID</b><br>
      </div>
  </footer>
</body>
<script>
$(function () {
  'use strict';
  
  setTimeout(function() {
    milo.makeTimesLocal();
    milo.annotateDurations();
  }, 0);
  $(document).tooltip({
    show: false,
    hide: false
  });
});
</script>
<script>
  (function(i,s,o,g,r,a,m){i['CrDXObject']=r;i[r]=i[r]||function(){
    (i[r].q=i[r].q||[]).push(arguments)},a=s.createElement(o),
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
    })(window,document,'script','https://storage.googleapis.com/crdx-feedback.appspot.com/feedback.js','crdx');

  crdx('setFeedbackButtonLink', 'https://bugs.chromium.org/p/chromium/issues/entry?components=Infra%3EPlatform%3EMilo');

(function(window) {
  let lastWindowScrollTop = window.scrollY;

  function debounce(f, wait) {
    let timeout;
    return function(...args) {
      if (timeout) {
        clearTimeout(timeout);
      }
      timeout = setTimeout(() => {
        f(...args);
        timeout = null;
      }, wait);
    };
  }

  window.addEventListener('scroll', debounce(function(evt) {
    const delta = window.scrollY - lastWindowScrollTop;
    lastWindowScrollTop = window.scrollY;
    const absDelta = Math.abs(delta);
    const category = window.location.pathname.split('/').slice(0, 2).join('/');
    ga('send', 'event', category, 'scroll-abs', '', absDelta);
    if (delta > 0) {
      ga('send', 'event', category, 'scroll-down', '', absDelta);
    } else {
      ga('send', 'event', category, 'scroll-up', '', absDelta);
    }
  }, 250));
})(window);
</script>

<script>
setTimeout(function() {
	(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
	(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
	m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
	})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

	ga('create', 'UA-12345-01', 'auto');
	ga('send', 'pageview');
}, 0);
</script>

</html>
