我找其中一个等待shutdown的进程,跟踪下结果如下,发现有Resource temporarily unavailable不知道什么原因,这个问题只有使用nginx-tfs时才会出现,版本tengine-2.1.0和tengine2.1.2上都会出现,有的进程shutdown状态持续到几个月。
strace -p 31072
Process 31072 attached - interrupt to quit
epoll_wait(27, {}, 512, 7029) = 0
epoll_wait(27, {}, 512, 1) = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 2682
ioctl(2682, FIONBIO, [1]) = 0
epoll_ctl(27, EPOLL_CTL_ADD, 2682, {EPOLLIN|EPOLLOUT|EPOLLET|0x2000, {u32=495118000, u64=140699328767664}}) = 0
connect(2682, {sa_family=AF_INET, sin_port=htons(5100), sin_addr=inet_addr("172.16.0.198")}, 16) = -1 EINPROGRESS (Operation now in progress)
epoll_wait(27, {{EPOLLOUT, {u32=495118000, u64=140699328767664}}}, 512, 9999) = 1
getsockopt(2682, SOL_SOCKET, SO_ERROR, [102868521188327424], [4]) = 0
writev(2682, [{"TFSN\r\1\0\0D\0\2\0f\20\r\0\0\0\0\0gi-\3632\0\0\0002-31"..., 293}], 1) = 293
epoll_wait(27, {{EPOLLIN|EPOLLOUT, {u32=495118000, u64=140699328767664}}}, 512, 9997) = 1
readv(2682, [{"TFSN\1\0\0\0E\0\2\0f\20\r\0\0\0\0\0\253\306Hl", 24}, {"\0\311\377\377\27\0\0\0execute message failed\0\2"..., 20971520}], 2) = 25
recvfrom(2682, 0x7fff6b9ed65f, 1, 2, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)
getsockopt(2682, SOL_SOCKET, SO_ERROR, [102868521188327424], [4]) = 0
writev(2682, [{"TFSN\r\1\0\0D\0\2\0g\20\r\0\0\0\0\0\23\310\36232\0\0\0001-31"..., 293}], 1) = 293
readv(2682, 0x7fff6b9ed4c0, 2) = -1 EAGAIN (Resource temporarily unavailable)
epoll_wait(27, {{EPOLLIN|EPOLLOUT, {u32=495118000, u64=140699328767664}}}, 512, 9996) = 1
readv(2682, [{"TFSN\1\0\0\0E\0\2\0g\20\r\0\0\0\0\0\253\306Hl", 24}, {"\0\311\377\377\27\0\0\0execute message failed\0\2"..., 20971520}], 2) = 25
recvfrom(2682, 0x7fff6b9ed60f, 1, 2, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)
close(2682) = 0
我找其中一个等待shutdown的进程,跟踪下结果如下,发现有Resource temporarily unavailable不知道什么原因,这个问题只有使用nginx-tfs时才会出现,版本tengine-2.1.0和tengine2.1.2上都会出现,有的进程shutdown状态持续到几个月。
strace -p 31072
Process 31072 attached - interrupt to quit
epoll_wait(27, {}, 512, 7029) = 0
epoll_wait(27, {}, 512, 1) = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 2682
ioctl(2682, FIONBIO, [1]) = 0
epoll_ctl(27, EPOLL_CTL_ADD, 2682, {EPOLLIN|EPOLLOUT|EPOLLET|0x2000, {u32=495118000, u64=140699328767664}}) = 0
connect(2682, {sa_family=AF_INET, sin_port=htons(5100), sin_addr=inet_addr("172.16.0.198")}, 16) = -1 EINPROGRESS (Operation now in progress)
epoll_wait(27, {{EPOLLOUT, {u32=495118000, u64=140699328767664}}}, 512, 9999) = 1
getsockopt(2682, SOL_SOCKET, SO_ERROR, [102868521188327424], [4]) = 0
writev(2682, [{"TFSN\r\1\0\0D\0\2\0f\20\r\0\0\0\0\0gi-\3632\0\0\0002-31"..., 293}], 1) = 293
epoll_wait(27, {{EPOLLIN|EPOLLOUT, {u32=495118000, u64=140699328767664}}}, 512, 9997) = 1
readv(2682, [{"TFSN\1\0\0\0E\0\2\0f\20\r\0\0\0\0\0\253\306Hl", 24}, {"\0\311\377\377\27\0\0\0execute message failed\0\2"..., 20971520}], 2) = 25
recvfrom(2682, 0x7fff6b9ed65f, 1, 2, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)
getsockopt(2682, SOL_SOCKET, SO_ERROR, [102868521188327424], [4]) = 0
writev(2682, [{"TFSN\r\1\0\0D\0\2\0g\20\r\0\0\0\0\0\23\310\36232\0\0\0001-31"..., 293}], 1) = 293
readv(2682, 0x7fff6b9ed4c0, 2) = -1 EAGAIN (Resource temporarily unavailable)
epoll_wait(27, {{EPOLLIN|EPOLLOUT, {u32=495118000, u64=140699328767664}}}, 512, 9996) = 1
readv(2682, [{"TFSN\1\0\0\0E\0\2\0g\20\r\0\0\0\0\0\253\306Hl", 24}, {"\0\311\377\377\27\0\0\0execute message failed\0\2"..., 20971520}], 2) = 25
recvfrom(2682, 0x7fff6b9ed60f, 1, 2, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)
close(2682) = 0