numeric sort(1) is broken on -STABLE

Ulrich Spörlein uqs at FreeBSD.org
Wed Feb 10 08:58:16 UTC 2010


Hi guys,

not sure if this is a pilot error, but it seems to me that gnu sort -n
is broken on at least -STABLE (couldn't test -CURRENT yet).

It somehow does not manifest when using a simple list and sorting on a
specific column, but it always happens to me when using it in
combination with find(1).

% truncate -s10m a; truncate -s5m b; truncate -s800k c
% find a b c -ls|sort -nk7,7
     8       64 -rw-r--r--    1 uqs              wheel            10485760 Feb 10 09:13 a
    10       64 -rw-r--r--    1 uqs              wheel             5242880 Feb 10 09:13 b
    12       64 -rw-r--r--    1 uqs              wheel              819200 Feb 10 09:13 c
% find a b c -ls|sort -gk7,7
    12       64 -rw-r--r--    1 uqs              wheel              819200 Feb 10 09:13 c
    10       64 -rw-r--r--    1 uqs              wheel             5242880 Feb 10 09:13 b
     8       64 -rw-r--r--    1 uqs              wheel            10485760 Feb 10 09:13 a

at least -g does what is expected and I can work around this for the time being. Here's bsdsort

% find a b c -ls|bsdsort -nk7,7
    12       64 -rw-r--r--    1 uqs              wheel              819200 Feb 10 09:13 c
    10       64 -rw-r--r--    1 uqs              wheel             5242880 Feb 10 09:13 b
     8       64 -rw-r--r--    1 uqs              wheel            10485760 Feb 10 09:13 a

and this is on Solaris 8

% find a b c -ls|sort -nk7,7
546728   16 -rw-r--r--   1 spoerul xxx        819200 Feb 10 09:49 c
546727   16 -rw-r--r--   1 spoerul xxx       5242880 Feb 10 09:48 b
546724   16 -rw-r--r--   1 spoerul xxx      10485760 Feb 10 09:48 a

It even occured to me, that we don't have a sort regression suite under
tools/regression. Anyone know a place to find one with a suitable license?

Regards,
Uli


More information about the freebsd-stable mailing list