다음 명령(Ubuntu 20.04 및 22.04):
dd if=/dev/urandom count=800000 bs=1 | od -An -t f4 -w4 | sponge | sort -g
GNU 정렬 명령이 CPU의 100%를 차지하여 무기한 정지될 수 있습니다. 이 문제의 원인이 무엇인지 이해하지 못합니다. 그러나 이는 정렬할 파일이 stdin에서 입력되는 경우에만 발생합니다.
답변1
이것은 분명히 실수입니다.
이는 '난'이 명백히 나쁜 위치에 등장하기 때문이다.
이것은 작동합니다(예제보다 100배 크지만 모든 nan을 제거합니다).
dd if=/dev/urandom count=80000000 bs=1 | od -An -t f4 -w4 | sponge | grep -v nan | time sort -g |tail
이 오류는 다음과 같은 경우에 발생할 수 있습니다.
yes nan | head -n128095 | timeout 5 sort -g
미친 부분은 이것이 작동한다는 것입니다.
yes nan | head -n128095 > nan
timeout 5 sort -g < nan
timeout 5 sort -g nan
버그 리포트를 하시나요?