第 3 条附言 · 2020-04-25 17:45:49 +08:00
使用 strace -v -f 追踪系统调用时发生时的情况:
[pid 29498] inotify_init1(O_CLOEXEC <unfinished ...>
[pid 29499] close(3 <unfinished ...>
[pid 29498] <... inotify_init1 resumed> ) = 4
[pid 29499] <... close resumed> ) = 0
[pid 29498] inotify_add_watch(4, "/run/systemd/ask-password", IN_CLOSE_WRITE|IN_MOVED_TO <unfinished ...>
[pid 29499] open("/lib64/libmount.so.1", O_RDONLY|O_CLOEXEC <unfinished ...>
[pid 29498] <... inotify_add_watch resumed> ) = -1 ENOSPC (No space left on device)
[pid 29499] <... open resumed> ) = 3
[pid 29498] close(3 <unfinished ...>
[pid 29499] read(3, <unfinished ...>
[pid 29498] <... close resumed> ) = 0
[pid 29499] <... read resumed> "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\237\0\0\0\0\0\0"..., 832) = 832
[pid 29498] close(4 <unfinished ...>
[pid 29499] fstat(3, <unfinished ...>
[pid 29498] <... close resumed> ) = 0
[pid 29499] <... fstat resumed> {st_dev=makedev(253, 1), st_ino=8396, st_mode=S_IFREG|0755, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=544, st_size=277808, st_atime=2019/08/09-11:10:18, st_mtime=2019/08/09-11:10:18, st_ctime=2019/10/09-21:11:09.543361534}) = 0
[pid 29498] writev(2, [{"Error: No space left on device", 30}, {"\n", 1}], 2Error: No space left on device
<unfinished ...>
[pid 29499] mmap(NULL, 2370944, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0 <unfinished ...>
看起来是 inotify_add_watch 函数导致的, 还是没看出来具体什么导致了 No space left on device