Nvidia, Fedora, RPMFusion und der Bug, der nicht sein soll.

Diese Geschichte fängt an mit: „Es war einmal eine Grafikkarte“.

„Nvidia, Fedora, RPMFusion und der Bug, der nicht sein soll“

Wie Ihr wisst, gibt es von Nvidiatreibern verschiedene Versionsnummern, z.b. 340,390,440. 440 ist der aktuelle Treiber für GTX1050 Karten.

Jetzt wirft dieser Treiber beim Systemboot eine Fehlermeldung wie folgt:

[ 222.363327] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 222.363328] [drm] No driver support for vblank timestamp query.
[ 222.397236] [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:05:00.0 on minor 0
[ 222.406533] ————[ cut here ]————
[ 222.406534] refcount_t: underflow; use-after-free.
[ 222.406550] WARNING: CPU: 1 PID: 513 at lib/refcount.c:28 refcount_warn_saturate+0xa6/0xf0
[ 222.406551] Modules linked in: nvidia_drm(POE) nvidia_modeset(POE) nvidia_uvm(OE) snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio snd_hda_intel nvidia(POE) snd_intel_dspcfg snd_hda_codec snd_hda_core snd_hwdep joydev snd_seq snd_seq_device edac_mce_amd drm_kms_helper snd_pcm kvm_amd snd_timer drm snd kvm ipmi_devintf sp5100_tco irqbypass wmi_bmof ipmi_msghandler k10temp i2c_piix4 soundcore pcspkr gpio_amdpt gpio_generic acpi_cpufreq nfsd binfmt_misc auth_rpcgss nfs_acl lockd grace sunrpc ip_tables dm_crypt hid_logitech_hidpp crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel ccp r8169 aacraid hid_logitech_dj wmi pinctrl_amd fuse
[ 222.406576] CPU: 1 PID: 513 Comm: plymouthd Tainted: P OE 5.5.10-200.fc31.x86_64 #1
[ 222.406577] Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./B450M Pro4, BIOS P3.90 12/09/2019
[ 222.406579] RIP: 0010:refcount_warn_saturate+0xa6/0xf0
[ 222.406581] Code: 05 2e 03 2e 01 01 e8 7b 8e bc ff 0f 0b c3 80 3d 1c 03 2e 01 00 75 95 48 c7 c7 18 99 3c 9d c6 05 0c 03 2e 01 01 e8 5c 8e bc ff <0f> 0b c3 80 3d fb 02 2e 01 00 0f 85 72 ff ff ff 48 c7 c7 70 99 3c
[ 222.406582] RSP: 0018:ffffb573c103fcb8 EFLAGS: 00010286
[ 222.406583] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000007
[ 222.406584] RDX: 0000000000000007 RSI: 0000000000000086 RDI: ffff9416ce859cc0
[ 222.406585] RBP: ffff9416bacbfce8 R08: 0000000000000413 R09: 0000000000000003
[ 222.406585] R10: 0000000000000000 R11: 0000000000000001 R12: ffff9416c70502e8
[ 222.406586] R13: ffff9416c7050000 R14: 0000000000000008 R15: 0000000000000000
[ 222.406588] FS: 00007f07558f3f00(0000) GS:ffff9416ce840000(0000) knlGS:0000000000000000
[ 222.406588] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 222.406589] CR2: 00007f0755072052 CR3: 00000004035c6000 CR4: 0000000000340ee0
[ 222.406590] Call Trace:
[ 222.406597] nv_drm_atomic_helper_disable_all+0xec/0x290 [nvidia_drm]
[ 222.406603] nv_drm_master_drop+0x22/0x60 [nvidia_drm]
[ 222.406616] drm_drop_master+0x1e/0x30 [drm]
[ 222.406628] drm_dropmaster_ioctl+0x4c/0x90 [drm]
[ 222.406639] ? drm_setmaster_ioctl+0xb0/0xb0 [drm]
[ 222.406651] drm_ioctl_kernel+0xaa/0xf0 [drm]
[ 222.406663] drm_ioctl+0x208/0x390 [drm]
[ 222.406675] ? drm_setmaster_ioctl+0xb0/0xb0 [drm]
[ 222.406678] ? do_filp_open+0xa5/0x100
[ 222.406681] ? selinux_file_ioctl+0x174/0x220
[ 222.406683] do_vfs_ioctl+0x461/0x6d0
[ 222.406685] ksys_ioctl+0x5e/0x90
[ 222.406686] __x64_sys_ioctl+0x16/0x20
[ 222.406690] do_syscall_64+0x5b/0x1c0
[ 222.406693] entry_SYSCALL_64_after_hwframe+0x44/0xa9
[ 222.406695] RIP: 0033:0x7f0755bb138b
[ 222.406697] Code: 0f 1e fa 48 8b 05 fd 9a 0c 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d cd 9a 0c 00 f7 d8 64 89 01 48
[ 222.406697] RSP: 002b:00007ffced5fe798 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
[ 222.406699] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f0755bb138b
[ 222.406699] RDX: 0000000000000000 RSI: 000000000000641f RDI: 0000000000000009
[ 222.406700] RBP: 000000000000641f R08: 000055b6a6ff1df0 R09: 000055b6a6fa5010
[ 222.406701] R10: 0000000000000000 R11: 0000000000000246 R12: 000055b6a6ff2970
[ 222.406701] R13: 0000000000000009 R14: 0000000000000000 R15: 0000000000000000
[ 222.406703] —[ end trace fa45bb73ed0780f4 ]—
[ 222.411358] kauditd_printk_skb: 45 callbacks suppressed

