News Fehler in systemd lässt Linux bei Boot auf Ryzen 3000 abstürzen

tomturbo

Technische Administration, Dinosaurier
Mitglied seit
30.11.2005
Beiträge
7.134
Renomée
104
Standort
Österreich
  • SIMAP Race
  • QMC Race
  • Spinhenge ESL
  • BOINC Pentathlon 2013
  • BOINC Pentathlon 2014
  • BOINC Pentathlon 2015
  • BOINC Pentathlon 2016
  • BOINC Pentathlon 2017
  • BOINC Pentathlon 2019
  • SETI@Home Wow!-Event 2019
Mein DC
Aktuelle Projekte
Universe@HOME, Asteroids@HOME, Rosetta@HOME
Lieblingsprojekt
SETI@HOME
Meine Systeme
Xeon E3-1245V6; Raspberry Pi 4; NUC6i3BNH, Ryzen5 3400GE, Ryzen 1700X
BOINC-Statistiken
System
Mein Laptop
Microsoft Surface Pro 4
Details zu meinem Desktop
Prozessor
FX 8230E
Mainboard
Gigabyte 970A-UD3
Kühlung
CoolerMaster Hyper 412S
Speicher
2x8GB Crucial Ballistix Tactical DDR3-1866
Grafikprozessor
Asus Strix Vega56
Display
HP ZR2740w (2560x1440)
SSD
2xSamsung 830 128GB
HDD
Seagate ST31500341AS 1500GB
Optisches Laufwerk
Samsung Brenner
Soundkarte
onboard
Gehäuse
Fractal Design Define R4
Netzteil
XFX 550W
Tastatur
Cherry Stream Keyboard 2019
Maus
irgend eine silent Maus
Betriebssystem
Arch Linux, Windows VM
Webbrowser
Firefox + Chromium + Konqueror
Es ist sowieso fraglich warum da direkt auf die CPU zugegriffen wird anstatt den vorgesehenen Weg über die Kernelfunktion zu gehen.
Workarounds für CPU-Bugs werden im Kernel eingepflegt also warum setzen sich die Entwickler von systemd solchen möglichen Gefahren aus ?
Weil der bestimmte Herr glaubt er ist der einzige der versteht wie sich die Welt dreht.
Und diese hat sich gefälligst um ihn zu drehen..... :]
 

Yoshi 2k3

Admiral Special
Mitglied seit
18.01.2003
Beiträge
1.132
Renomée
109
Mein DC
BOINC-Statistiken
System
Mein Laptop
HP Elitebook 745 G6
Details zu meinem Desktop
Prozessor
AMD Ryzen 3700X
Mainboard
Gigabyte AORUS Gaming 7 Wi-Fi
Kühlung
Watercool Heatkiller IV
Speicher
64GB G.SKILL Trident Z RGB F4-3466C16Q-64GTZR
Grafikprozessor
AMD Radeon RX 5700XT 50th Anniversary
Display
Nixeus NX-EDG27
SSD
Toshiba XG5 256GB & Sandisk 3D Ultra 2TB
HDD
Toshiba 2TB
Soundkarte
Realtek ALC1220
Gehäuse
Caselabs SM8
Netzteil
Seasonic PRIME Platinum 850W
Betriebssystem
Windows 10 Pro
Webbrowser
Firefox
Schau Dir das System auf sysprofile.de an
Man kann von L.P. halten was man will, aber die Begründung, die er liefert, klingt zumindest für mich als Laie (beim Thema Programmierung) nachvollziehbar.

https://github.com/systemd/systemd/issues/11810#issuecomment-509554660

[...]For UUIDs using rand() is not good enough, since the results are likely not going to be unique. OTOH we don't need cryptographic quality either, since these are not key material. We used to pull UUIDs from /dev/urandom, which sucks during early boot though, since the kernel complains if we do that while the pool isn't fully initialized. We can't use getrandom() for this usecase either, since it either fails entirely or blocks during early boot, and possibly for a long time. So we try to avoid using /dev/urandom for such stuff if we can, by using RDRAND, which is not superduper fast, but also not super dupler slow, doesn't result in log spew. [...]
 

