convox / convox

Lock erroneously passed by value VET-V0008
Bug risk
Critical
12 days agoa year old
writeLogs passes lock by value: github.com/convox/convox/pkg/prefix.Writer contains sync.Mutex
789	return data
790}
791
792func writeLogs(ctx context.Context, pw prefix.Writer, r io.Reader, services map[string]bool) {793	ls := bufio.NewScanner(r)
794
795	ls.Buffer(make([]byte, ScannerStartSize), ScannerMaxSize)
handleErrors passes lock by value: github.com/convox/convox/pkg/prefix.Writer contains sync.Mutex
755	StackTrace() errors.StackTrace
756}
757
758func handleErrors(ctx context.Context, pw prefix.Writer, errch chan error) {759	for {
760		select {
761		case <-ctx.Done():
watchPath passes lock by value: github.com/convox/convox/pkg/prefix.Writer contains sync.Mutex
472	}
473}
474
475func (opts Options2) watchPath(ctx context.Context, pw prefix.Writer, service, root string, bs buildSource, ignores []string, ch chan error) {476	cch := make(chan changes.Change, 1)
477
478	abs, err := filepath.Abs(bs.Local)
call of opts.watchPath copies lock value: github.com/convox/convox/pkg/prefix.Writer contains sync.Mutex
468	}
469
470	for _, bs := range bss {
471		go opts.watchPath(ctx, pw, service, root, bs, ignores, ch)472	}
473}
474
watchChanges passes lock by value: github.com/convox/convox/pkg/prefix.Writer contains sync.Mutex
454	}
455}
456
457func (opts Options2) watchChanges(ctx context.Context, pw prefix.Writer, m *manifest.Manifest, service, root string, ch chan error) {458	bss, err := buildSources(m, root, service)
459	if err != nil {
460		ch <- fmt.Errorf("sync error: %s", err)