]> Cypherpunks repositories - gostls13.git/commitdiff
builder: drop recover blocks
authorAndrew Gerrand <adg@golang.org>
Mon, 30 Jan 2012 03:53:48 +0000 (14:53 +1100)
committerAndrew Gerrand <adg@golang.org>
Mon, 30 Jan 2012 03:53:48 +0000 (14:53 +1100)
The one time they recovered from anything they obscured a useful stack
trace. We're better off just crashing hard.

R=golang-dev, dsymonds
CC=golang-dev
https://golang.org/cl/5577073

misc/dashboard/builder/main.go

index 026cc2297c57af2369f78c400dd05cd13ec7cb9a..c2e19bffd97d003274ca9f3279fb6f4364b9e517 100644 (file)
@@ -230,12 +230,6 @@ func (b *Builder) buildExternal() {
 // and builds it if one is found. 
 // It returns true if a build was attempted.
 func (b *Builder) build() bool {
-       defer func() {
-               err := recover()
-               if err != nil {
-                       log.Println(b.name, "build:", err)
-               }
-       }()
        hash, err := b.todo("build-go-commit", "", "")
        if err != nil {
                log.Println(err)
@@ -245,7 +239,6 @@ func (b *Builder) build() bool {
                return false
        }
        // Look for hash locally before running hg pull.
-
        if _, err := fullHash(goroot, hash[:12]); err != nil {
                // Don't have hash, so run hg pull.
                if err := run(nil, goroot, "hg", "pull"); err != nil {
@@ -260,33 +253,24 @@ func (b *Builder) build() bool {
        return true
 }
 
-func (b *Builder) buildHash(hash string) (err error) {
-       defer func() {
-               if err != nil {
-                       err = fmt.Errorf("%s build: %s: %s", b.name, hash, err)
-               }
-       }()
-
+func (b *Builder) buildHash(hash string) error {
        log.Println(b.name, "building", hash)
 
        // create place in which to do work
        workpath := path.Join(*buildroot, b.name+"-"+hash[:12])
-       err = os.Mkdir(workpath, mkdirPerm)
-       if err != nil {
-               return
+       if err := os.Mkdir(workpath, mkdirPerm); err != nil {
+               return err
        }
        defer os.RemoveAll(workpath)
 
        // clone repo
-       err = run(nil, workpath, "hg", "clone", goroot, "go")
-       if err != nil {
-               return
+       if err := run(nil, workpath, "hg", "clone", goroot, "go"); err != nil {
+               return err
        }
 
        // update to specified revision
-       err = run(nil, path.Join(workpath, "go"), "hg", "update", hash)
-       if err != nil {
-               return
+       if err := run(nil, path.Join(workpath, "go"), "hg", "update", hash); err != nil {
+               return err
        }
 
        srcDir := path.Join(workpath, "go", "src")
@@ -323,24 +307,22 @@ func (b *Builder) buildHash(hash string) (err error) {
 
        // finish here if codeUsername and codePassword aren't set
        if b.codeUsername == "" || b.codePassword == "" || !*buildRelease {
-               return
+               return nil
        }
 
        // if this is a release, create tgz and upload to google code
        releaseHash, release, err := firstTag(binaryTagRe)
        if hash == releaseHash {
                // clean out build state
-               err = run(b.envv(), srcDir, "./clean.bash", "--nopkg")
-               if err != nil {
+               if err := run(b.envv(), srcDir, "./clean.bash", "--nopkg"); err != nil {
                        return fmt.Errorf("clean.bash: %s", err)
                }
                // upload binary release
                fn := fmt.Sprintf("go.%s.%s-%s.tar.gz", release, b.goos, b.goarch)
-               err = run(nil, workpath, "tar", "czf", fn, "go")
-               if err != nil {
+               if err := run(nil, workpath, "tar", "czf", fn, "go"); err != nil {
                        return fmt.Errorf("tar: %s", err)
                }
-               err = run(nil, workpath, path.Join(goroot, codePyScript),
+               err := run(nil, workpath, path.Join(goroot, codePyScript),
                        "-s", release,
                        "-p", codeProject,
                        "-u", b.codeUsername,
@@ -352,7 +334,7 @@ func (b *Builder) buildHash(hash string) (err error) {
                }
        }
 
-       return
+       return nil
 }
 
 func (b *Builder) buildSubrepos(goRoot, goHash string) {
@@ -571,13 +553,6 @@ const xmlLogTemplate = `
 // commitPoll pulls any new revisions from the hg server
 // and tells the server about them.
 func commitPoll(key, pkg string) {
-       // Catch unexpected panics.
-       defer func() {
-               if err := recover(); err != nil {
-                       log.Printf("commitPoll panic: %s", err)
-               }
-       }()
-
        pkgRoot := goroot
 
        if pkg != "" {
@@ -687,12 +662,7 @@ func addCommit(pkg, hash, key string) bool {
 }
 
 // fullHash returns the full hash for the given Mercurial revision.
-func fullHash(root, rev string) (hash string, err error) {
-       defer func() {
-               if err != nil {
-                       err = fmt.Errorf("fullHash: %s: %s", rev, err)
-               }
-       }()
+func fullHash(root, rev string) (string, error) {
        s, _, err := runLog(nil, "", root,
                "hg", "log",
                "--encoding=utf-8",
@@ -701,7 +671,7 @@ func fullHash(root, rev string) (hash string, err error) {
                "--template={node}",
        )
        if err != nil {
-               return
+               return "", nil
        }
        s = strings.TrimSpace(s)
        if s == "" {