Berniyh

Grand Admiral Special
Mitglied seit
29.11.2005
Beiträge
4.446
Renomée
69
Man könnte, aber da systemd auch im single user mode startet, bootet das wohl auch nicht.
Keine Ahnung, dazu habe ich bislang noch nichts gelesen. Du etwa?
Es wird nicht die Kernelschnittstelle verwendet sondern direkt der CPU-Befehl. Da hilft der Parameter nicht.
Das macht so keinen Sinn. Der Zugriff auf die CPU läuft doch immer über den Kernel, die Frage ist nur, welche Schnittstelle verwendet wird?
 

Stefan Payne

Grand Admiral Special
Mitglied seit
17.11.2001
Beiträge
5.265
Renomée
50
System
Details zu meinem Desktop
Abgesehen davon: unschuldig ist AMD an dieser Aktion leider nicht, denn es handelt sich durchaus um einen HW Bug.
Belege für diese Behauptung?

Und komm nicht mit "aber es funzt ja bei anderen!", das ist Blödsinn, wie du von Windows 9x auf schnellen CPUs weißt.
Oder ist das nur wieder irgendein Unsinn von dem Programmierer, der bloß keine Fehler eingestehen will und die auf andere Leute schiebt?

--- Update ---

Es ist sowieso fraglich warum da direkt auf die CPU zugegriffen wird anstatt den vorgesehenen Weg über die Kernelfunktion zu gehen.
Workarounds für CPU-Bugs werden im Kernel eingepflegt also warum setzen sich die Entwickler von systemd solchen möglichen Gefahren aus ?
Die eigentliche Frage ist doch: Was will systemd überhaupt mit Random Numbers??

Mir fällt da spontan kein Sinn ein und das schaut eher nach bescheuerter Design Entscheidung um um einen Bug herum zu schiffen aus...
 
Zuletzt bearbeitet:

tomturbo

Technische Administration, Dinosaurier
Mitglied seit
30.11.2005
Beiträge
7.134
Renomée
104
Standort
Österreich
  • SIMAP Race
  • QMC Race
  • Spinhenge ESL
  • BOINC Pentathlon 2013
  • BOINC Pentathlon 2014
  • BOINC Pentathlon 2015
  • BOINC Pentathlon 2016
  • BOINC Pentathlon 2017
  • BOINC Pentathlon 2019
  • SETI@Home Wow!-Event 2019
Mein DC
Aktuelle Projekte
Universe@HOME, Asteroids@HOME, Rosetta@HOME
Lieblingsprojekt
SETI@HOME
Meine Systeme
Xeon E3-1245V6; Raspberry Pi 4; NUC6i3BNH, Ryzen5 3400GE, Ryzen 1700X
BOINC-Statistiken
System
Mein Laptop
Microsoft Surface Pro 4
Details zu meinem Desktop
Prozessor
FX 8230E
Mainboard
Gigabyte 970A-UD3
Kühlung
CoolerMaster Hyper 412S
Speicher
2x8GB Crucial Ballistix Tactical DDR3-1866
Grafikprozessor
Asus Strix Vega56
Display
HP ZR2740w (2560x1440)
SSD
2xSamsung 830 128GB
HDD
Seagate ST31500341AS 1500GB
Optisches Laufwerk
Samsung Brenner
Soundkarte
onboard
Gehäuse
Fractal Design Define R4
Netzteil
XFX 550W
Tastatur
Cherry Stream Keyboard 2019
Maus
irgend eine silent Maus
Betriebssystem
Arch Linux, Windows VM
Webbrowser
Firefox + Chromium + Konqueror
Keine Ahnung, dazu habe ich bislang noch nichts gelesen. Du etwa?
Ich übergebe als Kernelparameter "systemd.unit=emergency.target". Ergo muss systemd laufen damit ich das emergency.target gestartet bekomme.
Da aber systemd nicht startet ..... etc. ppp. ;)

