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: [email protected]
For additional commands, e-mail: [email protected]