From e3abf5c9e87de06a934aa025a0b4538ef241a3a7 Mon Sep 17 00:00:00 2001 From: Paul Holzinger Date: Tue, 29 Oct 2024 15:30:07 +0100 Subject: [PATCH] events: remove memory eventer This type is unsused, undocumented and basically broken. If this would be used anywhere it will just deadlock after writing 100+ events without reading as the channel will just be full. It was added in commit 8da5f3f733 but never used there nor is there any justification why this was added in the commit message or PR comments. Signed-off-by: Paul Holzinger --- libpod/events/config.go | 2 -- libpod/events/events.go | 4 --- libpod/events/events_freebsd.go | 2 -- libpod/events/events_linux.go | 2 -- libpod/events/memory.go | 49 --------------------------------- 5 files changed, 59 deletions(-) delete mode 100644 libpod/events/memory.go diff --git a/libpod/events/config.go b/libpod/events/config.go index 1927c5a6d3..9e3ae6bae8 100644 --- a/libpod/events/config.go +++ b/libpod/events/config.go @@ -16,8 +16,6 @@ const ( Journald EventerType = iota // Null is a no-op events logger. It does not read or write events. Null EventerType = iota - // Memory indicates the event logger will hold events in memory - Memory EventerType = iota ) // Event describes the attributes of a libpod event diff --git a/libpod/events/events.go b/libpod/events/events.go index 084be84cab..9f9b6f6f8e 100644 --- a/libpod/events/events.go +++ b/libpod/events/events.go @@ -20,8 +20,6 @@ func (et EventerType) String() string { return "file" case Journald: return "journald" - case Memory: - return "memory" case Null: return "none" default: @@ -36,8 +34,6 @@ func IsValidEventer(eventer string) bool { return true case Journald.String(): return true - case Memory.String(): - return true case Null.String(): return true default: diff --git a/libpod/events/events_freebsd.go b/libpod/events/events_freebsd.go index 90933fa2cc..116398d06e 100644 --- a/libpod/events/events_freebsd.go +++ b/libpod/events/events_freebsd.go @@ -15,8 +15,6 @@ func NewEventer(options EventerOptions) (Eventer, error) { return EventLogFile{options}, nil case strings.ToUpper(Null.String()): return newNullEventer(), nil - case strings.ToUpper(Memory.String()): - return NewMemoryEventer(), nil default: return nil, fmt.Errorf("unknown event logger type: %s", strings.ToUpper(options.EventerType)) } diff --git a/libpod/events/events_linux.go b/libpod/events/events_linux.go index 66b125dd5f..f17f9708a8 100644 --- a/libpod/events/events_linux.go +++ b/libpod/events/events_linux.go @@ -21,8 +21,6 @@ func NewEventer(options EventerOptions) (Eventer, error) { return newLogFileEventer(options) case strings.ToUpper(Null.String()): return newNullEventer(), nil - case strings.ToUpper(Memory.String()): - return NewMemoryEventer(), nil default: return nil, fmt.Errorf("unknown event logger type: %s", strings.ToUpper(options.EventerType)) } diff --git a/libpod/events/memory.go b/libpod/events/memory.go deleted file mode 100644 index b3e03d86bc..0000000000 --- a/libpod/events/memory.go +++ /dev/null @@ -1,49 +0,0 @@ -package events - -import ( - "context" -) - -// EventMemory is the structure for event writing to a channel. It contains the eventer -// options and the event itself. Methods for reading and writing are also defined from it. -type EventMemory struct { - options EventerOptions - elements chan *Event -} - -// Write event to memory queue -func (e EventMemory) Write(event Event) (err error) { - e.elements <- &event - return -} - -// Read event(s) from memory queue -func (e EventMemory) Read(ctx context.Context, options ReadOptions) (err error) { - select { - case <-ctx.Done(): - return - default: - } - - select { - case event := <-e.elements: - options.EventChannel <- event - default: - } - return nil -} - -// String returns eventer type -func (e EventMemory) String() string { - return e.options.EventerType -} - -// NewMemoryEventer returns configured MemoryEventer -func NewMemoryEventer() Eventer { - return EventMemory{ - options: EventerOptions{ - EventerType: Memory.String(), - }, - elements: make(chan *Event, 100), - } -}