Skip to content

Commit c26195f

Browse files
authored
kmt: add ubuntu 25.10 (#42172)
### What does this PR do? - Adds Ubuntu 25.10 to KMT - Removes Ubuntu 24.10 - Fixes flake detection to support multiple levels of nesting - Adds a bunch of flakes for tests that newly fail on 25.10 - Adds flakes for other failing tests ### Motivation Ensuring latest kernel compatibility ### Describe how you validated your changes Existing tests. ### Additional Notes Co-authored-by: bryce.kahle <bryce.kahle@datadoghq.com>
1 parent a65f0c0 commit c26195f

18 files changed

Lines changed: 114 additions & 52 deletions

File tree

.gitlab/test/kernel_matrix_testing/security_agent.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ kmt_run_secagent_tests_x64:
144144
- "ubuntu_20.04"
145145
- "ubuntu_22.04"
146146
- "ubuntu_24.04"
147-
- "ubuntu_24.10"
147+
- "ubuntu_25.10"
148148
- "amazon_4.14"
149149
- "amazon_5.4"
150150
- "amazon_5.10"
@@ -187,7 +187,7 @@ kmt_run_secagent_tests_x64_peds:
187187
- "ubuntu_20.04"
188188
- "ubuntu_22.04"
189189
- "ubuntu_24.04"
190-
- "ubuntu_24.10"
190+
- "ubuntu_25.10"
191191
- "amazon_4.14"
192192
- "amazon_5.4"
193193
- "amazon_5.10"
@@ -226,7 +226,7 @@ kmt_run_secagent_tests_x64_required:
226226
parallel:
227227
matrix:
228228
- TAG:
229-
- "ubuntu_24.10"
229+
- "ubuntu_25.10"
230230
TEST_SET: [cws_req]
231231
after_script:
232232
- !reference [.collect_outcomes_kmt]
@@ -291,7 +291,7 @@ kmt_run_secagent_tests_x64_docker:
291291
- "ubuntu_20.04"
292292
- "ubuntu_22.04"
293293
- "ubuntu_24.04"
294-
- "ubuntu_24.10"
294+
- "ubuntu_25.10"
295295
- "amazon_4.14"
296296
- "amazon_5.4"
297297
- "amazon_5.10"
@@ -328,7 +328,7 @@ kmt_run_secagent_tests_arm64:
328328
- TAG:
329329
- "ubuntu_22.04"
330330
- "ubuntu_24.04"
331-
- "ubuntu_24.10"
331+
- "ubuntu_25.10"
332332
- "amazon_5.4"
333333
- "amazon_5.10"
334334
- "amazon_2023"
@@ -364,7 +364,7 @@ kmt_run_secagent_tests_arm64_peds:
364364
- TAG:
365365
- "ubuntu_22.04"
366366
- "ubuntu_24.04"
367-
- "ubuntu_24.10"
367+
- "ubuntu_25.10"
368368
- "amazon_5.4"
369369
- "amazon_5.10"
370370
- "amazon_2023"
@@ -442,7 +442,7 @@ kmt_run_secagent_tests_arm64_docker:
442442
- TAG:
443443
- "ubuntu_22.04"
444444
- "ubuntu_24.04"
445-
- "ubuntu_24.10"
445+
- "ubuntu_25.10"
446446
- "amazon_5.4"
447447
- "amazon_5.10"
448448
- "amazon_2023"

.gitlab/test/kernel_matrix_testing/system_probe.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ kmt_run_sysprobe_tests_x64:
229229
- "ubuntu_20.04"
230230
- "ubuntu_22.04"
231231
- "ubuntu_24.04"
232-
- "ubuntu_24.10"
232+
- "ubuntu_25.10"
233233
- "amazon_4.14"
234234
- "amazon_5.4"
235235
- "amazon_5.10"
@@ -269,7 +269,7 @@ kmt_run_sysprobe_tests_arm64:
269269
- "ubuntu_20.04"
270270
- "ubuntu_22.04"
271271
- "ubuntu_24.04"
272-
- "ubuntu_24.10"
272+
- "ubuntu_25.10"
273273
- "amazon_4.14"
274274
- "amazon_5.4"
275275
- "amazon_5.10"

pkg/collector/corechecks/ebpf/probe/oomkill/oom_kill_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ func TestOOMKillProbe(t *testing.T) {
9999
return false
100100
}, 10*time.Second, 500*time.Millisecond, "failed to find an OOM killed process with pid %d", cmd.Process.Pid)
101101

