code: func fetchCRLCron(c *router.Context) {
  	list, err := caServer.ListCAs(c.Context, nil)
  	if err != nil {
  		panic(err) // let panic catcher deal with it
  	}
  
  	// Fetch CRL of each active CA in parallel. In practice there are very few
  	// CAs there (~= 1), so the risk of OOM is small.
  	wg := sync.WaitGroup{}
  	errs := make([]error, len(list.Cn))
  	for i, cn := range list.Cn {
  		wg.Add(1)
  		go func(i int, cn string) {
  			defer wg.Done()
  			_, err := caServer.FetchCRL(c.Context, &admin.FetchCRLRequest{Cn: cn})
  			if err != nil {
  				logging.Errorf(c.Context, "FetchCRL(%q) failed - %s", cn, err)
  				errs[i] = err
  			}
  		}(i, cn)
  	}
  	wg.Wait()
  
  	// Retry cron job only on transient errors. On fatal errors let it rerun one
  	// minute later, as usual, to avoid spamming logs with errors.
  	c.Writer.WriteHeader(statusFromErrs(errs))
  }
docs: // fetchCRLCron is handler for /internal/cron/fetch-crl GAE cron task.