bottlerocket-os / bottlerocket

An operating system designed for hosting containers
https://bottlerocket.dev
Other
8.81k stars 520 forks source link

io_uring regression in 6.1 kernel #4308

Open arnaldo2792 opened 6 days ago

arnaldo2792 commented 6 days ago

What happened?

The latest Linux 6.1 kernel introduced a regression in applications using the io_uring syscalls, which could result in processes hanging and not being killed. In particular, nodejs applications seem susceptible to this regression (see https://github.com/amazonlinux/amazon-linux-2023/issues/840 for details).

Affected versions

Bottlerocket 1.27.1 variants using the 6.1 kernel:

arnaldo2792 commented 6 days ago

Workaround for nodejs applications

Set the UV_USE_IO_URING=0 environment variable in your affected workloads:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: <>
spec:
  selector:
    matchLabels:
      name: <>
  template:
    metadata:
      labels:
        name: <>
    spec:
      containers:
      - name: <>
        image: <>:<>
        #...
        env:
          - name: UV_USE_IO_URING
            value: '0'