This is an automated email from the ASF dual-hosted git repository.
pbacsko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/yunikorn-core.git
The following commit(s) were added to refs/heads/master by this push:
new 76101256 fix: limit event size to 1024 (#1026)
76101256 is described below
commit 761012568cbb5099f8062cce02d5901fd73ac2b7
Author: Michael Chu <[email protected]>
AuthorDate: Thu Aug 14 14:12:27 2025 +0200
fix: limit event size to 1024 (#1026)
Closes: #1026
Signed-off-by: Peter Bacsko <[email protected]>
---
pkg/events/event_system.go | 13 +++++++++++++
pkg/events/event_system_test.go | 36 ++++++++++++++++++++++++++++++++++++
2 files changed, 49 insertions(+)
diff --git a/pkg/events/event_system.go b/pkg/events/event_system.go
index fa3bdf68..3306beaf 100644
--- a/pkg/events/event_system.go
+++ b/pkg/events/event_system.go
@@ -222,6 +222,10 @@ func (ec *EventSystemImpl) Stop() {
// AddEvent adds an event record to the event system. See the interface for
details.
func (ec *EventSystemImpl) AddEvent(event *si.EventRecord) {
+ if event != nil {
+ event.Message = truncateEventMessage(event.Message)
+ }
+
metrics.GetEventMetrics().IncEventsCreated()
select {
case ec.channel <- event:
@@ -232,6 +236,15 @@ func (ec *EventSystemImpl) AddEvent(event *si.EventRecord)
{
}
}
+// truncates event message to 1024 characters for k8s compatibility
+func truncateEventMessage(message string) string {
+ const k8sEventMessageLimit = 1024
+ if len(message) <= k8sEventMessageLimit {
+ return message
+ }
+ return message[:k8sEventMessageLimit-3] + "..."
+}
+
func isTrackingEnabled() bool {
return common.GetConfigurationBool(configs.GetConfigMap(),
configs.CMEventTrackingEnabled, configs.DefaultEventTrackingEnabled)
}
diff --git a/pkg/events/event_system_test.go b/pkg/events/event_system_test.go
index f2addd93..7bce1f1f 100644
--- a/pkg/events/event_system_test.go
+++ b/pkg/events/event_system_test.go
@@ -20,6 +20,7 @@ package events
import (
"strconv"
+ "strings"
"testing"
"time"
@@ -205,3 +206,38 @@ func TestRingBufferCapacity(t *testing.T) {
capacity = getRingBufferCapacity()
assert.Equal(t, uint64(configs.DefaultEventRingBufferCapacity),
capacity)
}
+
+func TestTruncateEventMessage(t *testing.T) {
+ testCases := []struct {
+ name string
+ message string
+ expected string
+ }{
+ {
+ name: "message length less than 1024 characters",
+ message: getTestString(10),
+ expected: getTestString(10),
+ },
+ {
+ name: "message length exactly 1024 characters",
+ message: getTestString(1024),
+ expected: getTestString(1024),
+ },
+ {
+ name: "message length greater than 1024 characters",
+ message: getTestString(1100),
+ expected: getTestString(1024-3) + "...",
+ },
+ }
+
+ for _, testCase := range testCases {
+ t.Run(testCase.name, func(t *testing.T) {
+ truncated := truncateEventMessage(testCase.message)
+ assert.Equal(t, testCase.expected, truncated)
+ })
+ }
+}
+
+func getTestString(stringLength int) string {
+ return strings.Repeat("x", stringLength)
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]