Fedora Kernel 6.11.11 crasht auf einigen Geräten beim Booten

Treue Leser wissen, daß ich ein TerraPad Tablet mit Linux drauf habe. Da wurde der neue Kernel 6.11.11 gebootet, was in einem fatalen Misserfolg geendet hat:

Dez 13 01:42:14 fedora kernel: watchdog: BUG: soft lockup – CPU#9 stuck for 52s! [kworker/9:4:347]
Dez 13 01:42:14 fedora kernel: CPU#9 Utilization every 4s during lockup:
Dez 13 01:42:14 fedora kernel: #1: 101% system, 0% softirq, 0% hardirq, 0% idle
Dez 13 01:42:14 fedora kernel: #2: 100% system, 0% softirq, 0% hardirq, 0% idle
Dez 13 01:42:14 fedora kernel: #3: 100% system, 0% softirq, 0% hardirq, 0% idle
Dez 13 01:42:14 fedora kernel: #4: 100% system, 0% softirq, 0% hardirq, 0% idle
Dez 13 01:42:14 fedora kernel: #5: 101% system, 0% softirq, 1% hardirq, 0% idle
Dez 13 01:42:14 fedora kernel: Modules linked in: nf_conntrack_netbios_ns nf_conntrack_broadcast nft_fib_inet nft_fib_ipv4 nft_fib_ipv6 nft_fib nft_reject_inet nf_reject_ipv4 nf_reject_ipv6 nft_reject nft_ct nft_chain_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 ip_set nf_tables qrtr sunrpc bnep binfmt_misc vfat fat snd_sof_pci_intel_tgl snd_sof_pci_intel_cnl snd_sof_intel_hda_generic soundwire_intel soundwire_cadence snd_sof_intel_hda_common snd_sof_intel_hda_mlink snd_sof_intel_hda snd_sof_pci snd_sof_xtensa_dsp iwlmvm snd_sof snd_hda_codec_hdmi snd_sof_utils snd_soc_hdac_hda snd_soc_acpi_intel_match soundwire_generic_allocation snd_soc_acpi soundwire_bus snd_hda_codec_realtek snd_soc_avs mac80211 snd_hda_codec_generic snd_soc_hda_codec snd_hda_ext_core snd_hda_scodec_component snd_soc_core intel_uncore_frequency intel_uncore_frequency_common libarc4 x86_pkg_temp_thermal snd_compress intel_powerclamp ac97_bus snd_pcm_dmaengine coretemp snd_hda_intel snd_intel_dspcfg kvm_intel snd_intel_sdw_acpi intel_ipu6_isys snd_hda_codec
Dez 13 01:42:14 fedora kernel: btusb videobuf2_dma_contig btrtl videobuf2_memops videobuf2_v4l2 kvm snd_hda_core iwlwifi videobuf2_common snd_hwdep btintel iTCO_wdt spi_nor snd_seq intel_pmc_bxt btbcm snd_seq_device mtd mei_pxp mei_hdcp iTCO_vendor_support rapl btmtk joydev intel_rapl_msr snd_pcm processor_thermal_device_pci cfg80211 processor_thermal_device intel_cstate bluetooth snd_timer processor_thermal_wt_hint intel_uncore snd spi_intel_pci wmi_bmof i2c_i801 mei_me processor_thermal_rfim pcspkr i2c_smbus soundcore spi_intel idma64 processor_thermal_rapl mei mxc4005 rtsx_usb_ms intel_ipu6 rfkill intel_rapl_common industrialio_triggered_buffer processor_thermal_wt_req ipu_bridge memstick kfifo_buf igen6_edac processor_thermal_power_floor processor_thermal_mbox industrialio goodix_ts int3403_thermal intel_skl_int3472_tps68470 soc_button_array int340x_thermal_zone ov2740 v4l2_fwnode intel_pmc_core tps68470_regulator v4l2_async clk_tps68470 intel_hid intel_vsec int3400_thermal sparse_keymap dptf_power pmt_telemetry acpi_thermal_rel
Dez 13 01:42:14 fedora kernel: intel_skl_int3472_discrete pmt_class acpi_tad acpi_pad v4l2loopback(OE) videodev mc loop nfnetlink zram dm_crypt xe drm_ttm_helper gpu_sched drm_suballoc_helper drm_gpuvm drm_exec mmc_block rtsx_usb_sdmmc mmc_core rtsx_usb i915 crct10dif_pclmul crc32_pclmul crc32c_intel i2c_algo_bit polyval_clmulni drm_buddy polyval_generic ttm nvme ghash_clmulni_intel drm_display_helper sha512_ssse3 nvme_core sha256_ssse3 sha1_ssse3 cec nvme_auth video wmi pinctrl_tigerlake serio_raw i2c_dev fuse
Dez 13 01:42:14 fedora kernel: CPU: 9 UID: 0 PID: 347 Comm: kworker/9:4 Tainted: G D W OEL 6.11.11-300.fc41.x86_64 #1
Dez 13 01:42:14 fedora kernel: Tainted: [D]=DIE, [W]=WARN, [O]=OOT_MODULE, [E]=UNSIGNED_MODULE, [L]=SOFTLOCKUP
Dez 13 01:42:14 fedora kernel: Hardware name: Wortmann_AG 1220142;1470536/S1203i512, BIOS WHJ-BI-123-SF133ALR110-S8GB-328-G 10/31/2023
Dez 13 01:42:14 fedora kernel: Workqueue: events netstamp_clear
Dez 13 01:42:14 fedora kernel: RIP: 0010:smp_call_function_many_cond+0x12b/0x540
Dez 13 01:42:14 fedora kernel: Code: 36 48 63 e8 49 8b 1c 24 48 81 fd 00 20 00 00 0f 83 db 03 00 00 48 03 1c ed 20 1e cc b2 8b 53 08 48 89 de 83 e2 01 74 0a f3 90 <8b> 4e 08 83 e1 01 75 f6 83 c0 01 eb af 48 83 c4 38 5b 5d 41 5c 41
Dez 13 01:42:14 fedora kernel: RSP: 0000:ffffc22040533d70 EFLAGS: 00000202
Dez 13 01:42:14 fedora kernel: RAX: 0000000000000001 RBX: ffff9cdb8f6bee20 RCX: 0000000000000001
Dez 13 01:42:14 fedora kernel: RDX: 0000000000000001 RSI: ffff9cdb8f6bee20 RDI: ffff9cda0018cc58
Dez 13 01:42:14 fedora kernel: RBP: 0000000000000001 R08: 0000000000000001 R09: ffff9cda0018c040
Dez 13 01:42:14 fedora kernel: R10: 0000000000000007 R11: 0000000000000000 R12: ffff9cdb8fab7b00
Dez 13 01:42:14 fedora kernel: R13: ffff9cda0018c040 R14: 0000000000000009 R15: 0000000000000001
Dez 13 01:42:14 fedora kernel: FS: 0000000000000000(0000) GS:ffff9cdb8fa80000(0000) knlGS:0000000000000000
Dez 13 01:42:14 fedora kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Dez 13 01:42:14 fedora kernel: CR2: 0000557beae29360 CR3: 00000001f442a000 CR4: 0000000000f50ef0
Dez 13 01:42:14 fedora kernel: PKRU: 55555554
Dez 13 01:42:14 fedora kernel: Call Trace:
Dez 13 01:42:14 fedora kernel: <IRQ>
Dez 13 01:42:14 fedora kernel: ? watchdog_timer_fn.cold+0x233/0x311
Dez 13 01:42:14 fedora kernel: ? __pfx_watchdog_timer_fn+0x10/0x10
Dez 13 01:42:14 fedora kernel: ? __hrtimer_run_queues+0x113/0x280
Dez 13 01:42:14 fedora kernel: ? ktime_get+0x3e/0xf0
Dez 13 01:42:14 fedora kernel: ? hrtimer_interrupt+0xfa/0x210
Dez 13 01:42:14 fedora kernel: ? __sysvec_apic_timer_interrupt+0x52/0x100
Dez 13 01:42:14 fedora kernel: ? sysvec_apic_timer_interrupt+0x6c/0x90
Dez 13 01:42:14 fedora kernel: </IRQ>
Dez 13 01:42:14 fedora kernel: <TASK>
Dez 13 01:42:14 fedora kernel: ? asm_sysvec_apic_timer_interrupt+0x1a/0x20
Dez 13 01:42:14 fedora kernel: ? smp_call_function_many_cond+0x12b/0x540
Dez 13 01:42:14 fedora kernel: ? __pfx_do_sync_core+0x10/0x10
Dez 13 01:42:14 fedora kernel: on_each_cpu_cond_mask+0x24/0x40
Dez 13 01:42:14 fedora kernel: text_poke_bp_batch+0xc1/0x300
Dez 13 01:42:14 fedora kernel: ? arch_jump_label_transform_queue+0x57/0x80
Dez 13 01:42:14 fedora kernel: text_poke_finish+0x1f/0x30
Dez 13 01:42:14 fedora kernel: arch_jump_label_transform_apply+0x1a/0x30
Dez 13 01:42:14 fedora kernel: static_key_enable_cpuslocked+0x63/0x90
Dez 13 01:42:14 fedora kernel: static_key_enable+0x1a/0x20
Dez 13 01:42:14 fedora kernel: process_one_work+0x176/0x330
Dez 13 01:42:14 fedora kernel: worker_thread+0x252/0x390
Dez 13 01:42:14 fedora kernel: ? __pfx_worker_thread+0x10/0x10
Dez 13 01:42:14 fedora kernel: kthread+0xcf/0x100
Dez 13 01:42:14 fedora kernel: ? __pfx_kthread+0x10/0x10
Dez 13 01:42:14 fedora kernel: ret_from_fork+0x31/0x50
Dez 13 01:42:14 fedora kernel: ? __pfx_kthread+0x10/0x10
Dez 13 01:42:14 fedora kernel: ret_from_fork_asm+0x1a/0x30
Dez 13 01:42:14 fedora kernel: </TASK>
Dez 13 01:42:14 fedora kernel: watchdog: BUG: soft lockup – CPU#8 stuck for 48s! [rcu_exp_gp_kthr:20]
Dez 13 01:42:14 fedora kernel: CPU#8 Utilization every 4s during lockup:
Dez 13 01:42:14 fedora kernel: #1: 101% system, 0% softirq, 0% hardirq, 0% idle
Dez 13 01:42:14 fedora kernel: #2: 100% system, 0% softirq, 0% hardirq, 0% idle
Dez 13 01:42:14 fedora kernel: #3: 100% system, 0% softirq, 0% hardirq, 0% idle
Dez 13 01:42:14 fedora kernel: #4: 100% system, 0% softirq, 1% hardirq, 0% idle
Dez 13 01:42:14 fedora kernel: #5: 101% system, 0% softirq, 0% hardirq, 0% idle
Dez 13 01:42:14 fedora kernel: Modules linked in: nf_conntrack_netbios_ns nf_conntrack_broadcast nft_fib_inet nft_fib_ipv4 nft_fib_ipv6 nft_fib nft_reject_inet nf_reject_ipv4 nf_reject_ipv6 nft_reject nft_ct nft_chain_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 ip_set nf_tables qrtr sunrpc bnep binfmt_misc vfat fat snd_sof_pci_intel_tgl snd_sof_pci_intel_cnl snd_sof_intel_hda_generic soundwire_intel soundwire_cadence snd_sof_intel_hda_common snd_sof_intel_hda_mlink snd_sof_intel_hda snd_sof_pci snd_sof_xtensa_dsp iwlmvm snd_sof snd_hda_codec_hdmi snd_sof_utils snd_soc_hdac_hda snd_soc_acpi_intel_match soundwire_generic_allocation snd_soc_acpi soundwire_bus snd_hda_codec_realtek snd_soc_avs mac80211 snd_hda_codec_generic snd_soc_hda_codec snd_hda_ext_core snd_hda_scodec_component snd_soc_core intel_uncore_frequency intel_uncore_frequency_common libarc4 x86_pkg_temp_thermal snd_compress intel_powerclamp ac97_bus snd_pcm_dmaengine coretemp snd_hda_intel snd_intel_dspcfg kvm_intel snd_intel_sdw_acpi intel_ipu6_isys snd_hda_codec
Dez 13 01:42:14 fedora kernel: btusb videobuf2_dma_contig btrtl videobuf2_memops videobuf2_v4l2 kvm snd_hda_core iwlwifi videobuf2_common snd_hwdep btintel iTCO_wdt spi_nor snd_seq intel_pmc_bxt btbcm snd_seq_device mtd mei_pxp mei_hdcp iTCO_vendor_support rapl btmtk joydev intel_rapl_msr snd_pcm processor_thermal_device_pci cfg80211 processor_thermal_device intel_cstate bluetooth snd_timer processor_thermal_wt_hint intel_uncore snd spi_intel_pci wmi_bmof i2c_i801 mei_me processor_thermal_rfim pcspkr i2c_smbus soundcore spi_intel idma64 processor_thermal_rapl mei mxc4005 rtsx_usb_ms intel_ipu6 rfkill intel_rapl_common industrialio_triggered_buffer processor_thermal_wt_req ipu_bridge memstick kfifo_buf igen6_edac processor_thermal_power_floor processor_thermal_mbox industrialio goodix_ts int3403_thermal intel_skl_int3472_tps68470 soc_button_array int340x_thermal_zone ov2740 v4l2_fwnode intel_pmc_core tps68470_regulator v4l2_async clk_tps68470 intel_hid intel_vsec int3400_thermal sparse_keymap dptf_power pmt_telemetry acpi_thermal_rel
Dez 13 01:42:14 fedora kernel: intel_skl_int3472_discrete pmt_class acpi_tad acpi_pad v4l2loopback(OE) videodev mc loop nfnetlink zram dm_crypt xe drm_ttm_helper gpu_sched drm_suballoc_helper drm_gpuvm drm_exec mmc_block rtsx_usb_sdmmc mmc_core rtsx_usb i915 crct10dif_pclmul crc32_pclmul crc32c_intel i2c_algo_bit polyval_clmulni drm_buddy polyval_generic ttm nvme ghash_clmulni_intel drm_display_helper sha512_ssse3 nvme_core sha256_ssse3 sha1_ssse3 cec nvme_auth video wmi pinctrl_tigerlake serio_raw i2c_dev fuse
Dez 13 01:42:14 fedora kernel: CPU: 8 UID: 0 PID: 20 Comm: rcu_exp_gp_kthr Tainted: G D W OEL 6.11.11-300.fc41.x86_64 #1
Dez 13 01:42:14 fedora kernel: Tainted: [D]=DIE, [W]=WARN, [O]=OOT_MODULE, [E]=UNSIGNED_MODULE, [L]=SOFTLOCKUP
Dez 13 01:42:14 fedora kernel: Hardware name: Wortmann_AG 1220142;1470536/S1203i512, BIOS WHJ-BI-123-SF133ALR110-S8GB-328-G 10/31/2023
Dez 13 01:42:14 fedora kernel: RIP: 0010:smp_call_function_single+0xe9/0x140
Dez 13 01:42:16 fedora systemd[2110]: org.gnome.Shell@wayland.service: State ’stop-watchdog‘ timed out. Killing.
Dez 13 01:42:16 fedora systemd[2110]: org.gnome.Shell@wayland.service: Killing process 2269 (gnome-shell) with signal SIGKILL.
Dez 13 01:42:16 fedora systemd[2110]: org.gnome.Shell@wayland.service: Killing process 2291 (pool-spawner) with signal SIGKILL.
Dez 13 01:42:16 fedora systemd[2110]: org.gnome.Shell@wayland.service: Killing process 2292 (gmain) with signal SIGKILL.
Dez 13 01:42:16 fedora systemd[2110]: org.gnome.Shell@wayland.service: Killing process 2294 (gdbus) with signal SIGKILL.
Dez 13 01:42:16 fedora systemd[2110]: org.gnome.Shell@wayland.service: Killing process 2295 (dconf worker) with signal SIGKILL.

