lmLog: "Server error occured" when log contains non-ASCII chars (offset counted in chars, seek in bytes)
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 78/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- javascript, python
Piste de recherche
Start in lmn_common/views.py at handle_api_log, which seeks by offset, and in lmn_common/resources/js/directives/lmlog.coffee, which sends offset=$scope.content.length. Decide on byte offsets end-to-end (binary read plus a response header the CoffeeScript client uses for the next offset) or the fallback errors='replace'. Reproduce with the two-line Python snippet from the issue, then verify the log view polls past an umlaut-heavy file without a 500.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Description
While users are applied in List Management, the live log view polls
GET /api/lmn/log/tmp/sophomorix.log?offset=<n> every second. Sporadically
the WebUI shows "Server error occured. This is likely a bug." for this request.
The sophomorix run itself completes; only the log view breaks.
Cause
Frontend and backend use different units for offset:
lmn_common/resources/js/directives/lmlog.coffeesends
offset=#{$scope.content.length}, which is the length in characters (JS string).lmn_common/views.py→handle_api_logopens the file in text mode and calls
f.seek(offset), which positions by bytes.
Each non-ASCII character (ä, ö, ü, ß in user names, ...) is 1 char but 2 bytes in
UTF-8, so the offset drifts by one byte per umlaut. When it lands inside a
multibyte sequence, f.read() raises UnicodeDecodeError and the endpoint returns 500.
Minimal reproduction:
open('t.log','w').write('Benutzer Müller angelegt\n')
f = open('t.log'); f.seek(11); f.read()
# UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbc in position 0
With multi-school setups the log easily grows to >1 MB with many umlauts
(we saw offset=1682314), so the error shows up on almost every run.
Environment
linuxmuster-webui7 7.3.40; code is unchanged on master / 7.3.46.
Possible fix
Use byte offsets consistently, e.g. read the file in binary mode and let the
frontend track the received byte length (e.g. via a response header), or at least
open(path, errors='replace') so a misaligned offset no longer causes a 500.
- Langage dominant
- HTML
- Étoiles
- 14
- Forks
- 9
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de linuxmuster/linuxmuster-webui7
-
Option: Benutzerdefinierte Felder auf Eindeutigkeit prüfenPeut-être à nouveau libre @kiarn l’a pris il y a 1528 jours, et aucune pull request n’est ouverte. OuverteSophomorix issue
linuxmuster/linuxmuster-webui7#240 · 5 commentaires · 1 personne assignée ·
-
Feature request Low priority Needs agreement
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
linuxmuster/linuxmuster-webui7#209 · 13 commentaires · 1 réaction ·
-
Support for management groupsPeut-être à nouveau libre @kiarn l’a pris il y a 1763 jours, et aucune pull request n’est ouverte. OuverteFeature request Needs agreement
linuxmuster/linuxmuster-webui7#205 · 5 commentaires · 1 personne assignée ·
-
Print password list for sessionOuverteFeature request Sophomorix issue
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
linuxmuster/linuxmuster-webui7#139 · 2 commentaires ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 35/100
linuxmuster/linuxmuster-webui7#92 · 7 commentaires ·
Toutes les issues de linuxmuster/linuxmuster-webui7
Issues similaires
-
BUG: catalog database credentials printed to logs at startupPeut-être pris @cjboyle l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
-
backend bug ready-for-agent
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
geolens-io/geolens#3639 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
apache/maven-enforcer#1074 ·
Les mainteneurs répondent en général sous 1 jour
-
bug libcudf
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 2 jours