On 23/05/2023 20:44, наб wrote:
Package: coreutils
Version: 9.1-1
Version: 8.32-4+b1
Severity: normal

Dear Maintainer,

This happens regardless of the blockdev size:
   $ split -n20 /dev/loop2
   split: /dev/loop2: cannot determine file size: Value too large for defined 
data type
and with
   $ split -n3 /dev/full
   split: /dev/full: cannot determine file size: Value too large for defined 
data type
the normal message is
   $ cat | split -n20
   split: -: cannot determine file size
i.e. w/o strerror.
Nothing's EOVERFLOW-worthy here, one'd think.

However:
   $ split -n20
   split: -: cannot determine file size
   $ split -n20 /dev/pts/0
   split: /dev/pts/0: cannot determine file size
   $ split -n20 /dev/full
   split: /dev/full: cannot determine file size: Value too large for defined 
data type
   $ split -n20 /dev/zero
   split: /dev/zero: cannot determine file size: Value too large for defined 
data type
   $ split -n20 /dev/rfkill
   split: /dev/rfkill: cannot determine file size
so normal unseekable files get no strerror,
/dev/full and /dev/zero are seekable and somehow yield EOVERFLOWs as well.

Oddly:
   $ split -n20 /dev/autofs
   split: /dev/autofs: cannot determine file size: Invalid argument
but /dev/autofs is seekable, and only EINVALs on read()s.

Also oddly:
   $ split -n20 /dev/null
just works.
Is it hard-coded somehow? This isn't noted in the manual.

This has all changed in coreutils 9.2 with:
https://github.com/coreutils/coreutils/commit/aa266f1b3

That causes data to be read, rather than depending on lseek.

cheers,
Pádraig

Reply via email to