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]

Reply via email to