Fedora Kernel 6.11.11 crasht auf einigen Geräten beim Booten

Zum Glück für alle Linuxuser gibts es mehr als einen Kernel auf so einem System, daher bekommt man derartige Probleme leicht wieder in den Griff. Da ein Boot mit einem alten Kernel ( einfachste Option das zu lösen ) Fedora, den Kernel und die neue ov2740 Version nicht weiterbringen, habe ich auf anraten Kernel 6.13.0 ausprobiert. OP SUCCESS \o/

Der Kernel bootet fehlerfrei, nur leider immer noch den ungefixten ov2740 Kameratreiber 🙁

Zu dem Schlamassel gibt es dann auch einen Eintrag von Hans De Goede: https://hansdegoede.dreamwidth.org/29039.html

Alle Kernel 6.11.11 – 6.12.4 sind betroffen, 6.12.5 soll das beheben. Also macht einfach solange mit dem 6.11.10 Kernel weiter, bis 6.12.5 oder gleich 6.13 kommt, je nach dem 😉

TerraPad: Fedora mit First Light \o/

Wer die Sache mit dem Kameras auf dem TerraPad verfolgt hat, weiß ja, daß heute eine Debugsession mit Hans de Goede läuft. Eine partiell erfolgreiche Sitzung 😀

TerraPad: Fedora mit First Light \o/

