Re: [PATCH] find: Fix broken -ls, add test.

James Youngman <[email protected]> Thu, 23 Jul 2026 21:05:18 +0100
Newsgroups gmane.comp.gnu.findutils.patches,gmane.comp.gnu.findutils.bugs
Message-ID <CAGwX765tjPRh_S+vCnaZ-0osgUcFrO_fsZAZotCA2BZ2JjNuNg@mail.gmail.com>
--0000000000002a726806574cc704
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

I'm pushing the attached patch, which I hope will fix the problem.

On Thu, Jul 23, 2026 at 8:24=E2=80=AFPM James Youngman <[email protected]>=
 wrote:
>
> Yes, the test reproducibly passes for me.   But the filesystem I am
> using is ZFS:
>
> $ yes "" | sed -e '765 q'> /tmp/small-text-file.txt ; \
>   dd if=3D/dev/urandom bs=3D765 of=3D/tmp/random-data.bin  count=3D1 ; \
>   cp /tmp/random-data.bin /tmp/small-text-file.txt . ; \
>   find  \
>     /tmp/random-data.bin random-data.bin /tmp/small-text-file.txt
> small-text-file.txt  \
>     -printf '%%k=3D%k %%b=3D%b %s %p\n' ; \
>   sha1sum /tmp/random-data.bin random-data.bin
> /tmp/small-text-file.txt small-text-file.txt
> 1+0 records in
> 1+0 records out
> 765 bytes copied, 3.9558e-05 s, 19.3 MB/s
> %k=3D4 %b=3D8 765 /tmp/random-data.bin
> %k=3D5 %b=3D9 765 random-data.bin
> %k=3D4 %b=3D8 765 /tmp/small-text-file.txt
> %k=3D1 %b=3D1 765 small-text-file.txt
> 0156e7e4ea8f26c91c5de2f4337d8e1d44e7c556  /tmp/random-data.bin
> 0156e7e4ea8f26c91c5de2f4337d8e1d44e7c556  random-data.bin
> 38957bd663f7efc364ac7c8ed3589fa69520b9e4  /tmp/small-text-file.txt
> 38957bd663f7efc364ac7c8ed3589fa69520b9e4  small-text-file.txt
> $ stat /tmp/random-data.bin random-data.bin /tmp/small-text-file.txt
> small-text-file.txt
>   File: /tmp/random-data.bin
>   Size: 765        Blocks: 8          IO Block: 4096   regular file
> Device: 253,2 Inode: 19          Links: 1
> Access: (0664/-rw-rw-r--)  Uid: ( 1027/   james)   Gid: ( 1027/   james)
> Access: 2026-07-23 20:21:50.226425401 +0100
> Modify: 2026-07-23 20:21:50.222425458 +0100
> Change: 2026-07-23 20:21:50.222425458 +0100
>  Birth: 2026-07-23 20:17:57.985621969 +0100
>   File: random-data.bin
>   Size: 765        Blocks: 9          IO Block: 1024   regular file
> Device: 0,41 Inode: 5342459     Links: 1
> Access: (0664/-rw-rw-r--)  Uid: ( 1027/   james)   Gid: ( 1027/   james)
> Access: 2026-07-23 20:21:50.230425347 +0100
> Modify: 2026-07-23 20:21:50.226425401 +0100
> Change: 2026-07-23 20:21:50.226425401 +0100
>  Birth: 2026-07-23 20:17:57.985621969 +0100
>   File: /tmp/small-text-file.txt
>   Size: 765        Blocks: 8          IO Block: 4096   regular file
> Device: 253,2 Inode: 16          Links: 1
> Access: (0664/-rw-rw-r--)  Uid: ( 1027/   james)   Gid: ( 1027/   james)
> Access: 2026-07-23 20:21:50.226425401 +0100
> Modify: 2026-07-23 20:21:50.218425513 +0100
> Change: 2026-07-23 20:21:50.218425513 +0100
>  Birth: 2026-07-23 20:17:57.981622024 +0100
>   File: small-text-file.txt
>   Size: 765        Blocks: 1          IO Block: 1024   regular file
> Device: 0,41 Inode: 5342460     Links: 1
> Access: (0664/-rw-rw-r--)  Uid: ( 1027/   james)   Gid: ( 1027/   james)
> Access: 2026-07-23 20:21:50.230425347 +0100
> Modify: 2026-07-23 20:21:50.226425401 +0100
> Change: 2026-07-23 20:21:50.226425401 +0100
>  Birth: 2026-07-23 20:17:57.985621969 +0100

