왜 'df'가 걸려 있습니까?


22

나는 최근에 멈추는df 곳에 문제를 겪고 있다 . 여기에 strace출력이 있으며, 거기에 앉아 있었기 때문에 내가 죽인 것을 볼 수 있습니다.

$ strace /bin/df
execve("/bin/df", ["/bin/df"], [/* 35 vars */]) = 0
brk(0)                                  = 0x8d03000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7840000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=90781, ...}) = 0
mmap2(NULL, 90781, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7829000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/i386-linux-gnu/i686/cmov/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240o\1\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1401000, ...}) = 0
mmap2(NULL, 1415544, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb76cf000
mprotect(0xb7822000, 4096, PROT_NONE)   = 0
mmap2(0xb7823000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x153) = 0xb7823000
mmap2(0xb7826000, 10616, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7826000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb76ce000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb76ce8d0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0xb7823000, 8192, PROT_READ)   = 0
mprotect(0xb785e000, 4096, PROT_READ)   = 0
munmap(0xb7829000, 90781)               = 0
brk(0)                                  = 0x8d03000
brk(0x8d24000)                          = 0x8d24000
open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=1534656, ...}) = 0
mmap2(NULL, 1534656, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7557000
close(3)                                = 0
open("/etc/mtab", O_RDONLY)             = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=708, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb783f000
read(3, "/dev/sda6 / ext4 rw,errors=remou"..., 4096) = 708
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb783f000, 4096)                = 0
statfs64("/", 84, {f_type="EXT2_SUPER_MAGIC", f_bsize=4096, f_blocks=4805813, f_bfree=3325193, f_bavail=3081072, f_files=1220608, f_ffree=1007617, f_fsid={-1624337824, -871214780}, f_namelen=255, f_frsize=4096}) = 0
open("/usr/share/locale/locale.alias", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=2570, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb783f000
read(3, "# Locale name alias data base.\n#"..., 4096) = 2570
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb783f000, 4096)                = 0
open("/usr/share/locale/en_ZA.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_ZA/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
statfs64("/lib/init/rw", 84, {f_type=0x1021994, f_bsize=4096, f_blocks=1280, f_bfree=1280, f_bavail=1280, f_files=215959, f_ffree=215956, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0
statfs64("/run", 84, {f_type=0x1021994, f_bsize=4096, f_blocks=102000, f_bfree=101823, f_bavail=101823, f_files=215959, f_ffree=215559, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0
statfs64("/sys", 84, {f_type="SYSFS_MAGIC", f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0
statfs64("/dev", 84, {f_type=0x1021994, f_bsize=4096, f_blocks=508762, f_bfree=508762, f_bavail=508762, f_files=213490, f_ffree=213031, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0
statfs64("/run/shm", 84, {f_type=0x1021994, f_bsize=4096, f_blocks=203999, f_bfree=203816, f_bavail=203816, f_files=215959, f_ffree=215955, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0
statfs64("/dev/pts", 84, {f_type="DEVPTS_SUPER_MAGIC", f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0
statfs64("/boot", 84, {f_type="EXT2_SUPER_MAGIC", f_bsize=1024, f_blocks=188403, f_bfree=150550, f_bavail=140822, f_files=48768, f_ffree=48525, f_fsid={-655942775, 1382872797}, f_namelen=255, f_frsize=1024}) = 0
statfs64("/home", 84, {f_type="EXT2_SUPER_MAGIC", f_bsize=4096, f_blocks=66535124, f_bfree=6683145, f_bavail=3303357, f_files=16900096, f_ffree=16633097, f_fsid={-515912651, 307591087}, f_namelen=255, f_frsize=4096}) = 0
statfs64("/sys/fs/fuse/connections", 84, {f_type=0x65735543, f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0
statfs64("/home/wena/temp/mount", 84, ^C <unfinished ...>

실패한 또 다른 도구 gnome-system-monitor는 시작된 직후 중단되는 것처럼 보입니다.


coreutils의 버전은 8.13-2이며 Debian Unstable에서 실행됩니다.
tshepang

난쟁이 요새를 위해 다른 사람이 있습니까?
코리 클라인

@CoryKlein : 저게 뭐죠?
tshepang

1
개발의 알파 단계에서 게임, 마인 크래프트에 대한 영감. 때때로 중단됩니다. 그런 중단에 대한 해결책을 찾기 위해 Google을 검색하면 여기로 이끌었습니다.
코리 클라인

답변:


23

sshfs일부 ssh 서버에서 디렉토리를 마운트하는 데 사용 했으며 네트워크 연결이 끊어졌습니다. 그것은 나타납니다 df탑재하고 대신 정상적으로 실패, 그것은 바로 붙어있어 목록에 노력했다 :(


2
이 문제를 해결하기 위해 지연 마운트 해제를 수행 할 수 있습니다 umount -l /path-to/mount.
ewwhite

12
전혀 실패하지 않기 때문에 정상적으로 실패하지 않습니다. 서버가 응답하기를 참을성있게 기다리고 있습니다.
Gilles 'SO- 악마 그만'

18
않는 df -l일을?
Abhishek A

1
@Gilles : 중단 문제의 고전적인 예.
casualunixer

SMB 마운트 btw에서도 발생합니다. 매우 관련성 : 장착 문제 . 그리고 통계 시스템 호출
David Tonhofer

8

정지와 같은 소프트웨어의 가장 일반적인 원인은 df제대로 응답하지 않는 디스크에서 읽으려고 할 때입니다.

dmesg이 경우에 해당하는지 출력을 확인하십시오. 비정상적인 드라이브는 많은 오류를 발생시킵니다.

불행히도, 이것은 하드웨어 문제인 경향이 있으며 전체 드라이브를 교체해야 할 수도 있습니다. 가능한 모든 것을 백업하는 것이 좋습니다.


4

여기서는 아니지만 레코드를 위해 GNU 구현의 일부 버전 df(8.29에서 수정 된 버전 7.3 이후 ( 이 커밋으로 ))은 작성자가없는 읽을 수있는 fifo / 명명 된 파이프 파일에 매달려 있습니다. https://debbugs.gnu.org/cgi/bugreport.cgi?bug=29038에 표시된 것처럼 열어보십시오.

$ mkfifo fifo
$ strace df fifo
[...]
open("fifo", O_RDONLY|O_NOCTTY  # hanging there

이 문제에 대한 해결책은 무엇입니까?
karthik101

@ karthik101, 편집 참조 : 8.29로 업그레이드하거나 fifo에서 df를 사용하지 마십시오.
Stéphane Chazelas

소스에서 설치하고 훌륭하게 작동합니다.
karthik101

2

내 근본 원인은 드문 일이지만 누군가가 같은 실수를 저지르는 경우를 대비하여 언급하겠습니다. 우분투 16.04.4 cifs에서 사용 중 /etc/auto.direct이었습니다 (최근 16.04에서 업그레이드되었습니다). 나는 추가하지 않았다 vers=1.0.

이전 버전과의 호환성-소프트웨어에서 가장 큰 신화 중 하나입니다.



0

서비스가 나를 위해 일한 것과 같은 문제가 다시 발생했습니다.

$ systemctl restart proc-sys-fs-binfmt_misc.mount


0

위의 답변에서 다루지 않은 또 다른 경우 :

필자의 경우을 사용 하여 파일 시스템을 시도 할 때 중단 된 strace df것을 발견했습니다 .dfstatfskeybase

$ strace df
...   # many lines omitted for brevity
statfs("/run/user/1000/keybase/kbfs", <--- hangs here
^Cstrace: Process 17510 detached

keybase이 특정 문제 를 해결하기 위해 로그 아웃 (및 다시 로그인) :

$ keybase logout
$ df  # doesn't hang anymore
...

$ keybase login
$ df  # still ok
...
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.