Von Euch sieht natürlich jeder sofort, daß hier NVIDIA und PLYMOUTH im Spiel sind und das der Nvidiatreiber einen Fehler bei der DRM Initialisierung verursacht. Der Server bootet danach weiter, also erstmal nicht so wichtig. Es folgen die üblichen Dinge: Bugreport bei Fedora ( wegen Plymouth ) und bei RPMFusion ( wegen Nvidia ) erstellen, und komplett entäuscht werden… !

„Da ist kein Bug, gehen Sie weiter!“

Nun kann Fedora da nicht viel machen, wenn der Nvidiatreiber da Mist baut, außer natürlich, es übergibt dem Treiber schon was falsches, da könnte der Treiber dann nicht mehr soviel für den Bug. Das werden wir aber nie erfahren, denn der Bug wurde sofort beerdigt. Nagut, wir haben ja noch den RPMFusionreport.

Sagte ich, wir haben noch einen anderen offenen Bugreport? So kann man sich irren: „Your Bugreport has been closed with „WONT FIX“.Und dann stehen wir mit einem Fehler da, von dem alle Parteien sagen „Nicht mein Problem“. Doch, Eurer Problem! Wessen denn sonst?

Der Bug wurde in der Devliste von Nvidia zwar besprochen, aber es gibt leider keinen finalen Fix dafür:

Devliste: https://forums.developer.nvidia.com/t/bug-nvidia-440-64-kernel-5-5-6-stable-boot-trace-was-nvidia-440-59-kernel-5-5-1-stable-boot-trace/111643

Der derzeitige Stand ist: Geht halt nicht; und DRM geht dann halt auch nicht. Wobei letzteres sollte man eh abschaffen, falls damit das DigitalRightsManagement gemeint ist.

Was mich aber am meisten stört: „ist nicht unser Problem“. Von RPMFusion hätte ich erwartet, daß das offen bleibt, bis das von den Nvidiadevs gefixt wurde, schon um das Problem zu tracken, aber von Scott kann man halt oft nichts anderes erwarten.

Schlechte Nachrichten für Pioneer Fans

Mein Morgen war jetzt nicht ganz so super, wie er hätte sein können. Im Updatebericht von Fedora habe ich gesehen, das die neue Version von Pioneer verfügbar gemacht wurde und wollte das natürlich sofort austesten.

Alte Spielstände führen zum Absturz

Weil die Spielstandsdatei angeblich eine falsche Versionsnummer hat, konnte die nicht geladen werden. Der Bugreport bei Pioneer wird uns hoffentlich offenbaren, wieso es eine „falsche“ Versionsnummer geben kann.

Wenn Ihr wissen wollt, ob Eurer Fehler beim Start auch daran liegt, müßt Ihr Pioneer in einem Terminal starten:

Game::LoadGame(‚_exit‘)
Loading saved game ‚_exit‘ failed: wrong save file version.
error: [string „[T] @pigui/views/mainmenu.lua“]:138: This saved game cannot be loaded because it contains errors.
stack traceback:
[C]: in function ‚LoadGame‘
[string „[T] @pigui/views/mainmenu.lua“]:138: in function ‚callback‘
[string „[T] @pigui/views/mainmenu.lua“]:92: in function ‚mainTextButton‘
[string „[T] @pigui/views/mainmenu.lua“]:215: in function ‚fun‘
[string „[T] @pigui/pigui.lua“]:97: in function ‚window‘
[string „[T] @pigui/views/mainmenu.lua“]:214: in function ‚fun‘
[string „[T] @pigui/pigui.lua“]:146: in function ‚withStyleColors‘
[string „[T] @pigui/views/mainmenu.lua“]:213: in function ’showMainMenu‘
[string „[T] @pigui/views/mainmenu.lua“]:260: in function ‚mainMenu‘
[string „[T] @pigui/pigui.lua“]:187: in function <[string „[T] @pigui/pigui.lua“]:185>

