Kate spinnt plötzlich

Guten Tag,

Kate öffnet Sitzungen plötzlich nur extrem langsam, legt fast das gesamte System lahm, öffnet Files nur im Lese-Modus und mit einem völlig irren Zeichensatz.

Ich habe das System runter- und wieder hochgefahren. Manchmal ist der Fehler ja dann wieder weg, aber kein Änderung.

Ich habe Kate desinstalliert und neu installiert, aber keine Änderung.

Kwrite öffnet dieselben Files (einer Kate-Sitzung) übrigens ganz normal.

Hat jemand eine Idee, wo der Hund begraben sein könnte? Momentan liest und hört man ja einiges über den Segen von Rust, aber das kann sicher nicht der Grund sein, oder?

Fr. Grüße

PS: Ich habe gerade mal 3 kleine Testfiles erzeugt, sie in einer Sitzung gespeichert und die dann wieder aufgerufen. Kein Problem.
Dann habe ich einen von den anderen Files dazu aufgerufen, und schon ist das Problem wieder da. Wirre Zeichen und dauert ewig.

Sind die Datein vielleicht beschädigt, weil sie auf einem defekten Teil des Dateisystems lagen? Festplatte und Filesystem schon mal gecheckt?

1 Like

Wenn die Files defekt wären, könnte sie Kwrite aber auch nicht korrekt öffnen oder VSCodium. Ich habe Testfiles gemacht, bei denen das gleiche passiert.

Es scheint, dass Kate ein Problem mit Zeilen hat, die länger als 1000000 Zeichen (Maximalwert) sind. Vorher gab es damit keine Probleme, und auch Kwrite hat damit keine Probleme.

Ich kann mich entsinnen, dass es vor geraumer Zeit schon mal einen extrem nervigen Bug gab, als man mit Kate in großen Files plötzlich nur mit großen Verzögerungen suchen konnte. Der Grund war, wenn ich mich richtig entsinne, eine unpassende Qt-Version.

Wenn eine Datei beschädigt ist, ist sie beschädigt, egal wo du sie hin kopierst. Also keinesfalls Schwachsinn sondern Basiswissen.
Da du im Eröffnungspost keinerlei Infos zu den Dateien geliefert hast, deuteten die Symptome auf beschädigte Dateien hin.

Erst im zweiten Post kommst du mit Infos von über 1.000.000 Zeichen pro Zeile um die Ecke.

Wenn du eine Basissuche betreiben würdest wirst du ganz schnell feststellen, dass eine Datei mit 1.000.000 Zeichen pro Zeile, jeden handelsüblichen Rechner in die Knie zwingt.

1 Like

Nein, wenn ich sie in anderes Verzeichnis kopiere und rufe sie dann auf, passiert das gleiche. Sorry, Schwachsinn.

War unlogisch, habe ich entfernt.

Die 1000000 waren bisher kein Problem. Der längste der Files ist im Moment 22,9 MB groß, und das klappte bisher wunderbar mit Kate und klappt immer noch mit Kwrite und VSCodium.

Die Standardzeilenlänge in Kate ist auf 10.000 Zeichen gesetzt. Um diese zu deaktivieren, setzte sie zu Testzwecken auf 0.

Wenn Kate Dateien nur im read-only Modus öffnet, kann das auch auf eine fehlerhafte/kaputte/falsche Kodierung zurückzuführen sein.

Aber ohne Zugriff auf eine Datei, bei der das Problem zuverlässig eproduzierbar ist, können wir dir von der Ferne auch nicht mehr Tipps geben, als was du dir nicht selbst ergoogeln könntest.

1 Like

Ich habe gerade mal die Kwrite-Einstellungen auf die Einstellungen von Kate geändert, und siehe da, Problem.

Es klappt bei Kate und Kwrite jedoch mit

Einstellungen → Öffnen/Speichern

  • Kodierung Unicode (UTF-8)
  • Ausweich-Kodierung Unicode (UTF-16)
  • Begrenzung der Zeilenlänge 10000 (Standard)