der Angriff auf die Frontkamera des ov2740 Chipduos war erfolgreich, wir haben ein Bild!

Stand 12:30 Uhr:

Was wir nicht haben ist ein zweiter Sensor, weil Sensor #1 auf zwei I2C Adressen antwortet, statt nur auf einer antwortet.

Stand 12:50 Uhr:

Wir haben zwei funktionierende Sensoren!

Es fehlt noch die Chipkalibrierung für Weißabgleich und dererlei Dinge, aber das müssen jetzt andere liefern.

Ich habe mich da mal selbst videokonferenzt 😉

Schon spannend, wie WEBRTC das Gerausche platt macht. Di9e Chips scheinen entweder Fehler zu haben oder das Post-Processing ist fehlerhaft. Es gibt so etwas wie tote Pixel, und das sollte nun gar nicht sein. Schaut mal links(Terrapad) genauer hin: rote und grüne feste Pixel.

Die beiden Cams kann Firefox übrigens gleichzeitig ansprechen, wie sich rausstellte.

Großen Dank an Hans de Goede!

Und jetzt zur Releaseparty des Kerneldrivers fahren.. bis später 😉

 

 

 

Proxmox: Fedora 40 zerstört Filesystem wegen uraltem SCSI Bug

Es läuft nicht gut für neue Fedora Versionen. Erst diese Gnome 47 Bugs auf dem Tablet bei Fedora 41, dann die Sache mit dem Wayland & Cinnamon und jetzt hat es uns bei Fedora 40 fast einen Server gekostet 🙁