Die eigentliche Frage ist doch: Was will systemd überhaupt mit Random Numbers??
Die wollen das für die Bildung von bescheidenen UUID Numbers, also keine Raketenwissenschaft.
Und wegen dieses Blödsinns steht der ganze Bootprozess.
 

Berniyh

Grand Admiral Special
Mitglied seit
29.11.2005
Beiträge
4.446
Renomée
69
Ich übergebe als Kernelparameter "systemd.unit=emergency.target". Ergo muss systemd laufen damit ich das emergency.target gestartet bekomme.
Da aber systemd nicht startet ..... etc. ppp. ;)
Das ist kein Beweis. systemd kann sich in dem Fall durchaus anders verhalten, andere units laden o.ä.

Es ist durchaus möglich, dass es auch in dem Fall schief geht, kann aber auch anders sein.
Bislang habe ich eben noch nicht gesehen, dass jemand wirklich so versucht hat das System zu starten.

Prinzipiell kann es in der Tat sehr problematisch sein, da ja systemd auch in der initrd läuft, d.h. es könnte sein, dass es selbst da schon fehlschlägt (und dann nutzt einem kein Kernel Parameter in irgendeiner Form).
Da nützt dann nur eine andere initrd zu nutzen (zum Glück sind die austauschbar, solange die notwendigen Treiber integriert sind).

Aber naja, was soll die Diskussion, hoffen wir einfach, dass die meisten Distributoren möglichst zeitnah gefixte systemd-Versionen ausliefern und insbesondere auch neue CDs die das Problem nicht haben.
Ersteres ist wahrscheinlich kein großes Thema und bei den meisten Distributionen wahrscheinlich schon passiert, letzteres könnte ein größeres Problem sein.
 

cyrusNGC_224

Admiral Special
Mitglied seit
01.05.2014
Beiträge
1.553
Renomée
42
  • BOINC Pentathlon 2014
  • BOINC Pentathlon 2015
  • BOINC Pentathlon 2016
  • BOINC Pentathlon 2017
Mein DC
Aktuelle Projekte
POGS, Asteroids, Milkyway, SETI, Einstein, Enigma, Constellation, Cosmology
Lieblingsprojekt
POGS, Asteroids, Milkyway
Meine Systeme
X6 PII 1090T, A10-7850K, 6x Athlon 5350, i7-3632QM, C2D 6400, AMD X4 PII 810, 6x Odroid U3
BOINC-Statistiken
Es ist vollkommen egal was das letztendliche Detail ist was zum fehlerhaften Verhalten von systemd führt.
Fakt ist hier wird falsch, nicht abbrechbar, für sinnlose UUIDs, eine Endlosschleife von systemd produziert, ohne auf die dokumentierten Designrichtlinien von AMD einzugehen.
Was zum Stillstand bei boot führt.
Nochmal: Das fehlerhaft Verhalten des Stillstands wird eindeutig von systemd erzeugt.
Bei anderen Initsystemen kann man wenigstens mit ctrl-c arbeiten um nicht weiterlaufende Skripts aufzuhalten oder in den single user mode zu gehen.
Aber nix da bei systemd
Ich werde bis heute nicht mit dem Ding warm.
 

Flodul

Lt. Commander
Mitglied seit
14.12.2016
Beiträge
149
Renomée
1
Der Fehler ist definitiv ein Ryzen-Bug und kein systemd-Bug, siehe hier.
"Apparently on some AMD CPUs RDRAND will sometimes (after a suspend/resume cycle?) report success via the carry flag but nonetheless return the same fixed value -1 in all cases. This appears to be a bad bug in the CPU or firmware."
 
Zuletzt bearbeitet:

Stefan Payne