Denn leider wird das nicht in dem GUI Hinweis zum Absturz angegeben, was die Bugreports bei Pioneer in Github regelmäßig zum „Starts mal in der Konsole“ zwingt.  Macht das am besten immer, wenn Ihr bei Pioneer auf ein Problem stoßt, da spart eine Menge Zeit für alle ein 😉

Fedora 28: Planet Crash

Mit Fedora 28 ist es grade, als wenn man in einen Topf Farbe getreten ist und jetzt die Farbe überall verteilt. Egal wo man hinschaut Bugs, Bugs und noch mehr Bugs.

Heute:  ProjectM-PulseAudio

Für alle die ProjectM nicht kennen, das ist ein Audio-Visualisierungs-Plugin, das langweilige Musikabende optisch aufhübschen soll, idealerweise im Takt der Musik.

Scheinbar ist das bei Fedora auf dem absteigenden Ast gelandet, meint, es ist als verweist markiert. Es gibt also keinen Maintainer und Redhat muß selbst ran, und genau da haperts bei Redhat grade. Das Problem liegt in der Speicherverwaltung, was zu einem „Double Free“ Fehler führt. Für Nichtentwickler, daß bedeutet, daß ein Speicherbereich zwei(++)mal freigegeben werden soll. Das ist ein schwerwiegender Programmierfehler und wird besonders oft von C-Entwicklern gemacht, weil das Speichermanagement von C schlicht nicht vorhanden ist. Einem Java-Programm kann das nicht passieren, da die JVM das Speichermanagement komplett übernimmt.

Ich wette Fefe, wüßte jetzt, auf welchem Platz der häufigsten Programmierfehler in C der DoubleFree steht, aber ich kann nur raten. Gefühlt in den Top 3, direkt nach Buffer-Overflow und „Zeiger auf Zeiger verdengelt“ 🙂

Also falls Ihr mit ProjectM rechnet, seid nicht enttäuscht, wenn es nach 5 Sekunden crasht.

Update:

Nachdem ich mit auf Github einen BugReport erstellt habe, stellt sich raus, daß Fedora eine uralte Version zur Verfügung gestellt hat. Es wird dringend dazu geraten, ProjectM selbst zu kompilieren, nur ist das, wie sich zeigt, nicht so einfach. Das Configure Script vermeidet bewußt zu sagen, was ihm zum Ausführen am QT Libs genau fehlt, ohne QT unterdrückt das make einfach mal die Fehler beim Bau von projectM-pulseaudio und sagt am Ende, daß alles fehlerfrei geklappt hat. Natürlich ohne irgendwas brauchbares erstellt zu haben.

Das kann man zwar nicht direkt als Bug bezeichnen, zeigt aber auf, wo da wohl das Problem seitens Redhat liegt, eine aktuelle Version zusammen zu häkeln.

Bitcoin auf Talfahrt

Der Bitcoin jetzt seine Talfahrt in die richtige Richtung fort, nach unten 🙂

Der Niedergang

Der seit einer Woche anhaltende Trend bestätigt sich auch heute, dem Bitcoin geht es schlecht. Von 9.000 € auf 4.800 € in nur einer Woche bedeutet, was jeder ahnen konnte: Die Blase ist geplatzt. 40% Wertverlust ist schon eine Marke. Die Verlustkurven reisen tiefe Lücken in den Graphen, trotzdem scheint sich der wertlose Digitaltiger immer wieder dagegen stemmen zu wollen.

Der Kurs der letzten 10 Stunden (Stand 10:30 Uhr)  ist das auch von Extremen geprägt. Gegen 2 Uhr waren es noch Spitzen von 5.700 €, die dann binnen 4 Stunden auf das erste Tagestief von 4.850 € zusammenbrachen, nur um von noch steilere Kursanstiege auf 5.300 € gefolgt zu werden.

Aber alles kämpfen nutzte nichts, um 9 Uhr brach der Kurs auf 4.800 € ein. Die derzeitige Kurserholung auf 5.000 € ist auch nur ein Zwischenschritt, bis die nächste Schneeballebene zum Verkauf schreitet.