102-
assert.Regexp(t, regexp.MustCompile("run-([0-9|a-z]*).scope"), result.CgroupName, "cgroup name")
102+
assert.Regexp(t, regexp.MustCompile(`run-.+\.scope`), result.CgroupName, "cgroup name")
103103
assert.Equal(t, result.TriggerPid, result.VictimPid, "tpid == pid")
104104
assert.NotZero(t, result.Score, "score")
105105
assert.Equal(t, int16(42), result.ScoreAdj, "score adj")

pkg/ebpf/lockcontention_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,11 @@ package ebpf
1010
import (
1111
"testing"
1212

13-
"github.com/DataDog/datadog-agent/pkg/util/kernel"
14-
1513
"github.com/cilium/ebpf"
1614
"github.com/stretchr/testify/require"
15+
16+
"github.com/DataDog/datadog-agent/pkg/util/kernel"
17+
"github.com/DataDog/datadog-agent/pkg/util/testutil/flake"
1718
)
1819

1920
type checkMap struct {
@@ -174,6 +175,7 @@ func TestLoadWithMaxTrackedRanges(t *testing.T) {
174175
if !lockContentionCollectorSupported() {
175176
t.Skip("EBPF lock contention collector not supported")
176177
}
178+
flake.MarkOnJobName(t, "ubuntu_25.10")
177179

178180
l := NewLockContentionCollector()
179181
require.NotNil(t, l)

pkg/network/tracer/tracer_linux_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2001,7 +2001,7 @@ func (s *TracerSuite) TestShortWrite() {
20012001
require.True(collect, ok)
20022002

20032003
require.Equal(collect, sent, conn.Monotonic.SentBytes)
2004-
}, 3*time.Second, 100*time.Millisecond, "couldn't find connection used by short write")
2004+
}, 10*time.Second, 100*time.Millisecond, "couldn't find connection used by short write")
20052005
}
20062006

