numeric sort(1) is broken on -STABLE

Ruslan Ermilov ru at FreeBSD.org
Wed Feb 10 10:49:12 UTC 2010


On Wed, Feb 10, 2010 at 09:58:14AM +0100, Ulrich Spörlein wrote:
> 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

I bet you're using some non-C locale for LC_NUMERIC.
What does "locale" output tell you?

> % 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
> _______________________________________________
> freebsd-stable at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
> 

-- 
Ruslan Ermilov
ru at FreeBSD.org
FreeBSD committer


More information about the freebsd-stable mailing list