-
Bug
-
Resolution: Won't Do
-
Minor
-
None
-
rhel-9.4
What were you trying to do that didn't work?
Sometimes nmstate reports applied successfully though openvswitch daemon is stopped.
Please provide the package NVR for which bug is seen:
nmstate-2.2.20-1.el9.x86_64
nispor-1.2.14-1.el9.x86_64
NetworkManager-1.45.8-1.el9.x86_64
openvswitch3.1-3.1.0-72.el9fdp.x86_64
How reproducible:
Nearly 100% in auto scheduled test job, but so far hard to reproduce when manually run the test script.
Steps to reproduce
(Seems it needs to be run in a very sequence)
- stop openvswitch daemon
- apply a ovs state like in the below logs
Expected results
Failed
Actual results
It applied successfully:
:: [ 18:51:09 ] :: [ BEGIN ] :: Running 'systemctl stop openvswitch' :: [ 18:51:10 ] :: [ PASS ] :: Command 'systemctl stop openvswitch' (Expected 0, got 0) :: [ 18:51:10 ] :: [ BEGIN ] :: Running 'nmstatectl set ovs-bond.yaml' Using 'set' is deprecated, use 'apply' instead. [2023-12-18T23:51:10Z INFO nmstate::iface] Include interface veth1 to edit as its controller required so [2023-12-18T23:51:10Z INFO nmstate::iface] Include interface veth0 to edit as its controller required so [2023-12-18T23:51:10Z INFO nmstate::query_apply::net_state] Created checkpoint /org/freedesktop/NetworkManager/Checkpoint/158 [2023-12-18T23:51:10Z INFO nmstate::nm::query_apply::profile] Creating connection UUID Some("bf4e0861-081a-44e7-839e-a0fc7b6735fd"), ID Some("ovs-br0-br"), type Some("ovs-bridge") name Some("ovs-br0") [2023-12-18T23:51:10Z INFO nmstate::nm::query_apply::profile] Creating connection UUID Some("83f843f8-5ce1-4238-aa89-f7ae9c5a4a2a"), ID Some("ovs-bond0-port"), type Some("ovs-port") name Some("ovs-bond0") [2023-12-18T23:51:10Z INFO nmstate::nm::query_apply::profile] Creating connection UUID Some("636568fa-f758-4edb-96fc-24de81a90000"), ID Some("veth0"), type Some("802-3-ethernet") name Some("veth0") [2023-12-18T23:51:10Z INFO nmstate::nm::query_apply::profile] Creating connection UUID Some("074b6276-912b-4c7d-bc3b-71e76f3d1e7d"), ID Some("veth1"), type Some("802-3-ethernet") name Some("veth1") [2023-12-18T23:51:10Z INFO nmstate::nm::query_apply::profile] Activating connection bf4e0861-081a-44e7-839e-a0fc7b6735fd: ovs-br0/ovs-bridge [2023-12-18T23:51:10Z INFO nmstate::nm::query_apply::profile] Activating connection 83f843f8-5ce1-4238-aa89-f7ae9c5a4a2a: ovs-bond0/ovs-port [2023-12-18T23:51:10Z INFO nmstate::nm::query_apply::profile] Activating connection 636568fa-f758-4edb-96fc-24de81a90000: veth0/802-3-ethernet [2023-12-18T23:51:10Z INFO nmstate::nm::query_apply::profile] Activating connection 074b6276-912b-4c7d-bc3b-71e76f3d1e7d: veth1/802-3-ethernet [2023-12-18T23:51:10Z INFO nmstate::query_apply::net_state] Destroyed checkpoint /org/freedesktop/NetworkManager/Checkpoint/158 dns-resolver: {} route-rules: {} routes: {} interfaces: - name: ovs-br0 type: ovs-bridge state: up bridge: options: stp: enabled: false port: - name: ovs-bond0 link-aggregation: mode: balance-slb port: - name: veth1 - name: veth0 ovs-db: {} ovn: {} :: [ 18:51:10 ] :: [ FAIL ] :: Command 'nmstatectl set ovs-bond.yaml' (Expected 1-255, got 0) :: [ 18:51:10 ] :: [ BEGIN ] :: Running 'systemctl status openvswitch' ○ openvswitch.service - Open vSwitch Loaded: loaded (/usr/lib/systemd/system/openvswitch.service; enabled; preset: disabled) Active: inactive (dead) since Mon 2023-12-18 18:51:10 EST; 240ms ago Duration: 7min 12.346s Process: 11542 ExecStart=/bin/true (code=exited, status=0/SUCCESS) Process: 46369 ExecStop=/bin/true (code=exited, status=0/SUCCESS) Main PID: 11542 (code=exited, status=0/SUCCESS) CPU: 1ms Dec 18 18:43:57 dell-per730-20.rhts.eng.pek2.redhat.com systemd[1]: Starting Open vSwitch... Dec 18 18:43:57 dell-per730-20.rhts.eng.pek2.redhat.com systemd[1]: Finished Open vSwitch. Dec 18 18:51:10 dell-per730-20.rhts.eng.pek2.redhat.com systemd[1]: Stopping Open vSwitch... Dec 18 18:51:10 dell-per730-20.rhts.eng.pek2.redhat.com systemd[1]: openvswitch.service: Deactivated successfully. Dec 18 18:51:10 dell-per730-20.rhts.eng.pek2.redhat.com systemd[1]: Stopped Open vSwitch. :: [ 18:51:10 ] :: [ FAIL ] :: Command 'systemctl status openvswitch' (Expected 0, got 3) :: [ 18:51:10 ] :: [ BEGIN ] :: Running 'ovs-vsctl show' ovs-vsctl: unix:/var/run/openvswitch/db.sock: database connection failed (No such file or directory) :: [ 18:51:10 ] :: [ FAIL ] :: Command 'ovs-vsctl show' (Expected 0, got 1) :: [ 18:51:10 ] :: [ BEGIN ] :: Running 'ip link' 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 14:18:77:6d:51:07 brd ff:ff:ff:ff:ff:ff altname enp1s0f0 3: eno2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000 link/ether 14:18:77:6d:51:08 brd ff:ff:ff:ff:ff:ff altname enp1s0f1 4: eno3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000 link/ether 14:18:77:6d:51:09 brd ff:ff:ff:ff:ff:ff altname enp2s0f0 5: eno4: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000 link/ether 14:18:77:6d:51:0a brd ff:ff:ff:ff:ff:ff altname enp2s0f1 6: enp6s0f0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000 link/ether 00:1b:21:97:78:cc brd ff:ff:ff:ff:ff:ff 7: enp6s0f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000 link/ether 00:1b:21:97:78:cd brd ff:ff:ff:ff:ff:ff 492: veth0_ep@veth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether c6:b1:d6:e3:f1:4a brd ff:ff:ff:ff:ff:ff 493: veth0@veth0_ep: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether 7e:21:59:6f:d9:2e brd ff:ff:ff:ff:ff:ff 494: veth1_ep@veth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether 7a:3c:92:e7:de:44 brd ff:ff:ff:ff:ff:ff 495: veth1@veth1_ep: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether 56:52:50:f5:69:a9 brd ff:ff:ff:ff:ff:ff :: [ 18:51:10 ] :: [ PASS ] :: Command 'ip link' (Expected 0, got 0) :: [ 18:51:10 ] :: [ BEGIN ] :: Running 'nmcli con' NAME UUID TYPE DEVICE eno1 d64b06cd-7e25-4479-8759-14a0ef3faba1 ethernet eno1 ovs-bond0-port 83f843f8-5ce1-4238-aa89-f7ae9c5a4a2a ovs-port ovs-bond0 ovs-br0-br bf4e0861-081a-44e7-839e-a0fc7b6735fd ovs-bridge ovs-br0 veth0 636568fa-f758-4edb-96fc-24de81a90000 ethernet veth0 veth1 074b6276-912b-4c7d-bc3b-71e76f3d1e7d ethernet veth1 lo edea6817-2297-4010-a870-9ea4f620aaf5 loopback lo eno2 8b66dd9c-fe76-4aaa-9c1d-4fda0e5bdf66 ethernet -- eno3 c2dfce42-d48b-4e72-af4f-77c30e21402b ethernet -- eno4 2e552db9-1311-4b71-873b-54c7f44f4109 ethernet -- enp6s0f0 ae59f1ce-3199-4ffd-af90-7a8d584ea267 ethernet -- enp6s0f1 d0385228-73b5-4767-b73f-563b5982a9c1 ethernet -- :: [ 18:51:10 ] :: [ PASS ] :: Command 'nmcli con' (Expected 0, got 0) :: [ 18:51:10 ] :: [ BEGIN ] :: Running 'nmcli dev' DEVICE TYPE STATE CONNECTION eno1 ethernet connected eno1 veth0 ethernet connected veth0 veth1 ethernet connected veth1 ovs-br0 ovs-bridge connected ovs-br0-br ovs-bond0 ovs-port connected ovs-bond0-port lo loopback connected (externally) lo eno2 ethernet disconnected -- eno3 ethernet disconnected -- eno4 ethernet disconnected -- enp6s0f0 ethernet disconnected -- enp6s0f1 ethernet disconnected -- veth0_ep ethernet disconnected -- veth1_ep ethernet disconnected -- :: [ 18:51:10 ] :: [ PASS ] :: Command 'nmcli dev' (Expected 0, got 0) :: [ 18:51:10 ] :: [ BEGIN ] :: Running 'pynms show' --- dns-resolver: config: {} running: search: - rhts.eng.pek2.redhat.com server: - 10.72.17.5 - 10.68.5.26 route-rules: config: [] routes: config: [] running: - destination: 2620:52:0:49c2::/64 metric: 100 next-hop-address: '::' next-hop-interface: eno1 table-id: 254 - destination: ::/0 metric: 100 next-hop-address: fe80::ee3e:f702:1d90:80a1 next-hop-interface: eno1 table-id: 254 - destination: 0.0.0.0/0 metric: 100 next-hop-address: 10.73.195.254 next-hop-interface: eno1 table-id: 254 interfaces: - name: eno1 type: ethernet state: up accept-all-mac-addresses: false ethernet: auto-negotiation: true duplex: full speed: 1000 ethtool: coalesce: rx-frames: 5 rx-usecs: 20 rx-usecs-irq: 0 stats-block-usecs: 0 tx-frames: 53 tx-frames-irq: 5 tx-usecs: 72 tx-usecs-irq: 0 feature: highdma: true rx-checksum: true rx-gro: true rx-gro-list: false rx-udp-gro-forwarding: false tx-checksum-ipv4: true tx-checksum-ipv6: true tx-generic-segmentation: true tx-nocache-copy: false tx-tcp-ecn-segmentation: true tx-tcp-mangleid-segmentation: false tx-tcp-segmentation: true tx-tcp6-segmentation: true pause: autoneg: true rx: true tx: true ring: rx: 200 rx-max: 2047 tx: 511 tx-max: 511 ipv4: enabled: true address: - ip: 10.73.194.142 preferred-life-time: 86106sec prefix-length: 23 valid-life-time: 86106sec auto-dns: true auto-gateway: true auto-route-table-id: 0 auto-routes: true dhcp: true dhcp-client-id: ll dhcp-send-hostname: true ipv6: enabled: true addr-gen-mode: eui64 address: - ip: 2620:52:0:49c2:1618:77ff:fe6d:5107 preferred-life-time: 604791sec prefix-length: 64 valid-life-time: 2591991sec - ip: fe80::1618:77ff:fe6d:5107 prefix-length: 64 auto-dns: true auto-gateway: true auto-route-table-id: 0 auto-routes: true autoconf: true dhcp: true dhcp-duid: ll dhcp-send-hostname: true lldp: enabled: false mac-address: 14:18:77:6D:51:07 max-mtu: 9000 min-mtu: 60 mptcp: address-flags: [] mtu: 1500 wait-ip: any - name: eno2 type: ethernet state: down accept-all-mac-addresses: false ethernet: auto-negotiation: true ethtool: coalesce: rx-frames: 5 rx-usecs: 20 rx-usecs-irq: 0 stats-block-usecs: 0 tx-frames: 53 tx-frames-irq: 5 tx-usecs: 72 tx-usecs-irq: 0 feature: highdma: true rx-checksum: true rx-gro: true rx-gro-list: false rx-udp-gro-forwarding: false tx-checksum-ipv4: true tx-checksum-ipv6: true tx-generic-segmentation: true tx-nocache-copy: false tx-tcp-ecn-segmentation: true tx-tcp-mangleid-segmentation: false tx-tcp-segmentation: true tx-tcp6-segmentation: true pause: autoneg: true rx: true tx: true ring: rx: 200 rx-max: 2047 tx: 511 tx-max: 511 ipv4: enabled: false ipv6: enabled: false mac-address: 14:18:77:6D:51:08 max-mtu: 9000 min-mtu: 60 mtu: 1500 - name: eno3 type: ethernet state: down accept-all-mac-addresses: false ethernet: auto-negotiation: true ethtool: coalesce: rx-frames: 5 rx-usecs: 20 rx-usecs-irq: 0 stats-block-usecs: 0 tx-frames: 53 tx-frames-irq: 5 tx-usecs: 72 tx-usecs-irq: 0 feature: highdma: true rx-checksum: true rx-gro: true rx-gro-list: false rx-udp-gro-forwarding: false tx-checksum-ipv4: true tx-checksum-ipv6: true tx-generic-segmentation: true tx-nocache-copy: false tx-tcp-ecn-segmentation: true tx-tcp-mangleid-segmentation: false tx-tcp-segmentation: true tx-tcp6-segmentation: true pause: autoneg: true rx: true tx: true ring: rx: 200 rx-max: 2047 tx: 511 tx-max: 511 ipv4: enabled: false ipv6: enabled: false mac-address: 14:18:77:6D:51:09 max-mtu: 9000 min-mtu: 60 mtu: 1500 - name: eno4 type: ethernet state: down accept-all-mac-addresses: false ethernet: auto-negotiation: true ethtool: coalesce: rx-frames: 5 rx-usecs: 20 rx-usecs-irq: 0 stats-block-usecs: 0 tx-frames: 53 tx-frames-irq: 5 tx-usecs: 72 tx-usecs-irq: 0 feature: highdma: true rx-checksum: true rx-gro: true rx-gro-list: false rx-udp-gro-forwarding: false tx-checksum-ipv4: true tx-checksum-ipv6: true tx-generic-segmentation: true tx-nocache-copy: false tx-tcp-ecn-segmentation: true tx-tcp-mangleid-segmentation: false tx-tcp-segmentation: true tx-tcp6-segmentation: true pause: autoneg: true rx: true tx: true ring: rx: 200 rx-max: 2047 tx: 511 tx-max: 511 ipv4: enabled: false ipv6: enabled: false mac-address: 14:18:77:6D:51:0A max-mtu: 9000 min-mtu: 60 mtu: 1500 - name: enp6s0f0 type: ethernet state: down accept-all-mac-addresses: false ethernet: auto-negotiation: true sr-iov: total-vfs: 0 vfs: [] ethtool: coalesce: rx-usecs: 3 tx-usecs: 0 feature: rx-all: false rx-checksum: true rx-gro: true rx-gro-list: false rx-hashing: true rx-udp-gro-forwarding: false rx-vlan-hw-parse: true tx-checksum-ip-generic: true tx-checksum-sctp: true tx-generic-segmentation: true tx-gre-csum-segmentation: true tx-gre-segmentation: true tx-gso-partial: true tx-ipxip4-segmentation: true tx-ipxip6-segmentation: true tx-nocache-copy: false tx-tcp-mangleid-segmentation: false tx-tcp-segmentation: true tx-tcp6-segmentation: true tx-udp-segmentation: true tx-udp_tnl-csum-segmentation: true tx-udp_tnl-segmentation: true tx-vlan-hw-insert: true pause: autoneg: true rx: true tx: true ring: rx: 256 rx-max: 4096 tx: 256 tx-max: 4096 ipv4: enabled: false ipv6: enabled: false mac-address: 00:1B:21:97:78:CC max-mtu: 9216 min-mtu: 68 mtu: 1500 - name: enp6s0f1 type: ethernet state: down accept-all-mac-addresses: false ethernet: auto-negotiation: true sr-iov: total-vfs: 0 vfs: [] ethtool: coalesce: rx-usecs: 3 tx-usecs: 0 feature: rx-all: false rx-checksum: true rx-gro: true rx-gro-list: false rx-hashing: true rx-udp-gro-forwarding: false rx-vlan-hw-parse: true tx-checksum-ip-generic: true tx-checksum-sctp: true tx-generic-segmentation: true tx-gre-csum-segmentation: true tx-gre-segmentation: true tx-gso-partial: true tx-ipxip4-segmentation: true tx-ipxip6-segmentation: true tx-nocache-copy: false tx-tcp-mangleid-segmentation: false tx-tcp-segmentation: true tx-tcp6-segmentation: true tx-udp-segmentation: true tx-udp_tnl-csum-segmentation: true tx-udp_tnl-segmentation: true tx-vlan-hw-insert: true pause: autoneg: true rx: true tx: true ring: rx: 256 rx-max: 4096 tx: 256 tx-max: 4096 ipv4: enabled: false ipv6: enabled: false mac-address: 00:1B:21:97:78:CD max-mtu: 9216 min-mtu: 68 mtu: 1500 - name: lo type: loopback state: up accept-all-mac-addresses: false ethtool: feature: rx-gro: true rx-gro-list: false rx-udp-gro-forwarding: false tx-generic-segmentation: true tx-gso-list: true tx-sctp-segmentation: true tx-tcp-ecn-segmentation: true tx-tcp-mangleid-segmentation: true tx-tcp-segmentation: true tx-tcp6-segmentation: true tx-udp-segmentation: true ipv4: enabled: true address: - ip: 127.0.0.1 prefix-length: 8 ipv6: enabled: true address: - ip: ::1 prefix-length: 128 mac-address: 00:00:00:00:00:00 mtu: 65536 - name: ovs-br0 type: ovs-bridge state: up ipv4: enabled: false dhcp: false ipv6: enabled: false autoconf: false dhcp: false lldp: enabled: false profile-name: ovs-br0-br wait-ip: any - name: veth0 type: veth state: up accept-all-mac-addresses: false ethtool: feature: highdma: true rx-checksum: true rx-gro: false rx-gro-list: false rx-udp-gro-forwarding: false rx-vlan-hw-parse: true rx-vlan-stag-hw-parse: true tx-checksum-ip-generic: true tx-checksum-sctp: true tx-generic-segmentation: true tx-gre-csum-segmentation: true tx-gre-segmentation: true tx-gso-list: true tx-ipxip4-segmentation: true tx-ipxip6-segmentation: true tx-nocache-copy: false tx-scatter-gather-fraglist: true tx-sctp-segmentation: true tx-tcp-ecn-segmentation: true tx-tcp-mangleid-segmentation: true tx-tcp-segmentation: true tx-tcp6-segmentation: true tx-udp-segmentation: true tx-udp_tnl-csum-segmentation: true tx-udp_tnl-segmentation: true tx-vlan-hw-insert: true tx-vlan-stag-hw-insert: true ipv4: enabled: false ipv6: enabled: true address: - ip: fe80::7c21:59ff:fe6f:d92e prefix-length: 64 lldp: enabled: false mac-address: 7E:21:59:6F:D9:2E max-mtu: 65535 min-mtu: 68 mtu: 1500 veth: peer: veth0_ep - name: veth0_ep type: veth state: down accept-all-mac-addresses: false ethtool: feature: highdma: true rx-checksum: true rx-gro: false rx-gro-list: false rx-udp-gro-forwarding: false rx-vlan-hw-parse: true rx-vlan-stag-hw-parse: true tx-checksum-ip-generic: true tx-checksum-sctp: true tx-generic-segmentation: true tx-gre-csum-segmentation: true tx-gre-segmentation: true tx-gso-list: true tx-ipxip4-segmentation: true tx-ipxip6-segmentation: true tx-nocache-copy: false tx-scatter-gather-fraglist: true tx-sctp-segmentation: true tx-tcp-ecn-segmentation: true tx-tcp-mangleid-segmentation: true tx-tcp-segmentation: true tx-tcp6-segmentation: true tx-udp-segmentation: true tx-udp_tnl-csum-segmentation: true tx-udp_tnl-segmentation: true tx-vlan-hw-insert: true tx-vlan-stag-hw-insert: true ipv4: enabled: false ipv6: enabled: true address: - ip: fe80::c4b1:d6ff:fee3:f14a prefix-length: 64 mac-address: C6:B1:D6:E3:F1:4A max-mtu: 65535 min-mtu: 68 mtu: 1500 veth: peer: veth0 - name: veth1 type: veth state: up accept-all-mac-addresses: false ethtool: feature: highdma: true rx-checksum: true rx-gro: false rx-gro-list: false rx-udp-gro-forwarding: false rx-vlan-hw-parse: true rx-vlan-stag-hw-parse: true tx-checksum-ip-generic: true tx-checksum-sctp: true tx-generic-segmentation: true tx-gre-csum-segmentation: true tx-gre-segmentation: true tx-gso-list: true tx-ipxip4-segmentation: true tx-ipxip6-segmentation: true tx-nocache-copy: false tx-scatter-gather-fraglist: true tx-sctp-segmentation: true tx-tcp-ecn-segmentation: true tx-tcp-mangleid-segmentation: true tx-tcp-segmentation: true tx-tcp6-segmentation: true tx-udp-segmentation: true tx-udp_tnl-csum-segmentation: true tx-udp_tnl-segmentation: true tx-vlan-hw-insert: true tx-vlan-stag-hw-insert: true ipv4: enabled: false ipv6: enabled: true address: - ip: fe80::5452:50ff:fef5:69a9 prefix-length: 64 lldp: enabled: false mac-address: 56:52:50:F5:69:A9 max-mtu: 65535 min-mtu: 68 mtu: 1500 veth: peer: veth1_ep - name: veth1_ep type: veth state: down accept-all-mac-addresses: false ethtool: feature: highdma: true rx-checksum: true rx-gro: false rx-gro-list: false rx-udp-gro-forwarding: false rx-vlan-hw-parse: true rx-vlan-stag-hw-parse: true tx-checksum-ip-generic: true tx-checksum-sctp: true tx-generic-segmentation: true tx-gre-csum-segmentation: true tx-gre-segmentation: true tx-gso-list: true tx-ipxip4-segmentation: true tx-ipxip6-segmentation: true tx-nocache-copy: false tx-scatter-gather-fraglist: true tx-sctp-segmentation: true tx-tcp-ecn-segmentation: true tx-tcp-mangleid-segmentation: true tx-tcp-segmentation: true tx-tcp6-segmentation: true tx-udp-segmentation: true tx-udp_tnl-csum-segmentation: true tx-udp_tnl-segmentation: true tx-vlan-hw-insert: true tx-vlan-stag-hw-insert: true ipv4: enabled: false ipv6: enabled: true address: - ip: fe80::783c:92ff:fee7:de44 prefix-length: 64 mac-address: 7A:3C:92:E7:DE:44 max-mtu: 65535 min-mtu: 68 mtu: 1500 veth: peer: veth1 hostname: config: dell-per730-20.rhts.eng.pek2.redhat.com running: dell-per730-20.rhts.eng.pek2.redhat.com