[Bug 264081] sort -s (i.e., stable sort) does not work correctly
Date: Thu, 19 May 2022 15:01:24 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=264081 Bug ID: 264081 Summary: sort -s (i.e., stable sort) does not work correctly Product: Base System Version: 13.1-RELEASE Hardware: amd64 OS: Any Status: New Severity: Affects Many People Priority: --- Component: gnu Assignee: bugs@FreeBSD.org Reporter: kyle@kneisl.org Created attachment 234035 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=234035&action=edit chrony "measurements.txt" log output sample Interestingly, the -s option for sort(1), which is supposed to be a "stable sort", i.e., preserving the order of items in the original stream when they have equal sort keys, apparently does not work as intended. I haven't exhausted all of the possibilities, but, in my test files over here, it SEEMS to work for -k1, when the sort key is the first line item. However, it does not seem to work in other cases. I have included a bit of my chronyd measurements log, and you can easily reproduce. Note that in the attached file logsample, containing 32 lines in chronological order for chrony measurements, the following command: cat logsample | sort -s -k4 produce equally keyed items (in fact, all items have equal keys in the 4th line item) that are now *NOT* in the same order as the original stream, so that this sort is NOT stable as expected with -s. For example: 2022-05-19 13:52:03 192.168.1.197 N 2 111 111 1111 9 9 0.17 2.584e-04 6.596e-04 3.849e-06 2.155e-02 2.243e-03 98028536 4I D K 2022-05-19 13:43:30 192.168.1.197 N 2 111 111 1111 9 9 0.21 4.559e-04 5.857e-04 3.849e-06 2.155e-02 1.694e-03 98028536 4I D K 2022-05-19 08:32:09 192.168.1.197 N 2 111 111 1111 9 9 0.30 4.185e-05 6.944e-04 3.849e-06 2.234e-02 3.952e-03 98028536 4I D K 2022-05-19 08:40:46 192.168.1.197 N 2 111 111 1111 9 9 0.51 -4.130e-05 5.296e-04 3.849e-06 2.234e-02 4.471e-03 98028536 4I D K But, cat logsample | sort -s -k1 works fine. I did just upgrade everything to 13.1 yesterday, so I'm not sure how far back this goes, or if it's new. -- You are receiving this mail because: You are the assignee for the bug.