20072007
func (s *TracerSuite) TestKprobeAttachWithKprobeEvents() {

pkg/network/usm/monitor_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ import (
4848
"github.com/DataDog/datadog-agent/pkg/process/util"
4949
"github.com/DataDog/datadog-agent/pkg/util/kernel"
5050
"github.com/DataDog/datadog-agent/pkg/util/log"
51+
"github.com/DataDog/datadog-agent/pkg/util/testutil/flake"
5152
)
5253

5354
func TestMain(m *testing.M) {
@@ -202,6 +203,7 @@ func (s *HTTPTestSuite) TestHTTPMonitorLoadWithIncompleteBuffers() {
202203

203204
func (s *HTTPTestSuite) TestHTTPMonitorIntegrationWithResponseBody() {
204205
t := s.T()
206+
flake.MarkOnJobName(t, "ubuntu_25.10")
205207
serverAddr := "localhost:8080"
206208

207209
tests := []struct {

pkg/network/usm/usm_grpc_monitor_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030
"github.com/DataDog/datadog-agent/pkg/network/usm/testutil/grpc"
3131
"github.com/DataDog/datadog-agent/pkg/network/usm/utils"
3232
"github.com/DataDog/datadog-agent/pkg/util/kernel"
33+
"github.com/DataDog/datadog-agent/pkg/util/testutil/flake"
3334
)
3435

3536
const (
@@ -438,6 +439,7 @@ func (s *usmGRPCSuite) TestLargeBodiesGRPCScenarios() {
438439
if s.isTLS {
439440
t.Skip("Skipping TestLargeBodiesGRPCScenarios for TLS due to flakiness")
440441
}
442+
flake.MarkOnJobName(t, "ubuntu_25.10")
441443

442444
srv, cancel := grpc.NewGRPCTLSServer(t, srvAddr, s.isTLS)
443445
t.Cleanup(cancel)

pkg/process/monitor/process_monitor_test.go

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
package monitor
99

1010
import (
11-
"os"
1211
"os/exec"
1312
"sync"
1413
"testing"
@@ -21,7 +20,6 @@ import (
2120

2221
"github.com/DataDog/datadog-agent/pkg/eventmonitor/consumers/testutil"
2322
"github.com/DataDog/datadog-agent/pkg/network/protocols/telemetry"
24-
"github.com/DataDog/datadog-agent/pkg/util/filesystem"
2523
netnsutil "github.com/DataDog/datadog-agent/pkg/util/kernel/netns"
2624
)
2725

@@ -113,17 +111,6 @@ func registerCallback(t *testing.T, pm *ProcessMonitor, isExec bool, callback *P
113111
return unsubscribe
114112
}
115113

116-
func getTestBinaryPath(t *testing.T) string {
117-
tmpFile, err := os.CreateTemp("", "echo")
118-
require.NoError(t, err)
119-
t.Cleanup(func() {
120-
os.Remove(tmpFile.Name())
121-
})
122-
require.NoError(t, filesystem.CopyFile("/bin/echo", tmpFile.Name()))
123-
124-
return tmpFile.Name()
125-
}
126-
127114
func TestProcessMonitorSingleton(t *testing.T) {
128115
// Making sure we get the same process monitor if we call it twice.
129116
pm := getProcessMonitor(t)
@@ -140,7 +127,6 @@ type processMonitorSuite struct {
140127
func (s *processMonitorSuite) TestProcessMonitorSanity() {
141128
t := s.T()
142129
pm := getProcessMonitor(t)
143-
testBinaryPath := getTestBinaryPath(t)
144130

145131
execRecorder := newPidRecorder()
146132
registerCallback(t, pm, true, getProcessCallback(execRecorder))
@@ -149,7 +135,7 @@ func (s *processMonitorSuite) TestProcessMonitorSanity() {
149135
registerCallback(t, pm, false, getProcessCallback(exitRecorder))
150136

151137
initializePM(t, pm, s.useEventStream)
152-
cmd := exec.Command(testBinaryPath, "test")
138+
cmd := exec.Command("/bin/echo", "test")
153139
require.NoError(t, cmd.Run())
154140
require.EventuallyWithT(t, func(ct *assert.CollectT) {
155141
assert.Truef(ct, execRecorder.has(uint32(cmd.Process.Pid)), "didn't capture exec event %d", cmd.Process.Pid)

pkg/security/tests/action_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import (
3232
"github.com/DataDog/datadog-agent/pkg/security/secl/model"
3333
"github.com/DataDog/datadog-agent/pkg/security/secl/rules"
3434
"github.com/DataDog/datadog-agent/pkg/security/utils"
35+
"github.com/DataDog/datadog-agent/pkg/util/testutil/flake"
3536
)
3637

3738
func TestActionKill(t *testing.T) {
@@ -749,6 +750,7 @@ func TestActionHash(t *testing.T) {
749750
})
750751

751752
t.Run("exec", func(t *testing.T) {
753+
flake.MarkOnJobName(t, "ubuntu_25.10")
752754
test.msgSender.flush()
753755
test.WaitSignalFromRule(t, func() error {
754756
cmd := exec.Command(testExecutable, "/tmp/aaa")
@@ -950,6 +952,7 @@ func TestActionKillWithSignature(t *testing.T) {
950952

951953
func TestActionKillContainerWithSignature(t *testing.T) {
952954
SkipIfNotAvailable(t)
955+
flake.MarkOnJobName(t, "cws_host")
953956

954957
if testEnvironment == DockerEnvironment {
955958
t.Skip("Skip test spawning docker containers on docker")
@@ -1156,6 +1159,7 @@ func TestActionKillContainerWithSignature(t *testing.T) {
11561159

11571160
func TestActionKillContainerWithSignatureBroadRule(t *testing.T) {
11581161
SkipIfNotAvailable(t)
1162+
flake.MarkOnJobName(t, "cws_host")
11591163

11601164
if testEnvironment == DockerEnvironment {
11611165
t.Skip("Skip test spawning docker containers on docker")

pkg/security/tests/mount_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
"github.com/DataDog/datadog-agent/pkg/security/secl/rules"
2828
"github.com/DataDog/datadog-agent/pkg/security/utils"
2929
"github.com/DataDog/datadog-agent/pkg/util/kernel"
30+
"github.com/DataDog/datadog-agent/pkg/util/testutil/flake"
3031
)
3132

3233
func TestMount(t *testing.T) {
@@ -537,6 +538,7 @@ func TestMountEvent(t *testing.T) {
537538

538539
t.Run("mount-in-container-root", func(t *testing.T) {
539540
SkipIfNotAvailable(t)
541+
flake.MarkOnJobName(t, "ubuntu_25.10")
540542

541543
if _, err := whichNonFatal("docker"); err != nil {
542544
t.Skip("Skip test where docker is unavailable")

0 commit comments

Comments
 (0)