Fazit

Wer jetzt nicht verkauft, ist selbst Schuld, wenn er als Kollateralschaden im Schneeballsystem endet.

Kommentar

Man muß den Spekulanten eins lassen, sie haben den Kurs von Nichts in $ ausgedrückt bekommen und sehr vielen Menschen sehr viel Geld abgenommen, ohne dafür einen Gegenwert zu liefern, falls der Gegenwert nicht der Spaß am Daytrading war. Der reale Gegenwert eines Bitcoins ist nämlich 0, genau wie der reale Wert eines 500 € Scheins*. Da aber mehr als 300 Millionen Menschen an den € glauben, ist sein Gegenwert realer als es der Bitcoin je sein konnte.Außerdem ist der € an reale Werte gekoppelt, denn ich kann dafür Immobilien und Güter kaufen und verkaufen.

Nicht einmal die Bitcoinkonferenzen haben am Ende den Bitcoin als Zahlungsmittel akzeptiert. Natürlich nur wegen der hohen Transaktionsgebühren, die als einzige verlässliche Zahl steigen müssen. Das haben selbst die Schöpfer des Bitcoins so vorhergesehen.

Von den noch vor wenigen Wochen erhofften Gewinnen durch den Handel mit Derivaten an den „echten“ Börsen, ist jetzt natürlich nichts mehr zu erwarten. Das waren nur die Versuche der abgehängten Spekulanten an dem Schneeballsystem mitzuverdienen. Bei den Verlusten des Bitcoins, dürfte der Keks gegessen sein.

*) Der Schein hat tatsächlich durch seine Produktionskosten und Materialien einen Wert > 0, aber nicht viel drüber 😉

Update 16:30 Uhr:

Die Talfahrt blieb ein Strohfeuer im Zuge des Grauen-Montags an den Amerikanischen Börsen. Mit Stand 16:30 würde der Bitcoin mit einem Plus von 7% gegenüber dem Stand von 0.00 Uhr dastehen. Am Trend zum totalen Wertverlust ändert sich damit aber nicht. Bin mal gespannt, wie es bei den Zockern weitergeht. Als Soap-Opera ist das ja kaum zu überbieten 🙂

Wenn Cinnamon ständig crashed

Warum immer in der Weihnachtszeit ? Die sollte doch so friedlich sein. Mein Laptop war anderer Meinung. Vor zwei Wochen erst auf Fedora 26 aktualisiert und seit Mittwoch crasht Cinnamon in Endlosschleife in seinen Rückfallmodus, ohne irgendeine brauchbare Spur zu hinterlassen. Na gut, Challenge Accepted!

Die Versuchsreihe

Zunächst mal sollte man checken, ob man vielleicht ein neues Update bekommen hat und dies das Problem löst. Tat es nicht, weil keines kam.

Ok, jetzt müßte man doch mal nachsehen, was da unter der Haube los ist. Also „journalctl -xe | grep -i cinnamon“ eingegeben und … nichts.

Ok, versuchen wir es ohne den Filter : „journalctl -xe“ und siehe da, jede Menge rote Crashmeldungen in diversen Libs, aber leider kein Hinweis, was da der Auslöser sein könnte. Auch 1 Stunde später, und diverse andere Logs und Webseiten später, senkte sich vom Baum der Erkenntnis die rote Kartenfrucht herab.

Der Reinstall

Ein klares Signal, einen Reinstall durchzuführen, also als Root eingegeben:

dnf reinstall „cinnamon*“

Und wieder in Cinnamon einloggen… args.. gleiches Ergebnis. Hmm.. da hat es wohl noch mehr zerlegt… uff. Also, ‚ dnf reinstall „*“ ‚ eingegeben, also die ersten 80 Pakete bereits runter geladen waren, wollte ich aber doch noch mal etwas anderes austesten.

adduser -s /bin/bash testuser
passwd testuser

Und dann mal als Testuser einloggen. Oh… Das geht ja … Da ist dann wohl doch nur die Session defekt. Dann hauen wir die halt weg:

rm -rf ./.config/cinnamon-session ./.local/share/cinnamon ./.cinnamon

Danach ist der Account so jungfräulich, daß Cinnamon alles wieder sauber anlegt und oh Wunder, dann geht es auch wieder mit dem Login 😀

Man muß natürlich alles neu einstellen,aber das ist ein kleiner Preis. Was meine Session/Einstellungsdaten genau getroffen hatte, wird man wohl nie erfahren 😉