--0000000000002a726806574cc704
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0001-find-another-fix-for-the-still-broken-ls-test.patch"
Content-Disposition: attachment; 
	filename="0001-find-another-fix-for-the-still-broken-ls-test.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_mrxxxnde0>
X-Attachment-Id: f_mrxxxnde0

RnJvbSBlYWEzYmE1YTYzYjU2OWRiZjFhNGIxMzg5OTYzZjczNGViZTdlZGQzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYW1lcyBZb3VuZ21hbiA8amFtZXNAeW91bmdtYW4ub3JnPgpE
YXRlOiBUaHUsIDIzIEp1bCAyMDI2IDIwOjI4OjM1ICswMTAwClN1YmplY3Q6IFtQQVRDSF0gZmlu
ZDogYW5vdGhlciBmaXggZm9yIHRoZSBzdGlsbC1icm9rZW4gLWxzIHRlc3QuCgpUaGUgcmVtYWlu
aW5nIHByb2JsZW0gaXMgdGhhdCB0aGUgc3RydWN0IHN0YXQuc3RfYmxvY2tzIHZhbHVlIGZvciBh
CmZpbGUgZGVwZW5kcyBvbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIG9mIHRoZSBmaWxlIHN5c3Rl
bSBhbmQgc28gd2UKY2Fubm90IGV4cGVjdCB0byBjcmVhdGUgYSBmaWxlIGFuZCBjaGVjayB0aGUg
cmVzdXRpbmcgc3RfYmxvY2tzIHZhbHVlCmFnYWluc3QgYSBmaXhlZCBleHBlY3RhdGlvbi4KCiog
dGVzdHMvZmluZC9scy1mb3JtYXQtZmlsZS5zaCAoQVdLIHNjcmlwdCk6IGRvIG5vdCBjaGVjayB0
aGUgdmFsdWUgaW4KJDIsIHRoZSBibG9jayBjb3VudCwgYXMgdGhpcyB3aWxsIHZhcnkgYWNyb3Nz
IGZpbGUgc3lzdGVtcy4gIFJlY29yZCBpbgp0aGUgdGVzdCBsb2cgdGhlIG91dHB1dCBvZiB2YXJp
b3VzIG90aGVyIGNvbW1hbmRzIHdoaWNoIGV4YW1pbmUgdGhlCm91dHB1dCBvZiAtcHJpbnRmICVi
LCAtcHJpbnRmICVrIGFuZCAtbHMgZm9yIHRoZSBmaWxlIHdpdGgKUE9TSVhMWV9DT1JSRUNUIHNl
dCBhbmQgd2l0aCBpdCB1bnNldC4KKHdpdGhfNTEyX2J5dGVfYmxvY2tzKTogc2hlbGwgZnVuY3Rp
b24gd2hpY2ggc2V0cyB1cCB0aGUgZW52aXJvbm1lbnQKc3VjaCB0aGF0IEdOVSBmaW5kIHdpbGwg
dXNlIDUxMi1ieXRlIGJsb2NrcyBhbmQgcnVucyBhIGNvbW1hbmQuCi0tLQogdGVzdHMvZmluZC9s
cy1mb3JtYXQtZmlsZS5zaCB8IDU5ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t
LQogMSBmaWxlIGNoYW5nZWQsIDQyIGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlm
ZiAtLWdpdCBhL3Rlc3RzL2ZpbmQvbHMtZm9ybWF0LWZpbGUuc2ggYi90ZXN0cy9maW5kL2xzLWZv
cm1hdC1maWxlLnNoCmluZGV4IGNlZTM3MzdlLi5iNTY4MzUwYiAxMDA3NTUKLS0tIGEvdGVzdHMv
ZmluZC9scy1mb3JtYXQtZmlsZS5zaAorKysgYi90ZXN0cy9maW5kL2xzLWZvcm1hdC1maWxlLnNo
CkBAIC0yMiw2ICsyMiwxMCBAQCBwcmludF92ZXJfIGZpbmQKICMgRW5zdXJlIHRoYXQgZmluZCBk
b2VzIG5vdCBnZW5lcmFsbHkgc2tpcCB3YXJuaW5ncyBkdWUgdG8gUE9TSVggcmVxdWlyZW1lbnRz
LgogdW5zZXQgUE9TSVhMWV9DT1JSRUNUCiAKK3dpdGhfNTEyX2J5dGVfYmxvY2tzKCkgeworICAg
IGVudiAtdSBCTE9DS19TSVpFIC11IEJMT0NLU0laRSBQT1NJWExZX0NPUlJFQ1Q9MSAiJEAiCit9
CisKICMgV2Ugd2FudCB0byBjaGVjayB0aGUgZGF0ZSBpbiB0aGUgb3V0cHV0IG9mIC1scywgc28g
ZW5zdXJlIHdlJ3JlCiAjIGRlYWxpbmcgd2l0aCB0aGUgQyBsb2NhbGUgb25seS4KIExDX0FMTD1D
CkBAIC0xMjEsMTYgKzEyNSwxMSBAQCB0aGVuCiAgICAgc2tpcF8gImZhaWxlZCB0byBjaGFuZ2Ug
Z3JvdXAgb2YgJHt0ZXN0ZmlsZX0gdG8gJHtncm91cF9vd25lcn0iCiBmaQogCi0jIFJlbWVtYmVy
IHRoZSBmaWxlJ3MgaW5vZGUgbnVtYmVyIGFuZCBibG9jayBjb3VudC4KKyMgUmVtZW1iZXIgdGhl
IGZpbGUncyBpbm9kZSBudW1iZXIuCiBpbnVtPSIkKCBmaW5kICIke3Rlc3RmaWxlfSIgLXByaW50
ZiAnJWlcbicgKSIKLWJsb2Nrc19leHBlY3RlZD0iJCggbHMgLXMgIiR7dGVzdGZpbGV9IiB8IHNl
ZCAtZSAicy8ke3Rlc3RmaWxlfS8vZyIgKSIKLSMgVGhlIHN5c3RlbSdzIHZhbHVlIG9mIEJMT0NL
U0laRSBpcyBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQKLSMgKCJscyAtayIgZm9yY2VzIGxzIHRv
IHVzZSAxS2lCIGJsb2NrcywgYnV0IC1scyBpcyBpbnRlbmRlZAotIyB0byBsb29rIGxpa2UgdGhl
IG91dHB1dCBvZiBscyAtZGlscywgd2l0aG91dCAtaykKLQogCiAjIEdlbmVyYXRlIHRoZSBscyBv
dXRwdXQuCi1maW5kICIke3Rlc3RmaWxlfSIgLWxzID4gb3V0cHV0LnR4dAord2l0aF81MTJfYnl0
ZV9ibG9ja3MgZmluZCAiJHt0ZXN0ZmlsZX0iIC1scyA+IG91dHB1dC50eHQKIAogIyBTaG93IHRo
ZSByZWFkZXIgb2YgdGhlIHRlc3QgbG9nIHdoYXQgdGhlIG91dHB1dCB3YXMuCiBlY2hvICJvdXRw
dXQgb2YgZmluZCAke3Rlc3RmaWxlfSAtbHM6IgpAQCAtMTcyLDcgKzE3MSw2IEBAIGF3ayA8IG91
dHB1dC50eHQgIFwKICAgICAtdiBNRT0iJHtNRV99IiBcCiAgICAgLXYgZmlsZW5hbWVfZXhwZWN0
ZWQ9IiR7dGVzdGZpbGV9IiBcCiAgICAgLXYgaW5vZGVudW09IiR7aW51bX0iIFwKLSAgICAtdiBi
bG9ja3NfZXhwZWN0ZWQ9IiR7YmxvY2tzX2V4cGVjdGVkfSIgXAogICAgIC12IGZpbGVzaXplPSIk
e2ZpbGVzaXplfSIgXAogICAgIC12IHVvd25lcj0iJChpZCAtdW4pIiBcCiAgICAgLXYgZ293bmVy
PSIke2dyb3VwX293bmVyfSIgJwpAQCAtMTkyLDcgKzE5MCw3IEBAIE5SID09IDEgewogICBydj0w
CiAKICAgc3RfaW5vPSQxOwotICBzdF9ibG9ja3M9JDI7CisgICMgTm8gY2hlY2sgaGVyZSBmb3Ig
dGhlIGJsb2NrIGNvdW50LCBzZWUgdGhlIC1wcmludGYgdGVzdHMgYmVsb3cKICAgc3ltYm9saWNf
c3RfbW9kZT0iIiAkMzsKICAgc3Rfbmxpbms9JDQ7CiAgIHN0X3VpZD0kNTsKQEAgLTIxMSwxMyAr
MjA5LDggQEAgTlIgPT0gMSB7CiAgICAgcHJpbnRmKCIlczogZmFpbGVkIHRlc3Q6IGV4cGVjdGVk
IGlub2RlIG51bWJlciAlZCwgZ290ICVzXG4iLCBNRSwgaW5vZGVudW0sICQxKTsKICAgfQogCi0g
ICMgZmllbGQgMjogc2l6ZSBpbiBibG9ja3MKLSAgaWYgKHN0X2Jsb2NrcyAhPSBibG9ja3NfZXhw
ZWN0ZWQpIHsKLSAgICBydj0xCi0gICAgcHJpbnRmKCIlczogZmFpbGVkIHRlc3Q6IGV4cGVjdGVk
IGJsb2NrIGNvdW50ICVkIGdvdCAlZFxuIiwgTUUsIGJsb2Nrc19leHBlY3RlZCwgc3RfYmxvY2tz
KTsKLSAgfSBlbHNlIHsKLSAgICBwcmludGYoIiVzOiBibG9jayBjb3VudCAlZCBsb29rcyBPS1xu
IiwgTUUsIHN0X2Jsb2Nrcyk7Ci0gIH0KKyAgIyBmaWVsZCAyOiBzaXplIGluIGJsb2Nrcy4gIFdl
IGRvIG5vdCBjaGVjayB0aGlzIGJlY2F1c2UgdGhlIGZpbGUgd2lsbCB0YWtlIHVwCisgICMgYSBk
aWZmZXJlbnQgbnVtYmVyIG9mIGJsb2NrcyBvbiBkaWZmZXJlbnQgZmlsZXN5c3RlbXMuCiAKICAg
IyBmaWVsZCAzIGlzIHRoZSBzeW1ib2xpYyBtb2RlOyB3ZSBhbGxvdyBhIGZpbmFsICsKICAgIyBp
biBjYXNlIHRoZXJlIGlzIHNvbWVob3cgYSBub24tZGVmYXVsdCBBQ0wgb24gdGhlIGZpbGUuCkBA
IC0yOTYsNiArMjg5LDM4IEBAIHRoZW4KIGZpCiAKIAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IworIyBHZW5lcmF0ZSB2YXJpb3VzIGtpbmRzIG9mIG91dHB1dCB3aGljaCBtaWdodCBoZWxwIHdp
dGggYWZ0ZXItdGhlLWZhY3QgZGVidWdnaW5nLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor
Citmb3IgZW52X3Zhcl9hc3NpZ25tZW50IGluIFBPU0lYTFlfQ09SUkVDVD0xIFVOUkVMQVRFRF9W
QVI9MAorZG8KKyAgICBmb3Igc2l6ZV9mb3JtYXRfc3BlYyBpbiAgIiU2YiIgIiU2ayIKKyAgICBk
bworICAgICAgICBmb3JtYXRfc3RyPSIlOWkgJHtzaXplX2Zvcm1hdF9zcGVjfSAlTSAlM24gJS04
dSAlLThnICU4cyAlM1RiICUyVGQgJTVUWSAlcFxuIgorICAgICAgICBwcmludGYgJ3dpdGggZW52
aXJvbm1lbnQgdmFyaWFibGUgc2V0dGluZyAlcyBhbmQgb3V0cHV0IGZvcm1hdCAgJXM6XG4nICIk
e2Vudl92YXJfYXNzaWdubWVudH0iICIke2Zvcm1hdF9zdHJ9IgorICAgICAgICBlbnYgLXUgUE9T
SVhMWV9DT1JSRUNUIGVudiAiJHtlbnZfdmFyX2Fzc2lnbm1lbnR9IiBmaW5kICIke3Rlc3RmaWxl
fSIgLXByaW50ZiAiJHtmb3JtYXRfc3RyfSIKKyAgICAgICAgZWNobworICAgIGRvbmUKKyAgICBw
cmludGYgJ3dpdGggZW52aXJvbm1lbnQgdmFyaWFibGUgc2V0dGluZyAlcyBhbmQgLWxzOlxuJyAi
JHtlbnZfdmFyX2Fzc2lnbm1lbnR9IgorICAgIGVudiAtdSBQT1NJWExZX0NPUlJFQ1QgZW52ICIk
e2Vudl92YXJfYXNzaWdubWVudH0iIGZpbmQgIiR7dGVzdGZpbGV9IiAtbHMKKyAgICBlY2hvCisK
KyAgICBmb3JtYXRfc3RyPSclYiAlayAlcyAlcFxuJworICAgIHByaW50ZiAnd2l0aCBlbnZpcm9u
bWVudCB2YXJpYWJsZSBzZXR0aW5nICVzIGFuZCAtcHJpbnRmICVzOlxuJyAiJHtlbnZfdmFyX2Fz
c2lnbm1lbnR9IiAiJHtmb3JtYXRfc3RyfSIKKyAgICBlbnYgLXUgUE9TSVhMWV9DT1JSRUNUIGVu
diAiJHtlbnZfdmFyX2Fzc2lnbm1lbnR9IiBmaW5kICIke3Rlc3RmaWxlfSIgLXByaW50ZiAiJHtm
b3JtYXRfc3RyfSIKKyAgICBlY2hvCitkb25lCisKK2VjaG8gInN0YXQoMSkgb3V0cHV0IGZvciAk
e3Rlc3RmaWxlfToiCitzdGF0ICIke3Rlc3RmaWxlfSIKKworZWNobyAic3RyYWNlIC12ZSBzdGF0
eCB0cmFjZSBmcm9tIHJ1bm5pbmcgc3RhdCgxKSBvbiAke3Rlc3RmaWxlfToiCitzdHJhY2UgLXZl
IHN0YXR4IHN0YXQgIiR7dGVzdGZpbGV9IgorCitmaW5kICIke3Rlc3RmaWxlfSIgLXByaW50ZiAn
RmlsZSBzeXN0ZW0gdHlwZSBvZiAlcCBpcyAlRlxuJworCisKICMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMKICMgQ2hlY2tzIG9uIHRoZSBvdXRwdXQgZ2VuZXJhdGVkIGJ5IC1scywgaW5jbHVkaW5nIHRo
ZSBzcGFjZXMgYmV0d2VlbgogIyBmaWVsZHMuICBJZiB0aGVzZSB0ZXN0cyBicmVhaywgdGhpcyBt
YXkgaW5kaWNhdGUgYSBidWcgaW4gZmluZCwgb3IKQEAgLTMwOSw3ICszMzQsNyBAQCBmaQogIyBH
ZW5lcmF0ZSAiYnkgaGFuZCIgaW4gdGhlIGZpbGUgcHJpbnRmLW91dHB1dC50eHQgc29tZSBvdXRw
dXQgd2hpY2gKICMgc2hvdWxkIG1hdGNoIHRoZSBvdXRwdXQgb2YgLWxzLgogcm0gLWYgLS0gcHJp
bnRmLW91dHB1dC50eHQKLWlmICEgZmluZCAiJHt0ZXN0ZmlsZX0iIC1wcmludGYgJyU5aSAlNmIg
JU0gJTNuICUtOHUgJS04ZyAlOHMgJTNUYiAlMlRkICU1VFkgJXBcbicgPiBwcmludGYtb3V0cHV0
LnR4dAoraWYgISB3aXRoXzUxMl9ieXRlX2Jsb2NrcyBmaW5kICIke3Rlc3RmaWxlfSIgLXByaW50
ZiAnJTlpICU2YiAlTSAlM24gJS04dSAlLThnICU4cyAlM1RiICUyVGQgJTVUWSAlcFxuJyA+IHBy
aW50Zi1vdXRwdXQudHh0CiB0aGVuCiAgICAgZnJhbWV3b3JrX2ZhaWx1cmVfICJ1bmFibGUgdG8g
Y3JlYXRlIHByaW50Zi1vdXRwdXQudHh0IgogZmkKLS0gCjIuNDcuMwoK
--0000000000002a726806574cc704--