From 0076727c29e9987a95f4c2136bb9f96f96f7f254 Mon Sep 17 00:00:00 2001 From: Thibault bui Koechlin Date: Fri, 22 May 2020 11:23:47 +0200 Subject: [PATCH] don't discard error, don't try to unmarshal empty string, don't return if it happen --- cmd/crowdsec/main.go | 21 ++++++++++++++++++--- cmd/crowdsec/pour.go | 7 +++++-- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/cmd/crowdsec/main.go b/cmd/crowdsec/main.go index 80ca49a5c..543bffef5 100644 --- a/cmd/crowdsec/main.go +++ b/cmd/crowdsec/main.go @@ -289,19 +289,34 @@ func main() { //start go-routines for parsing, buckets pour and ouputs. for i := 0; i < nbParser; i++ { parsersTomb.Go(func() error { - return runParse(inputLineChan, inputEventChan, *parserCTX, parserNodes) + err := runParse(inputLineChan, inputEventChan, *parserCTX, parserNodes) + if err != nil { + log.Errorf("runParse error : %s", err) + return err + } + return nil }) } for i := 0; i < nbParser; i++ { bucketsTomb.Go(func() error { - return runPour(inputEventChan, holders, buckets) + err := runPour(inputEventChan, holders, buckets) + if err != nil { + log.Errorf("runPour error : %s", err) + return err + } + return nil }) } for i := 0; i < nbParser; i++ { outputsTomb.Go(func() error { - return runOutput(inputEventChan, outputEventChan, holders, buckets, *postOverflowCTX, postOverflowNodes, outputProfiles, outputRunner) + err := runOutput(inputEventChan, outputEventChan, holders, buckets, *postOverflowCTX, postOverflowNodes, outputProfiles, outputRunner) + if err != nil { + log.Errorf("runPour error : %s", err) + return err + } + return nil }) } diff --git a/cmd/crowdsec/pour.go b/cmd/crowdsec/pour.go index 59c9e7f3a..ff8efb2e6 100644 --- a/cmd/crowdsec/pour.go +++ b/cmd/crowdsec/pour.go @@ -59,9 +59,12 @@ LOOP: if cConfig.Profiling { bucketStat.AddTime(time.Since(start)) } - if err := lastProcessedItem.UnmarshalText([]byte(parsed.MarshaledTime)); err != nil { - return fmt.Errorf("failed to unmarshal item : %s", err) + if len(parsed.MarshaledTime) != 0 { + if err := lastProcessedItem.UnmarshalText([]byte(parsed.MarshaledTime)); err != nil { + log.Debugf("failed to unmarshal time from event : %s", err) + } } + } } log.Infof("Sending signal Bucketify")