On 13/11/2020 23:46, Mark Thomas wrote: > Eric sent me a copy of the strace (thanks Eric) and while it is > consistent with what has already been observed, it didn't provide any > new information on the socket / file descriptor being closed. > > I'd like to suggest running again with the following: > > sudo strace -r -f -e trace=network,desc -p <tomcat pid> > > That should log the file descriptor being closed (and other fd > activity). There are a couple of things we might be able to do with this: > > - we'll be able to determine if the socket is closed on the same or a > different thread > - we might be able to correlate the time of closure with other logs > (seems unlikely as we have this from Wireshark but you never know) > - the class before the close might be enlightening
Hi Eric, I looked at the updated logs this morning. I don't see any additional logging for file descriptors in the strace output. I wonder if you need a slightly different command on your platform? I'd expect to see entries like this: [pid 8062] 0.000070 openat(AT_FDCWD, "/home/mark/repos/asf-tomcat-master/output/build/webapps/ROOT/bg-nav.png", O_RDONLY) = 57 [pid 8062] 0.000027 fstat(57, <unfinished ...> [pid 8062] 0.000005 <... fstat resumed>{st_mode=S_IFREG|0664, st_size=1401, ...}) = 0 [pid 8062] 0.000043 read(57, <unfinished ...> [pid 8062] 0.000033 <... read resumed>"\211PNG\r\n\32\n\0\0\0\rIHDR\0\0\0\n\0\0\0002\10\6\0\0\0e\33J"..., 1401) = 1401 [pid 8062] 0.000013 close(57 <unfinished ...> showing file access although what I really want to see are the calls to close the sockets (like the last two in the sequence below from a test where I used telnet to perform an HTTP/1.0 request) pid 8069] 0.124099 <... accept resumed>{sa_family=AF_INET6, sin6_port=htons(52656), sin6_flowinfo=htonl(0), inet_pton(AF_INET6, "::ffff:127.0.0.1", &sin6_addr), sin6_scope_id=0}, [28]) = 50 ... [pid 8063] 0.000216 read(50, <unfinished ...> [pid 8063] 0.000058 <... read resumed>"GET / HTTP/1.0\r\n", 8192) = 16 [pid 8063] 0.000029 read(50, <unfinished ...> [pid 8063] 0.000030 <... read resumed>0x7f4f6c000e70, 8192) = -1 EAGAIN (Resource temporarily unavailable) [pid 8064] 0.001061 read(50, "Host: a\r\n", 8192) = 9 [pid 8064] 0.000239 read(50, 0x7f4f60000e70, 8192) = -1 EAGAIN (Resource temporarily unavailable) [pid 8062] 0.000214 read(50, "\r\n", 8192) = 2 [pid 8062] 0.007897 write(50, "HTTP/1.1 200 \r\nContent-Type: tex"..., 8192) = 8192 [pid 8062] 0.000353 write(50, ">Tomcat Native</a></li>\n "..., 3079) = 3079 [pid 8062] 0.002071 getsockopt(50, SOL_SOCKET, SO_LINGER, {l_onoff=0, l_linger=0}, [8]) = 0 [pid 8062] 0.000102 shutdown(50, SHUT_WR) = 0 [pid 8068] 0.000342 close(50) = 0 It is probably worth running a couple of quick tests to figure out the correct form of the strace command on your platform and then retesting. Mark --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org