Proxmox: Fedora 40 zerstört Filesystem wegen uraltem SCSI Bug

Jetzt muß ich ein bisschen ausholen:

Anfang des Jahres haben wir einen neuen Server mit Proxmox als Virtualisierungsgrundlage installiert. Wenn man der Hilfe zur Einrichtung von VMs und der besten Auswahl des Festplattentreiber glaubt, dann ist SCSI die beste Wahl: Beste Performance, abgehangenes System, seit 1995 im Einsatz, simuliert jede Menge Platten gleichzeitig usw.

Also wurden, ohne groß darüber nachzudenken, die VMs im Standardmodus mit SCSI angelegt. Dann zogen die Daten auf den Server und er lief genauso gut, wie wir das von der Hardware erwartet hatten. Bis letzten Mittwoch  22 Uhr 🙁

Gut das so etwas um 22 Uhr gemacht wird!

Um 22 Uhr am Mittwoch wurde das System von Fedora 39 auf Fedora 40 aktualisiert, da Fedora 39 EOL hatte. Da man das nicht simulieren kann, wie ein System reagiert, legt man davor einen Snapshot an. Dann kann man nach dem Update mit geringen Verlusten zurück zu einem funktionierenden System, wenn man denn merkt, daß es nicht geht 🙁

Eine halbe Stunde nach dem Update fiel mir auf, daß ich vergessen hatte das Datenbankupgradescipt laufen zu lassen, was per se nicht weiter schlimm war, da man das jederzeit nachholen kann. Das Mysql Upgradescript behebt bekannte Fehler der Vorgängerversionen an den Datenbeständen und optimiert das alles. Jetzt hatten wir da 8 GB in 400 Datenbanken drin, so daß Mysql ein bisschen was zu tun hatte und dann passierte es: Das System blieb stehen!

