parent
26cd5574bf
commit
694701cbd4
@ -1,3 +1,3 @@
|
|||||||
SOURCES/rhc-0.2.2.tar.gz
|
SOURCES/rhc-0.2.4.tar.gz
|
||||||
SOURCES/yggdrasil-0.2.1.tar.gz
|
SOURCES/yggdrasil-0.2.4.tar.gz
|
||||||
SOURCES/yggdrasil-worker-package-manager-0.1.0.tar.gz
|
SOURCES/yggdrasil-worker-package-manager-0.1.3.tar.xz
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
7f90428c84e86660930463c8f31765c023dea8c7 SOURCES/rhc-0.2.2.tar.gz
|
d86980ee8506b164209dbd991df36199922d8592 SOURCES/rhc-0.2.4.tar.gz
|
||||||
55a3abc8515dede8b7ff41905447e08f5e6c01d7 SOURCES/yggdrasil-0.2.1.tar.gz
|
4fca792b47a5dea8d3f12df8ea7f4ab6763d2be9 SOURCES/yggdrasil-0.2.4.tar.gz
|
||||||
0582350e1001af0d608772860045f7f4964aa321 SOURCES/yggdrasil-worker-package-manager-0.1.0.tar.gz
|
307a2ca145c93b20c41b7f802f5b6fcf61dff3ae SOURCES/yggdrasil-worker-package-manager-0.1.3.tar.xz
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
--- main.go.orig 2022-02-11 15:41:53.199642591 -0500
|
|
||||||
+++ main.go 2022-02-11 15:42:43.738219604 -0500
|
|
||||||
@@ -6,6 +6,7 @@
|
|
||||||
"fmt"
|
|
||||||
"net"
|
|
||||||
"os"
|
|
||||||
+ "path/filepath"
|
|
||||||
"strconv"
|
|
||||||
"strings"
|
|
||||||
"time"
|
|
||||||
@@ -21,7 +22,7 @@
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
- fs := flag.NewFlagSet("yggd-package-manager-worker", flag.ExitOnError)
|
|
||||||
+ fs := flag.NewFlagSet(filepath.Base(os.Args[0]), flag.ExitOnError)
|
|
||||||
|
|
||||||
var (
|
|
||||||
socketAddr = ""
|
|
||||||
@@ -32,7 +33,7 @@
|
|
||||||
fs.StringVar(&socketAddr, "socket-addr", "", "dispatcher socket address")
|
|
||||||
fs.Var(&logLevel, "log-level", "log verbosity level (error (default), warn, info, debug, trace)")
|
|
||||||
fs.Var(&allowPatterns, "allow-pattern", "regular expression pattern to allow package operations\n(can be specified multiple times)")
|
|
||||||
- _ = fs.String("config", "", "path to `file` containing configuration values (optional)")
|
|
||||||
+ _ = fs.String("config", filepath.Join("/", "etc", "rhc", "workers", "rhc-package-manager.toml"), "path to `file` containing configuration values (optional)")
|
|
||||||
|
|
||||||
ff.Parse(fs, os.Args[1:], ff.WithEnvVarPrefix("YGG"), ff.WithConfigFileFlag("config"), ff.WithConfigFileParser(fftoml.Parser))
|
|
||||||
|
|
@ -1,89 +0,0 @@
|
|||||||
From d75dc60df73a88b0a14c799f3b6f1e8f66cee3d4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Link Dupont <link@sub-pop.net>
|
|
||||||
Date: Tue, 22 Nov 2022 13:07:41 -0500
|
|
||||||
Subject: [PATCH] fix: read worker output using io.Read
|
|
||||||
|
|
||||||
Some workers output a lot of text to stderr and stdout. Rather than
|
|
||||||
scanning stderr and stdout into a buffer using a bufio.Scanner, read a
|
|
||||||
fixed number of bytes at a time. This will break lines of output from
|
|
||||||
the worker in the middle of words, making reading stdout in the logs
|
|
||||||
more difficult, but avoids the overly verbose workers from hitting the
|
|
||||||
bufio.ErrTooLong error.
|
|
||||||
|
|
||||||
Signed-off-by: Link Dupont <link@sub-pop.net>
|
|
||||||
---
|
|
||||||
cmd/yggd/exec.go | 46 +++++++++++++++++++++++++++++++++-------------
|
|
||||||
1 file changed, 33 insertions(+), 13 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/cmd/yggd/exec.go b/cmd/yggd/exec.go
|
|
||||||
index 4eb1757..a2a3d29 100644
|
|
||||||
--- a/cmd/yggd/exec.go
|
|
||||||
+++ b/cmd/yggd/exec.go
|
|
||||||
@@ -1,8 +1,8 @@
|
|
||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
- "bufio"
|
|
||||||
"fmt"
|
|
||||||
+ "io"
|
|
||||||
"io/ioutil"
|
|
||||||
"os"
|
|
||||||
"os/exec"
|
|
||||||
@@ -54,22 +54,42 @@ func startProcess(file string, env []string, delay time.Duration, died chan int)
|
|
||||||
log.Debugf("started process: %v", cmd.Process.Pid)
|
|
||||||
|
|
||||||
go func() {
|
|
||||||
- scanner := bufio.NewScanner(stdout)
|
|
||||||
- for scanner.Scan() {
|
|
||||||
- log.Tracef("[%v] %v", file, scanner.Text())
|
|
||||||
- }
|
|
||||||
- if err := scanner.Err(); err != nil {
|
|
||||||
- log.Errorf("cannot read from stdout: %v", err)
|
|
||||||
+ for {
|
|
||||||
+ buf := make([]byte, 4096)
|
|
||||||
+ n, err := stdout.Read(buf)
|
|
||||||
+ if n > 0 {
|
|
||||||
+ log.Tracef("[%v] %v", file, strings.TrimRight(string(buf), "\n\x00"))
|
|
||||||
+ }
|
|
||||||
+ if err != nil {
|
|
||||||
+ switch err {
|
|
||||||
+ case io.EOF:
|
|
||||||
+ log.Debugf("%v stdout reached EOF: %v", file, err)
|
|
||||||
+ return
|
|
||||||
+ default:
|
|
||||||
+ log.Errorf("cannot read from stdout: %v", err)
|
|
||||||
+ continue
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
go func() {
|
|
||||||
- scanner := bufio.NewScanner(stderr)
|
|
||||||
- for scanner.Scan() {
|
|
||||||
- log.Errorf("[%v] %v", file, scanner.Text())
|
|
||||||
- }
|
|
||||||
- if err := scanner.Err(); err != nil {
|
|
||||||
- log.Errorf("cannot read from stderr: %v", err)
|
|
||||||
+ for {
|
|
||||||
+ buf := make([]byte, 4096)
|
|
||||||
+ n, err := stderr.Read(buf)
|
|
||||||
+ if n > 0 {
|
|
||||||
+ log.Errorf("[%v] %v", file, strings.TrimRight(string(buf), "\n\x00"))
|
|
||||||
+ }
|
|
||||||
+ if err != nil {
|
|
||||||
+ switch err {
|
|
||||||
+ case io.EOF:
|
|
||||||
+ log.Debugf("%v stderr reached EOF: %v", file, err)
|
|
||||||
+ return
|
|
||||||
+ default:
|
|
||||||
+ log.Errorf("cannot read from stderr: %v", err)
|
|
||||||
+ continue
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
--
|
|
||||||
2.38.1
|
|
||||||
|
|
Loading…
Reference in new issue