Erstellt vor 9 Jahren

Geschlossen vor 8 Jahren

Zuletzt geändert vor 8 Jahren

#618 closed defect (fixed)

Accessing /dev/mtdblock0 stalls on 7170

Erstellt von: hermann Verantwortlicher:
Priorität: low Meilenstein: freetz-1.2
Komponente: packages Version: devel
Stichworte: Beobachter:
Product Id: Firmware Version:

Beschreibung

blkid hangs, if it is called without parameters:

bklid

This behaviour affects an "old" boxes, such as 7170, …

Workarround solution:
Calling, using parameters. For example:

/var/mod/root # blkid /dev/sd*
/dev/sda1: LABEL="SYSTEM" UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx" TYPE="ext2"
/dev/sda2: LABEL="FAT" UUID="XXXX-YYYY" TYPE="vfat"
/dev/sda4: TYPE="swap"
/dev/sda5: LABEL="DATA" UUID="xxxx-xxx-xxxx" TYPE="ext2"
/dev/sda6: LABEL="ARCHIV" UUID="xxxx-xxx-xxxx" TYPE="ext3"

Other solution may be to write a wrapper for blkid or patch the source code.

Anhänge (2)

busybox_blkid_crash.txt (15.3 KB) - hinzugefügt von hermann vor 9 Jahren.
strace from crash of busybox's blkid
blkid_mtd_workarrounds.patch (1.6 KB) - hinzugefügt von hermann vor 8 Jahren.
Workarround patches for busybox and e2fsprogs against blkid crash at mtd devices

Alle Anhänge herunterladen als: .zip

Änderungshistorie (15)

comment:1 Geändert vor 9 Jahren durch cinereous

could you please attach the strace output you posted yesterday?

Geändert vor 9 Jahren durch hermann

strace from crash of busybox's blkid

comment:2 Geändert vor 9 Jahren durch oliver

Kann es sein, dass das nicht an blkid hängt? Ich meine mich zu erinnern, dass ich solche Hänger schonmal beim Zugriff auf /dev/mtdblock0 gesehen habe.

comment:3 Geändert vor 9 Jahren durch cinereous

Ok, ich hab meine 7170 entmottet und mal getestet. Das hängt tatsächlich bei jedem Aufruf, der irgendwas mit /dev/mtdblock0 zu tun hat.
Hier findt sich schon was darüber. In der einen Tabelle steht schon "Endlosschleife" für /dev/mtdblock0 dabei.

comment:4 Geändert vor 9 Jahren durch oliver

Um welches blkid ging es hier? Wahrscheinlich betrifft es sowohl das busybox Applet wie auch blkid aus e2fsprogs.

comment:5 Geändert vor 9 Jahren durch hermann

Das Verhalten ist allgemeingültig. Sowohl für e2fsprogs-eigenen blkid als auch für blkid der busybox. Es kann sein, dass busybox eine etwas ältere (abgezweige) Version des blkid nutzt. Bei busybox-Variante wirkt sich das nur deutlich dramatischer, weil dort nur der Aufruf ohne Parameter möglich ist. Und somit würde busybox-blkid sich immer aufhängen. Bei e2fsprogs-Variante kann man das Aufhängen verhindern, wenn man blkid mit festen parameter aufruft und z.B. nur auf sdX-Devices leitet (wie in meinem Workarround).
Das Aufhängenverhalten ist auch etwas unterschiedlich. Die busybox-Variante hängt sich "härter" auf und lässt sich per kill nicht abschießen. Dies führt dazu, dass man die Box nicht rebooten kann, nur Stromversorgungsstecker rausziehen. Bei der e2fsprogs-Variante ginge es dagegen mit dem rebooten.

MfG

comment:6 Geändert vor 9 Jahren durch cinereous

Bei beiden Versionen kann man die aufrufende Shell "killen", als _wirklich_ harte Methode.

comment:7 Geändert vor 8 Jahren durch oliver

  • Stichworte blkid gelöscht
  • Zusammenfassung von blkid hangs, if called without parameters on boxes using older (13) kernel nach Accessing /dev/mtdblock0 stalls on 7170 geändert

comment:8 Geändert vor 8 Jahren durch oliver

Was ist denn das Ziel dieses Tickets? Es gibt ein Fehler, der durch die Parameter umgangen wird. Also tritt das Problem nicht wirklich auf.

comment:9 Geändert vor 8 Jahren durch oliver

  • Meilenstein von freetz-1.2 nach freetz-1.3 geändert

comment:10 Geändert vor 8 Jahren durch hermann

Nun haben wir Patches für busybox-blkid und e2fsprogs-blkid. Sie funktionieren zwar auch nicht in 100% der Fälle, ermöglichen aber wenigstens blkid ohne Parameter und ohne crash auszuführen.
Beides ist getestet. Bitte einchecken!

Geändert vor 8 Jahren durch hermann

Workarround patches for busybox and e2fsprogs against blkid crash at mtd devices

comment:11 Geändert vor 8 Jahren durch er13

(In [5940]) blkid:

  • workaround "blkid stalls while accessing mtdblock-devices"-problem by ignoring all mtdblock access attempts
  • refs #618

comment:12 Geändert vor 8 Jahren durch hermann

  • Lösung auf fixed gesetzt
  • Meilenstein von freetz-1.3 nach freetz-1.2 geändert
  • Status von new nach closed geändert

Danke fürs Einchecken!
Nur so als Anmerkung für die Geschichte, damit man nachher nicht durcheinader kommt: er13 hat einen eigenen Patch für e2fsprogs eingecheckt, der sich von meinem ursprünglichen unterscheidet. Deswegen vergesst meinen Vorschlag von oben bitte!

Und Milestone würde ich spätestens auf 1.2 verschieben, wenn sogar nicht auf 1.1.4. Denn letztendlich ist es ein fix.

comment:13 Geändert vor 8 Jahren durch er13

(In [5942]) util-linux-ng:

  • workaround mtdblock-problem, refs #618
  • move it from unstable to testing
Hinweis: Hilfe zur Verwendung von Tickets finden Sie in TracTickets.