5175: Do not add +sha1 tag unless --sha1-tag flag given.
[arvados.git] / services / crunchstat / crunchstat.go
index 0cfdfa88ee168186b11958d92742098cf7dba6c6..e35e98aa59dedba5848d2a6cc1013fd322c15f09 100644 (file)
@@ -34,11 +34,19 @@ type Cgroup struct {
        cid    string
 }
 
-func CopyPipeToChan(in io.Reader, out chan string, done chan<- bool) {
+func CopyPipeToChan(in io.ReadCloser, out chan string, done chan<- bool) {
+       defer in.Close()
+
+       // TODO(twp): handle long input records gracefully, if possible
+       // without killing the child task (#4889)
+       //
        s := bufio.NewScanner(in)
        for s.Scan() {
                out <- s.Text()
        }
+       if s.Err() != nil {
+               out <- fmt.Sprintf("crunchstat: line buffering error: %s", s.Err())
+       }
        done <- true
 }
 
@@ -49,11 +57,12 @@ func CopyChanToPipe(in <-chan string, out io.Writer) {
 }
 
 var logChan chan string
+
 func LogPrintf(format string, args ...interface{}) {
        if logChan == nil {
                return
        }
-       logChan <- fmt.Sprintf("crunchstat: " + format, args...)
+       logChan <- fmt.Sprintf("crunchstat: "+format, args...)
 }
 
 func ReadAllOrWarn(in *os.File) ([]byte, error) {