Load von 600, 100% iowait auf allen Kernen, keine Programmneustarts mehr und keine ersichtliche Ursache, was das ausgelöst hat auf einer 7 GB/s NVME.. und dann… puff.. löste sich der Stillstand von alleine nach einigen Minuten auf. Da dachte ich noch, daß Upgradescript wäre Schuld, was es im Prinzip auch war, aber es war nicht die Ursache, sondern nur der Auslöser. Die wahre Ursache zeigte sich erst, nachdem sich das mehrfach wiederholt hatte, ohne das das Script lief.

Der Kernel loggte es zum Glück

hier ein kleiner Auszug was passierte:

[ +4,915102] sd 2:0:0:0: ABORT operation timed-out.
[ +0,009657] scsi target2:0:0: TARGET RESET operation started
[Nov15 00:20] scsi target2:0:0: TARGET RESET operation timed-out.
[ +0,000006] scsi target2:0:1: TARGET RESET operation started
[Nov15 00:21] scsi target2:0:1: TARGET RESET operation timed-out.
[ +9,830340] sd 2:0:0:0: [sda] tag#389 ABORT operation started
[ +0,002342] sym0: SCSI BUS reset detected.
[ +0,007025] sym0: SCSI BUS has been reset.
[ +0,000016] sd 2:0:0:0: ABORT operation complete.
[ +3,193349] sd 2:0:1:0: Power-on or device reset occurred
[ +0,000056] sd 2:0:0:0: [sda] tag#389 BUS RESET operation started
[ +0,002306] sym0: SCSI BUS reset detected.
[ +0,007090] sym0: SCSI BUS has been reset.
[ +0,000010] sd 2:0:0:0: BUS RESET operation complete.
[ +10,058980] sd 2:0:0:0: Power-on or device reset occurred
[ +0,016222] sd 2:0:1:0: [sdb] tag#393 timing out command, waited 180s
[ +0,000005] sd 2:0:1:0: [sdb] tag#393 FAILED Result: hostbyte=DID_REQUEUE driverbyte=DRIVER_OK cmd_age=279s
[ +0,000002] sd 2:0:1:0: [sdb] tag#393 CDB: Write(10) 2a 00 00 00 a6 40 00 02 00 00
[ +0,000001] I/O error, dev sdb, sector 42560 op 0x1WRITE) flags 0x8800 phys_seg 64 prio class 2
[ +0,000003] I/O error, dev sdb, sector 42560 op 0x1WRITE) flags 0x8800 phys_seg 64 prio class 2
[ +0,000002] sd 2:0:1:0: [sdb] tag#394 timing out command, waited 180s
[ +0,000002] sd 2:0:1:0: [sdb] tag#394 FAILED Result: hostbyte=DID_REQUEUE driverbyte=DRIVER_OK cmd_age=279s
[ +0,000001] sd 2:0:1:0: [sdb] tag#394 CDB: Write(10) 2a 00 00 00 a3 40 00 03 00 00
[ +0,000000] I/O error, dev sdb, sector 41792 op 0x1WRITE) flags 0xc800 phys_seg 96 prio class 2
[ +0,000001] I/O error, dev sdb, sector 41792 op 0x1WRITE) flags 0xc800 phys_seg 96 prio class 2
[ +0,000002] sd 2:0:1:0: [sdb] tag#395 timing out command, waited 180s
[ +0,000001] sd 2:0:1:0: [sdb] tag#395 FAILED Result: hostbyte=DID_REQUEUE driverbyte=DRIVER_OK cmd_age=279s
[ +0,000001] sd 2:0:1:0: [sdb] tag#395 CDB: Write(10) 2a 00 00 00 a0 40 00 03 00 00
[ +0,000000] I/O error, dev sdb, sector 41024 op 0x1WRITE) flags 0xc800 phys_seg 96 prio class 2
[ +0,000001] I/O error, dev sdb, sector 41024 op 0x1WRITE) flags 0xc800 phys_seg 96 prio class 2
[ +0,000013] sd 2:0:1:0: [sdb] tag#396 timing out command, waited 180s
[ +0,000002] sd 2:0:1:0: [sdb] tag#396 FAILED Result: hostbyte=DID_REQUEUE driverbyte=DRIVER_OK cmd_age=279s
[ +0,000000] sd 2:0:1:0: [sdb] tag#396 CDB: Write(10) 2a 00 00 00 9e 40 00 02 00 00
[ +0,000001] I/O error, dev sdb, sector 40512 op 0x1WRITE) flags 0x8800 phys_seg 64 prio class 2
[ +0,000000] I/O error, dev sdb, sector 40512 op 0x1WRITE) flags 0x8800 phys_seg 64 prio class 2