Mir ist schleierhaft, warum es mit Kate plötzlich dieses Problem überhaupt gab, denn ich hatte zuvor definitiv nichts in den Einstellungen geändert.

Wie auch immer, nun klappt es wieder.

Danke für die Untersützung. :slight_smile:

Für die Fehlereingrenzung muss festgestellt werden, mit welcher Zeichenkodierung die Textdatei kodiert ist und ob ein BOM (Byte order marker) eingesetzt wird und wenn ja, ob dieser korrekt gesetzt wurde.

https://de.wikipedia.org/wiki/Byte_Order_Mark

# cd /tmp/
# echo HalloÖÄÜ€ > test.txt
# file test.txt 
test.txt: UTF-8 Unicode text

Im Screenshot ist ganz unten rechts ersichtlich, dass der Texteditor die Textdatei mit der Zeichenkodierung UTF-16 eingelesen hat, was unter Linux sehr unüblich ist. Unter Linux ist für Textdateien die Zeichenkodierung UTF-8 (ohne BOM) üblich .

# xxd test.txt 
00000000: 4861 6c6c 6fc3 96c3 84c3 9ce2 82ac 0a    Hallo..........

Mit Visual Studio Code (VSCodium) kann problemlos die Zeichenkodierung geändert werden und ein BOM der Textdatei hinzugefügt werden.
https://code.visualstudio.com/docs/editing/codebasics#_file-encoding-support

Zum Beispiel UTF-8 mit BOM:

# file test.txt 
test.txt: UTF-8 Unicode (with BOM) text
# xxd test.txt 
00000000: efbb bf48 616c 6c6f c396 c384 c39c e282  ...Hallo........
00000010: ac0a
2 Likes

Ich habe gerade mal geschaut, was file für einen der problematischen Dateien liefert und das mit einer Sicherungsdatei vom Tag zuvor verglichen, und es ist kein Unterschied:

$ file meineDatei.txt
meineDatei.txt: Unicode text, UTF-8 text, with very long lines (893), with CRLF line terminators

Mir war die Zeichenkodierungs-BOM-Problematik zwar nicht bekannt, aber sie erkärt auch nicht, warum Files, mit denen ich seit Jahren arbeite und nie das Problem hatte, urplötzlich anders geöffnet werden.

Wenn am Anfang der Textdatei der BOM fehlt, muss der Texteditor rätseln und Vermutungen anstellen, mit welcher Zeichenkodierung die Textdatei erstellt wurde. Gleiches Rätselraten muss auch der Befehl “file”. File behauptet, dass die problematische Textdatei mit UTF-8 (ohne BOM) kodiert ist, Kate öffnet die problematische Textdatei mit UTF-16.

Hier die Vorgehensweise von Kate im Detail erklärt:
https://kate-editor.org/2010/08/26/encoding-detection-revised/

Wenn dieser Algorithmus zur Erkennung der Zeichenkodierung mit einem Softwareupdate in letzter Zeit angepasst wurde, lässt sich dieser Buchstabensalat erklären. Wer dem Buchstabensalat möglichst aus dem Weg gehen will, erstellt alle Textdateien mit einem BOM am Anfang.

Kate hat die problematische Textdatei im Read-only-Modus geöffnet (R/O). Deshalb darf Hui’s Bemerkung nicht ignoriert werden:

Wenn Kate Dateien nur im read-only Modus öffnet, kann das auch auf eine fehlerhafte/kaputte/falsche Kodierung zurückzuführen sein.

1 Like

Wäre es dann nicht sinnvoll, dass Linux Files mit BOM anlegt?

$ echo "test"  > test.txt
$ file test.txt
test.txt: ASCII text

echo testä > test.txt
$ file test.txt
test.txt: Unicode text, UTF-8 text

Hier ist noch was:

Byte order is important for encoding schemes like UTF-16 as UTF-16 uses a minimum of two bytes for character encoding. However, little-endianness or big-endianness in UTF-8 doesn’t have a meaning since UTF-8 is one byte-oriented. Therefore, a BOM in a UTF-8 encoded file might be omitted.

Heißt also, bei UTF-8 kann man BOM weglassen.

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.