On 03/15/2021 11:20 PM, Mike Fleetwood wrote:
On Sat, 13 Mar 2021 at 14:28, Edward Shishkin <edward.shishkin@xxxxxxxxx> wrote:
On 03/13/2021 12:37 PM, Edward Shishkin wrote:
On 03/12/2021 08:36 PM, Mike Fleetwood wrote:
Hi,
Occasionally mkfs.reiser4 creates a file system without a UUID,
debugfs.reiser4 reports UUID as '<none>'. This is being detected in
GParted's file system interface CI tests [1] which exercises the resier4
commands.
In a Ubuntu 20.04 LTS VM with both resier4progs-1.2.1-1 package and
current code from GIT, the fault can easily be replicated like this:
truncate -s 256M test.img
i=1
while :
do
mkfs.reiser4 --force --yes --label '' test.img
line=`debugfs.reiser4 test.img 2> /dev/null | egrep '^uuid:'`
echo "[$i] $line"
((i++))
echo "$line" | grep -q '<none>' && break
done
Output fragment:
[1] uuid: 17073919-e41d-4892-9b22-4294d1544c4a
[2] uuid: af2821de-ea85-4f20-9621-4fbd128b3fb8
[3] uuid: c0fb805b-e224-4695-a504-d87460d158ae
...
[35] uuid: d604794d-097f-4810-bbb3-01a1518f3ef1
[36] uuid: 9634100c-1f98-42b3-a684-c9df77ab54e2
[37] uuid: <none>
Performing the same test with resierfs and ext4 runs for many hours
doing 100,000s of iterations without issue.
It seems that debugfs.reiser4 prints uuid incorrectly: it assumes that
binary uuid can't contain '\0' symbols, which apparently is wrong.
Thus, if the first uuid's symbol is '\0', debugfs thinks that uuid is
not set and prints "none" ;)
I'll try to prepare a fixup a bit later.
Special thanks for the nice testing script!
Here is the fixup:
https://github.com/edward6/reiser4progs/commit/4802cdb18ae03031d0e51a58b6655f3b99021ec2
Your fix to debugfs.reiser4 allows for printing of UUIDs correctly.
Here's my pull request to fix mkfs.reiser4 for not writing UUIDs
correctly in the first place.
https://github.com/edward6/reiser4progs/pull/1
Mike, thanks a lot!
For me personally, this is the worst kind of bugs (hardly fishable by
code reviews plus not always reproducible).
I cherry pick-ed your commit also for the parallel branch "format41":
https://github.com/edward6/reiser4progs/commit/01a5e0e41ec8d5147091d44e902d60f61c336f30
Edward.