Wie man sehen kann, sprang die simulierte Festplatte vom simulierten Bus runter. Wer bitte baut so eine Scheiße in ein Virtualisierungssystem ein?????? Stellt sich raus, niemand. Die Ursache liegt im Gastkernel, denn im RingBuffer vom Kernel von Proxmox war gar nichts zu sehen. Es handelte sich also um eine interne Angelegenheit der VM.

Aber wie beheben wir das?

Überlegung: „Der SCSI Treiber ist ein Sub-System vom Kernel, da wird wohl der aktuelle Kernel buggy sein.“

Also rebootet das System mit dem Kernel der vorher wunderbar lief. Das Systeme bootete und lief… denkste! Das ganze ging dermaßen in die Hose, daß der Kernel gecrasht ist!

Am Anfang lief es gut, aber das hat es mit dem Fedora 40 Kernel auch, bis es dann nicht mehr lief.

[ +26,879827] watchdog: BUG: soft lockup – CPU#1 stuck for 118s! [kworker/1:3:120797]
[ +0,000015] Modules linked in: xt_owner ipt_REJECT nf_reject_ipv4 xt_connlimit nf_conncount nf_conntrack nf_defrag_ipv6 nf_defrag_ip
v4 ip6table_filter ip6_tables xt_multiport iptable_filter ip_tables cfg80211 rfkill sunrpc intel_rapl_msr intel_rapl_common intel_unco
re_frequency_common nfit libnvdimm kvm_intel kvm irqbypass i2c_piix4 rapl virtio_balloon joydev fuse loop nfnetlink crct10dif_pclmul c
rc32_pclmul crc32c_intel polyval_clmulni bochs polyval_generic ghash_clmulni_intel sha512_ssse3 drm_vram_helper sha256_ssse3 drm_ttm_h
elper virtio_net ttm sym53c8xx sha1_ssse3 net_failover scsi_transport_spi failover serio_raw ata_generic pata_acpi qemu_fw_cfg
[ +0,000024] CPU: 1 PID: 120797 Comm: kworker/1:3 Tainted: G L 6.8.11-200.fc39.x86_64 #1
[ +0,000002] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014
[ +0,000001] Workqueue: events netstamp_clear
[ +0,000006] RIP: 0010:smp_call_function_many_cond+0x12e/0x560
[ +0,000004] Code: 73 35 48 63 e8 49 8b 1f 48 81 fd 00 20 00 00 0f 83 f6 03 00 00 48 03 1c ed a0 4c c0 bb 8b 53 08 48 89 de 83 e2 01
74 0a f3 90 <8b> 4e 08 83 e1 01 75 f6 83 c0 01 eb b1 48 83 c4 40 5b 5d 41 5c 41
[ +0,000001] RSP: 0018:ff36e8b984593d60 EFLAGS: 00000202
[ +0,000001] RAX: 0000000000000000 RBX: ff26fb3f2483ce00 RCX: 0000000000000001
[ +0,000001] RDX: 0000000000000001 RSI: ff26fb3f2483ce00 RDI: ff26fb3940156b98
[ +0,000000] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000006
[ +0,000001] R10: 0000000000000002 R11: 0000000000000000 R12: ff26fb3f248b5ac0
[ +0,000000] R13: 0000000000000001 R14: 0000000000000001 R15: ff26fb3f248b5ac0
[ +0,000001] FS: 0000000000000000(0000) GS:ff26fb3f24880000(0000) knlGS:0000000000000000
[ +0,000001] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ +0,000001] CR2: 000014bce6b69d60 CR3: 000000010d428003 CR4: 0000000000771ef0
[ +0,000002] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ +0,000001] DR3: 0000000000000000 DR6: 00000000fffe07f0 DR7: 0000000000000400
[ +0,000000] PKRU: 55555554
[ +0,000001] Call Trace:
[ +0,000002] <IRQ>
[ +0,000002] ? watchdog_timer_fn+0x1e6/0x270
[ +0,000003] ? __pfx_watchdog_timer_fn+0x10/0x10
[ +0,000002] ? __hrtimer_run_queues+0x113/0x280
[ +0,000001] ? ktime_get_update_offsets_now+0x49/0x110
[ +0,000004] ? hrtimer_interrupt+0xf8/0x230
[ +0,000001] ? __sysvec_apic_timer_interrupt+0x4d/0x140
[ +0,000003] ? sysvec_apic_timer_interrupt+0x6d/0x90
[ +0,000002] </IRQ>
[ +0,000001] <TASK>
[ +0,000000] ? asm_sysvec_apic_timer_interrupt+0x1a/0x20
[ +0,000004] ? smp_call_function_many_cond+0x12e/0x560
[ +0,000001] ? __pfx_do_sync_core+0x10/0x10
[ +0,000003] on_each_cpu_cond_mask+0x24/0x40
[ +0,000001] text_poke_bp_batch+0xbe/0x300
[ +0,000001] ? arch_jump_label_transform_queue+0x57/0x80
[ +0,000003] text_poke_finish+0x1f/0x30
[ +0,000002] arch_jump_label_transform_apply+0x1a/0x30
[ +0,000002] static_key_enable_cpuslocked+0x63/0x90
[ +0,000003] static_key_enable+0x1a/0x20
[ +0,000001] process_one_work+0x173/0x340
[ +0,000004] worker_thread+0x27b/0x3a0
[ +0,000002] ? __pfx_worker_thread+0x10/0x10
[ +0,000001] kthread+0xe5/0x120
[ +0,000002] ? __pfx_kthread+0x10/0x10
[ +0,000001] ret_from_fork+0x31/0x50
[ +0,000002] ? __pfx_kthread+0x10/0x10