Grand Admiral Special
Mitglied seit
17.11.2001
Beiträge
5.265
Renomée
50
System
Details zu meinem Desktop
Die wollen das für die Bildung von bescheidenen UUID Numbers, also keine Raketenwissenschaft.
Und wegen dieses Blödsinns steht der ganze Bootprozess.
Verstehe immer noch nicht, was man mit random Nummern bei einem "Systemstarttool" will.

Das schaut für mich nach völlig bekloppter Programmierung aus...
 

tomturbo

Technische Administration, Dinosaurier
Mitglied seit
30.11.2005
Beiträge
7.134
Renomée
104
Standort
Österreich
  • SIMAP Race
  • QMC Race
  • Spinhenge ESL
  • BOINC Pentathlon 2013
  • BOINC Pentathlon 2014
  • BOINC Pentathlon 2015
  • BOINC Pentathlon 2016
  • BOINC Pentathlon 2017
  • BOINC Pentathlon 2019
  • SETI@Home Wow!-Event 2019
Mein DC
Aktuelle Projekte
Universe@HOME, Asteroids@HOME, Rosetta@HOME
Lieblingsprojekt
SETI@HOME
Meine Systeme
Xeon E3-1245V6; Raspberry Pi 4; NUC6i3BNH, Ryzen5 3400GE, Ryzen 1700X
BOINC-Statistiken
System
Mein Laptop
Microsoft Surface Pro 4
Details zu meinem Desktop
Prozessor
FX 8230E
Mainboard
Gigabyte 970A-UD3
Kühlung
CoolerMaster Hyper 412S
Speicher
2x8GB Crucial Ballistix Tactical DDR3-1866
Grafikprozessor
Asus Strix Vega56
Display
HP ZR2740w (2560x1440)
SSD
2xSamsung 830 128GB
HDD
Seagate ST31500341AS 1500GB
Optisches Laufwerk
Samsung Brenner
Soundkarte
onboard
Gehäuse
Fractal Design Define R4
Netzteil
XFX 550W
Tastatur
Cherry Stream Keyboard 2019
Maus
irgend eine silent Maus
Betriebssystem
Arch Linux, Windows VM
Webbrowser
Firefox + Chromium + Konqueror

eratte

Redaktion
☆☆☆☆☆☆
Mitglied seit
11.11.2001
Beiträge
11.989
Renomée
835
Standort
Rheinberg / NRW
  • BOINC Pentathlon 2012
  • BOINC Pentathlon 2013
  • BOINC Pentathlon 2014
  • BOINC Pentathlon 2015
  • BOINC Pentathlon 2016
  • BOINC Pentathlon 2017
  • BOINC Pentathlon 2020
  • SETI@Home Intel-Race II
Mein DC
Mitglied der Planet 3DNow! Kavallerie!
Aktuelle Projekte
YoYo, Collatz
Lieblingsprojekt
YoYo
Meine Systeme
Nach Bedarf und Laune
BOINC-Statistiken
System
Mein Laptop
HP PAVILION 14-dk0002ng
Details zu meinem Desktop
Prozessor
Ryzen R9 3900XT
Mainboard
ASUS ROG Crosshair 8 Hero
Kühlung
Noctua NH-D15
Speicher
4 x 16 GB Crucial Ballistix Sport LT@3200 CL14
Grafikprozessor
MSI RX 5700 XT Evoke OC
Display
S27A850D 2560x1440 / U2412M 1920x1200
SSD
Samsung 960 Pro 512 und 950 Pro 512
Optisches Laufwerk
LG BH10LS30 Blu-Ray Brenner
Soundkarte
Onboard
Gehäuse
Lian Li PC-A51 Schwarz
Netzteil
Seasonic Platinum 860 (80+ Platinum)
Betriebssystem
Windows 10 Pro 64
Webbrowser
Firefox
Verschiedenes
4 x NF-S12A u. 1 x NF-A14 Noctua Lüfter. Corsair K70, Steelseries Rival 300, Plantronics HS.
Oben Unten