Ihr könnt Euch sicher denken, daß derartige IO Fehler nicht gut für das Filesystem und den Datenbestand sind, wenn man auch noch hart reseten muß, um die VM wieder zu starten.  Datenverlust vorprogrammiert.

Nächster Versuch

Überlegung: „Das ist SCSI, aber Proxmox kann auch SATA.“

Also biss ich um 2:30 Uhr in den sauren Apfel und wir hatten Glück, das noch genug Platz auf der Storage war, wir reden hier nämlich von TBweise Platz:

  1. VM gestoppt
  2. neue Festplatten exakt gleicher Größe angelegt, aber als SATA Gerät.
  3. VM mit Fedora 38 LiveDisk gestartet
  4. Alte Platten 1:1 auf die neuen Platten kopiert:
    dd if=/dev/sdalt of=/dev/sdneu bs=128M status=progress
  5. VM umkonfiguriert, so daß SATA zuerst bootet
  6. VM gestartet
  7. gebannt auf den RingBuffer vom Kerne gestarrt

Da die Maschine beim nächtlichen Backup abgestürzt war, muß das eh nachgeholt werden und wenn dieser Stresstest durchgehen würde, dann wäre das Problem bestimmt gelöst. Also startete das Backup durch und siehe da, nicht ein aufmucken, keine Einträge im Kernel. Geschafft!

Gegen 5 war ich dann endlich im Bett, weil wir natürlich im jugendlichen Leichtsinn mehr als einen Server auf dem Proxmox aktualisiert hatten und die brauchten die gleiche Prozedur 🙁

Die Geister von 2015 holen einen immer wieder ein

Ihr lest richtig: 2015. 2015 wurde ein Fehler im Linux Kernel SCSI Subsystem behoben, der genau diese Auswirkungen hatte. Und welche waren das? Das SCSI Subsystem hat auf die Steuersignale vom Controller nicht richtig reagiert und dann eine Art Deadlock erschaffen, wenn da zuviele IO Requests durchgingen, der erst nach 5-10 MInuten aufgelöst wurde, also genau das, was wir jetzt auch hatten: Lahmarsch IO => läuft / High Performance Kleinteil IO => Deadlock / 5-10Minuten bis Auflösung.

Das nennt man eine Übersättigung des Treibers mit IO-Requests, passiert, wenn z.b. zig tausende Request jeweils nur einen Block haben wollen, statt in weniger Requests einfach größere Blöcke zu transportieren. Darf natürlich trotzdem nicht passieren, sondern der Treiber muß die Prozesse blockieren, bis wieder genug Reserven frei sind, was beim SATA Driver offensichtlich der Fall ist, beim SCSI Treiber gabs wohl vermutlich irgendwann zwischen 2015 und heute eine REGRESSION, die den alten Bug wieder eingebaut hat. Das letzte mal, daß ich so einen Fehler gesehen habe, da hatte die Jahreszahl noch 2 Nullen drin 😉

Jetzt ist es aber viel zu leicht, nur dem Kernel die Schuld zu geben, denn wir hatten mit Fedora 39 den gleichen Kernel ( Version ) laufen, wie mit Fedora 40 und der zeigte das Problem ja auch erst zusammen mit dem Rest von Fedora 40 und nicht schon mit Fedora 39. Da muß also etwas in der Distro sein, daß das ausgelöst hat!

Reaktionen

Nicht so gut gelaufen. Wir haben Montag und ich habe bei Proxmox und beim Fedora im Kernelteam ( weil ist am Ende halt doch ein Kernelbug ) noch in der Nacht vom Mittwoch auf Donnerstag letzter Woche einen Bugreport bzw. einen Foreneintrag eröffnet.

Keine der beiden Parteien äußerte sich, wobei ich das bei Proxmox verstehen kann, ist ja nur das Forum und ohne Subscription gibt es keinen Support. Das auch niemand aus der Community geantwortet hat, das ist dann doch bedenklich, weil das Forum von Proxmox ist genau der Ort, wo das schon 2015 gefunden wurde!

Das das Kernelteam jetzt erstmal vor einem fetten Haufen Mist steht und nicht weiß, wo es da anfangen soll mit rumstochern, kann ich auch verstehen, zumal das Fedora Maintainerteam ja nicht die Kernelentwickler sind. Aber gar nicht zu reagieren auf so einen Fatalen Fehler, der ein Produktionssystem zu einem Datenverlust geleitet hat, das geht nun mal auch nicht.

Zum Glück habe ich einen von denen nächsten Donnerstag zu meiner privaten Verfügbarkeit, da werde ich ihn mal drauf ansprechen, wieso da nichts passiert 😀