reqwest
reqwest copied to clipboard
[BUG] POST/PUT/PATCH with Proxy and without body incur 10 second delay before being sent
Good morning, and thank you for all your work on the various libraries you maintain!
I've done a bit of digging in source and searched through existing issues, but didn't find a solution, so I'm here hoping you can steer me in the right direction.
When I make a request to a site with the following settings, there is a 10 second delay before the request is sent. The site doesn't seem to matter, nor does http vs https.
- method: POST, PUT, or PATCH
- proxy: yes (burp on localhost:8080)
- body: empty/none
Environment:
- Linux main 5.11.0-49-generic 55-Ubuntu SMP Wed Jan 12 17:36:34 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
- rustc 1.60.0-nightly (22e491ac7 2022-01-13)
Adding something to the body resolves the issue, but as shown below from other tools/libraries, shouldn't be required.
Below you'll find some of the information I gathered while troubleshooting. Any help would be appreciated, thank you!
Small sample for reproduction (site doesn't matter):
use reqwest::{redirect::Policy, Client, Method, Proxy, Url};
use std::error::Error;
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
env_logger::init();
let client = Client::builder()
.danger_accept_invalid_certs(true)
.http1_title_case_headers()
.gzip(true)
.connection_verbose(true)
.redirect(Policy::none())
.proxy(Proxy::http("http://127.0.0.1:8080")?)
.proxy(Proxy::https("http://127.0.0.1:8080")?)
.build()?;
let req = client.request(
Method::from_bytes(b"POST")?,
Url::parse("http://10.10.11.143/hta")?,
).send().await?;
Ok(())
}
[dependencies]
reqwest = {version = "0.11.9", features = ["gzip", "deflate"]}
tokio = { version = "1", features = ["full"] }
env_logger = "0.9.0"
log = "0.4.14"
A few of the different requests captured in burp that dont delay for 10 seconds:
import requests
r = requests.post("http://10.10.11.143/hta", proxies={'http': 'http://127.0.0.1:8080'})
print(r)
ffuf -u http://10.10.11.143/FUZZ -X POST -x http://127.0.0.1:8080 -w small-list
gobuster dir -u http://10.10.11.143 -w small-list --proxy http://127.0.0.1:8080 -m POST
curl
, on the other hand, does delay for 10 seconds
strace -t curl -x http://127.0.0.1:8080 -X POST http://10.10.11.143/hta -vvv
snippet of curl
's strace logs; it polls for 10 seconds and then sends.
... snip ...
07:28:46 poll([{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
07:28:46 rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f2df33ae1f0}, NULL, 8) = 0
07:28:46 poll([{fd=5, events=POLLIN}, {fd=3, events=POLLIN}], 2, 191) = 0 (Timeout)
07:28:46 rt_sigaction(SIGPIPE, NULL, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f2df33ae1f0}, 8) = 0
07:28:46 rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f2df33ae1f0}, NULL, 8) = 0
07:28:46 poll([{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
07:28:46 rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f2df33ae1f0}, NULL, 8) = 0
07:28:46 poll([{fd=5, events=POLLIN}, {fd=3, events=POLLIN}], 2, 1000) = 0 (Timeout)
07:28:47 rt_sigaction(SIGPIPE, NULL, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f2df33ae1f0}, 8) = 0
07:28:47 rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f2df33ae1f0}, NULL, 8) = 0
07:28:47 poll([{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
07:28:47 rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f2df33ae1f0}, NULL, 8) = 0
07:28:47 poll([{fd=5, events=POLLIN}, {fd=3, events=POLLIN}], 2, 1000) = 0 (Timeout)
07:28:48 rt_sigaction(SIGPIPE, NULL, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f2df33ae1f0}, 8) = 0
07:28:48 rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f2df33ae1f0}, NULL, 8) = 0
07:28:48 poll([{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
07:28:48 rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f2df33ae1f0}, NULL, 8) = 0
07:28:48 poll([{fd=5, events=POLLIN}, {fd=3, events=POLLIN}], 2, 1000) = 0 (Timeout)
07:28:49 rt_sigaction(SIGPIPE, NULL, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f2df33ae1f0}, 8) = 0
07:28:49 rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f2df33ae1f0}, NULL, 8) = 0
07:28:49 poll([{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
07:28:49 rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f2df33ae1f0}, NULL, 8) = 0
07:28:49 poll([{fd=5, events=POLLIN}, {fd=3, events=POLLIN}], 2, 1000^C) = ? ERESTART_RESTARTBLOCK (Interrupted by signal)
... snip ...
trace logs from sample rust program:
[2022-02-19T13:06:19Z DEBUG reqwest::connect] starting new connection: http://10.10.11.143/
[2022-02-19T13:06:19Z DEBUG reqwest::connect] proxy(http://127.0.0.1:8080) intercepts 'http://10.10.11.143/'
[2022-02-19T13:06:19Z TRACE mio::poll] registering event source with poller: token=Token(1), interests=READABLE | WRITABLE
[2022-02-19T13:06:19Z TRACE want] signal: Want
[2022-02-19T13:06:19Z TRACE want] signal found waiting giver, notifying
[2022-02-19T13:06:19Z TRACE want] poll_want: taker wants!
!! 10 second delay !!
[2022-02-19T13:06:29Z TRACE reqwest::connect::verbose] 97c5c4fb read: b"HTTP/1.1 405 Method Not Allowed\r\nDate: Sat, 19 Feb 2022 13:06:28 GMT\r\nServer: Apache/2.4.37 (centos) OpenSSL/1.1.1k mod_fcgid/2.3.9\r\nX-Backend-Server: office.paper\r\nAllow: OPTIONS,HEAD,GET,POST,TRACE\r\nContent-Length: 222\r\nKeep-Alive: timeout=5, max=100\r\nConnection: Keep-Alive\r\nContent-Type: text/html; charset=iso-8859-1\r\n\r\n<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>405 Method Not Allowed</title>\n</head><body>\n<h1>Method Not Allowed</h1>\n<p>The requested method PATCH is not allowed for this URL.</p>\n</body></html>\n"
[2022-02-19T13:06:29Z TRACE reqwest::connect::verbose] 97c5c4fb read: b""
[2022-02-19T13:06:29Z DEBUG reqwest::async_impl::client] response '405 Method Not Allowed' for http://10.10.11.143/hta
[2022-02-19T13:06:29Z TRACE mio::poll] deregistering event source from poller
[2022-02-19T13:06:29Z TRACE want] signal: Closed
[2022-02-19T13:06:29Z TRACE want] signal found waiting giver, notifying
[2022-02-19T13:06:29Z TRACE want] poll_want: closed
strace output from sample rust program:
07:09:14 execve("./target/debug/ferox-troubleshooting", ["./target/debug/ferox-troubleshoo"...], 0x7fffaf5873f8 /* 79 vars */) = 0
07:09:14 brk(NULL) = 0x559e77374000
07:09:14 arch_prctl(0x3001 /* ARCH_??? */, 0x7ffe7496d3d0) = -1 EINVAL (Invalid argument)
07:09:14 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
07:09:14 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
07:09:14 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=144950, ...}, AT_EMPTY_PATH) = 0
07:09:14 mmap(NULL, 144950, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f1ac008e000
07:09:14 close(3) = 0
07:09:14 openat(AT_FDCWD, "/usr/local/lib/libssl.so.1.1", O_RDONLY|O_CLOEXEC) = 3
07:09:14 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\367\1\0\0\0\0\0"..., 832) = 832
07:09:14 newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=702528, ...}, AT_EMPTY_PATH) = 0
07:09:14 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f1ac008c000
07:09:14 mmap(NULL, 616272, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f1abfff5000
07:09:14 mmap(0x7f1ac0011000, 344064, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c000) = 0x7f1ac0011000
07:09:14 mmap(0x7f1ac0065000, 106496, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x70000) = 0x7f1ac0065000
07:09:14 mmap(0x7f1ac007f000, 53248, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x89000) = 0x7f1ac007f000
07:09:14 close(3) = 0
07:09:14 openat(AT_FDCWD, "/usr/local/lib/libcrypto.so.1.1", O_RDONLY|O_CLOEXEC) = 3
07:09:14 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\200\7\0\0\0\0\0"..., 832) = 832
07:09:14 newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=3381568, ...}, AT_EMPTY_PATH) = 0
07:09:14 mmap(NULL, 3052576, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f1abfd0b000
07:09:14 mmap(0x7f1abfd82000, 1789952, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x77000) = 0x7f1abfd82000
07:09:14 mmap(0x7f1abff37000, 573440, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x22c000) = 0x7f1abff37000
07:09:14 mmap(0x7f1abffc3000, 184320, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2b7000) = 0x7f1abffc3000
07:09:14 mmap(0x7f1abfff0000, 17440, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f1abfff0000
07:09:14 close(3) = 0
07:09:14 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
07:09:14 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\3405\0\0\0\0\0\0"..., 832) = 832
07:09:14 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=104984, ...}, AT_EMPTY_PATH) = 0
07:09:14 mmap(NULL, 107592, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f1abfcf0000
07:09:14 mprotect(0x7f1abfcf3000, 90112, PROT_NONE) = 0
07:09:14 mmap(0x7f1abfcf3000, 73728, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x7f1abfcf3000
07:09:14 mmap(0x7f1abfd05000, 12288, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x7f1abfd05000
07:09:14 mmap(0x7f1abfd09000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18000) = 0x7f1abfd09000
07:09:14 close(3) = 0
07:09:14 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
07:09:14 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\200\0\0\0\0\0\0"..., 832) = 832
07:09:14 pread64(3, "\4\0\0\0 \0\0\0\5\0\0\0GNU\0\2\0\0\300\4\0\0\0\3\0\0\0\0\0\0\0"..., 48, 792) = 48
07:09:14 pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0\270<\302\35\177\205gAq\255\235\6`\247\325r"..., 68, 840) = 68
07:09:14 newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=150720, ...}, AT_EMPTY_PATH) = 0
07:09:14 mmap(NULL, 136240, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f1abfcce000
07:09:14 mmap(0x7f1abfcd5000, 65536, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x7f1abfcd5000
07:09:14 mmap(0x7f1abfce5000, 20480, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17000) = 0x7f1abfce5000
07:09:14 mmap(0x7f1abfcea000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b000) = 0x7f1abfcea000
07:09:14 mmap(0x7f1abfcec000, 13360, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f1abfcec000
07:09:14 close(3) = 0
07:09:14 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
07:09:14 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\363\0\0\0\0\0\0"..., 832) = 832
07:09:14 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=1364824, ...}, AT_EMPTY_PATH) = 0
07:09:14 mmap(NULL, 1364240, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f1abfb80000
07:09:14 mmap(0x7f1abfb8f000, 679936, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf000) = 0x7f1abfb8f000
07:09:14 mmap(0x7f1abfc35000, 618496, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xb5000) = 0x7f1abfc35000
07:09:14 mmap(0x7f1abfccc000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14b000) = 0x7f1abfccc000
07:09:14 close(3) = 0
07:09:14 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
07:09:14 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \"\0\0\0\0\0\0"..., 832) = 832
07:09:14 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=22912, ...}, AT_EMPTY_PATH) = 0
07:09:14 mmap(NULL, 24848, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f1abfb79000
07:09:14 mmap(0x7f1abfb7b000, 8192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f1abfb7b000
07:09:14 mmap(0x7f1abfb7d000, 4096, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4000) = 0x7f1abfb7d000
07:09:14 mmap(0x7f1abfb7e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4000) = 0x7f1abfb7e000
07:09:14 close(3) = 0
07:09:14 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
07:09:14 read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\206\2\0\0\0\0\0"..., 832) = 832
07:09:14 pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
07:09:14 pread64(3, "\4\0\0\0 \0\0\0\5\0\0\0GNU\0\2\0\0\300\4\0\0\0\3\0\0\0\0\0\0\0"..., 48, 848) = 48
07:09:14 pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0+H)\227\201T\214\233\304R\352\306\3379\220%"..., 68, 896) = 68
07:09:14 newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=1983576, ...}, AT_EMPTY_PATH) = 0
07:09:14 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f1abfb77000
07:09:14 pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
07:09:14 mmap(NULL, 2012056, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f1abf98b000
07:09:14 mmap(0x7f1abf9b1000, 1486848, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x26000) = 0x7f1abf9b1000
07:09:14 mmap(0x7f1abfb1c000, 311296, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x191000) = 0x7f1abfb1c000
07:09:14 mmap(0x7f1abfb68000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1dc000) = 0x7f1abfb68000
07:09:14 mmap(0x7f1abfb6e000, 33688, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f1abfb6e000
07:09:14 close(3) = 0
07:09:14 mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f1abf988000
07:09:14 arch_prctl(ARCH_SET_FS, 0x7f1abf988900) = 0
07:09:14 mprotect(0x7f1abfb68000, 12288, PROT_READ) = 0
07:09:14 mprotect(0x7f1abfb7e000, 4096, PROT_READ) = 0
07:09:14 mprotect(0x7f1abfccc000, 4096, PROT_READ) = 0
07:09:14 mprotect(0x7f1abfcea000, 4096, PROT_READ) = 0
07:09:14 mprotect(0x7f1abfd09000, 4096, PROT_READ) = 0
07:09:14 mprotect(0x7f1abffc3000, 176128, PROT_READ) = 0
07:09:14 mprotect(0x7f1ac007f000, 32768, PROT_READ) = 0
07:09:14 mprotect(0x559e753d8000, 548864, PROT_READ) = 0
07:09:14 mprotect(0x7f1ac00e4000, 8192, PROT_READ) = 0
07:09:14 munmap(0x7f1ac008e000, 144950) = 0
07:09:14 set_tid_address(0x7f1abf988bd0) = 3303193
07:09:14 set_robust_list(0x7f1abf988be0, 24) = 0
07:09:14 rt_sigaction(SIGRTMIN, {sa_handler=0x7f1abfcd5b90, sa_mask=[], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x7f1abfce21f0}, NULL, 8) = 0
07:09:14 rt_sigaction(SIGRT_1, {sa_handler=0x7f1abfcd5c30, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART|SA_SIGINFO, sa_restorer=0x7f1abfce21f0}, NULL, 8) = 0
07:09:14 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
07:09:14 prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
07:09:14 poll([{fd=0, events=0}, {fd=1, events=0}, {fd=2, events=0}], 3, 0) = 0 (Timeout)
07:09:14 rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f1abf9cc040}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
07:09:14 rt_sigaction(SIGSEGV, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
07:09:14 rt_sigaction(SIGSEGV, {sa_handler=0x559e751d1be0, sa_mask=[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_SIGINFO, sa_restorer=0x7f1abfce21f0}, NULL, 8) = 0
07:09:14 rt_sigaction(SIGBUS, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
07:09:14 rt_sigaction(SIGBUS, {sa_handler=0x559e751d1be0, sa_mask=[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_SIGINFO, sa_restorer=0x7f1abfce21f0}, NULL, 8) = 0
07:09:14 sigaltstack(NULL, {ss_sp=NULL, ss_flags=SS_DISABLE, ss_size=0}) = 0
07:09:14 mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f1ac00af000
07:09:14 mprotect(0x7f1ac00af000, 4096, PROT_NONE) = 0
07:09:14 sigaltstack({ss_sp=0x7f1ac00b0000, ss_flags=0, ss_size=8192}, NULL) = 0
07:09:14 brk(NULL) = 0x559e77374000
07:09:14 brk(0x559e77395000) = 0x559e77395000
07:09:14 openat(AT_FDCWD, "/proc/self/maps", O_RDONLY|O_CLOEXEC) = 3
07:09:14 prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
07:09:14 newfstatat(3, "", {st_mode=S_IFREG|0444, st_size=0, ...}, AT_EMPTY_PATH) = 0
07:09:14 read(3, "559e74a8b000-559e74b73000 r--p 0"..., 1024) = 1024
07:09:14 read(3, "abf9b1000-7f1abfb1c000 r-xp 0002"..., 1024) = 1024
07:09:14 read(3, "lib/x86_64-linux-gnu/libdl-2.33."..., 1024) = 1024
07:09:14 read(3, "sr/lib/x86_64-linux-gnu/libpthre"..., 1024) = 1024
07:09:14 read(3, "00077000 fd:00 2862 "..., 1024) = 1024
07:09:14 read(3, "--p 00000000 00:00 0 \n7f1ac00b00"..., 1024) = 946
07:09:14 close(3) = 0
07:09:14 sched_getaffinity(3303193, 32, [0, 1, 2, 3, 4, 5, 6, 7]) = 8
07:09:14 openat(AT_FDCWD, "/proc/self/cgroup", O_RDONLY|O_CLOEXEC) = 3
07:09:14 read(3, "12:memory:/user.slice/user-1000."..., 8192) = 473
07:09:14 close(3) = 0
07:09:14 openat(AT_FDCWD, "/proc/self/mountinfo", O_RDONLY|O_CLOEXEC) = 3
07:09:14 read(3, "24 29 0:22 / /sys rw,nosuid,node"..., 8192) = 4023
07:09:14 close(3) = 0
07:09:14 openat(AT_FDCWD, "/sys/fs/cgroup/cpu,cpuacct/user.slice/cpu.cfs_quota_us", O_RDONLY|O_CLOEXEC) = 3
07:09:14 statx(0, NULL, AT_STATX_SYNC_AS_STAT, STATX_ALL, NULL) = -1 EFAULT (Bad address)
07:09:14 statx(3, "", AT_STATX_SYNC_AS_STAT|AT_EMPTY_PATH, STATX_ALL, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=0, ...}) = 0
07:09:14 lseek(3, 0, SEEK_CUR) = 0
07:09:14 read(3, "-1\n", 32) = 3
07:09:14 read(3, "", 29) = 0
07:09:14 close(3) = 0
07:09:14 sched_getaffinity(0, 128, [0, 1, 2, 3, 4, 5, 6, 7]) = 8
07:09:14 epoll_create1(EPOLL_CLOEXEC) = 3
07:09:14 eventfd2(0, EFD_CLOEXEC|EFD_NONBLOCK) = 4
07:09:14 epoll_ctl(3, EPOLL_CTL_ADD, 4, {events=EPOLLIN|EPOLLRDHUP|EPOLLET, data={u32=2147483648, u64=2147483648}}) = 0
07:09:14 fcntl(3, F_DUPFD_CLOEXEC, 3) = 5
07:09:14 socketpair(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0, [6, 7]) = 0
07:09:14 fcntl(6, F_DUPFD_CLOEXEC, 0) = 8
07:09:14 epoll_ctl(5, EPOLL_CTL_ADD, 8, {events=EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET, data={u32=0, u64=0}}) = 0
07:09:14 getrandom("\x3a\xe4\x61\xad\x12\xbc\xc4\x48\x65\x8e\x1b\x5d\xb4\x87\xb1\x37", 16, GRND_NONBLOCK) = 16
07:09:14 futex(0x7f1abfb7f0c8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
07:09:14 mmap(NULL, 2101248, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f1abf787000
07:09:14 mprotect(0x7f1abf788000, 2097152, PROT_READ|PROT_WRITE) = 0
07:09:14 rt_sigprocmask(SIG_BLOCK, ~[], [QUIT], 8) = 0
07:09:14 clone(child_stack=0x7f1abf986d30, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tid=[3303194], tls=0x7f1abf987640, child_tidptr=0x7f1abf987910) = 3303194
07:09:14 rt_sigprocmask(SIG_SETMASK, [QUIT], NULL, 8) = 0
07:09:14 mmap(NULL, 2101248, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f1abf586000
07:09:14 mprotect(0x7f1abf587000, 2097152, PROT_READ|PROT_WRITE) = 0
07:09:14 rt_sigprocmask(SIG_BLOCK, ~[], [QUIT], 8) = 0
07:09:14 clone(child_stack=0x7f1abf785d30, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tid=[3303195], tls=0x7f1abf786640, child_tidptr=0x7f1abf786910) = 3303195
07:09:14 rt_sigprocmask(SIG_SETMASK, [QUIT], NULL, 8) = 0
07:09:14 futex(0x7f1abf9874b0, FUTEX_WAKE_PRIVATE, 1) = 1
07:09:14 sched_yield() = 0
07:09:14 futex(0x7f1abf988770, FUTEX_WAIT_PRIVATE, 1, NULL) = 0
07:09:14 mmap(NULL, 2101248, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f1abf385000
07:09:14 mprotect(0x7f1abf386000, 2097152, PROT_READ|PROT_WRITE) = 0
07:09:14 rt_sigprocmask(SIG_BLOCK, ~[], [QUIT], 8) = 0
07:09:14 clone(child_stack=0x7f1abf584d30, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tid=[3303196], tls=0x7f1abf585640, child_tidptr=0x7f1abf585910) = 3303196
07:09:14 rt_sigprocmask(SIG_SETMASK, [QUIT], NULL, 8) = 0
07:09:14 mmap(NULL, 2101248, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f1abf184000
07:09:14 mprotect(0x7f1abf185000, 2097152, PROT_READ|PROT_WRITE) = 0
07:09:14 rt_sigprocmask(SIG_BLOCK, ~[], [QUIT], 8) = 0
07:09:14 clone(child_stack=0x7f1abf383d30, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tid=[3303197], tls=0x7f1abf384640, child_tidptr=0x7f1abf384910) = 3303197
07:09:14 rt_sigprocmask(SIG_SETMASK, [QUIT], NULL, 8) = 0
07:09:14 futex(0x7f1abf5854b0, FUTEX_WAKE_PRIVATE, 1) = 1
07:09:14 mmap(NULL, 2101248, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f1abef83000
07:09:14 mprotect(0x7f1abef84000, 2097152, PROT_READ|PROT_WRITE) = 0
07:09:14 rt_sigprocmask(SIG_BLOCK, ~[], [QUIT], 8) = 0
07:09:14 clone(child_stack=0x7f1abf182d30, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tid=[3303198], tls=0x7f1abf183640, child_tidptr=0x7f1abf183910) = 3303198
07:09:14 rt_sigprocmask(SIG_SETMASK, [QUIT], NULL, 8) = 0
07:09:14 futex(0x7f1abf3844b0, FUTEX_WAKE_PRIVATE, 1) = 1
07:09:14 futex(0x7f1abf5854b0, FUTEX_WAKE_PRIVATE, 1) = 1
07:09:14 mmap(NULL, 2101248, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f1abed82000
07:09:14 mprotect(0x7f1abed83000, 2097152, PROT_READ|PROT_WRITE) = 0
07:09:14 rt_sigprocmask(SIG_BLOCK, ~[], [QUIT], 8) = 0
07:09:14 clone(child_stack=0x7f1abef81d30, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tid=[3303199], tls=0x7f1abef82640, child_tidptr=0x7f1abef82910) = 3303199
07:09:14 rt_sigprocmask(SIG_SETMASK, [QUIT], NULL, 8) = 0
07:09:14 futex(0x7f1abf5854b0, FUTEX_WAKE_PRIVATE, 1) = 1
07:09:14 mmap(NULL, 2101248, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f1abeb81000
07:09:14 mprotect(0x7f1abeb82000, 2097152, PROT_READ|PROT_WRITE) = 0
07:09:14 rt_sigprocmask(SIG_BLOCK, ~[], [QUIT], 8) = 0
07:09:14 clone(child_stack=0x7f1abed80d30, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tid=[3303200], tls=0x7f1abed81640, child_tidptr=0x7f1abed81910) = 3303200
07:09:14 rt_sigprocmask(SIG_SETMASK, [QUIT], NULL, 8) = 0
07:09:14 futex(0x7f1abed814b0, FUTEX_WAKE_PRIVATE, 1) = 1
07:09:14 mmap(NULL, 2101248, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x7f1abe980000
07:09:14 mprotect(0x7f1abe981000, 2097152, PROT_READ|PROT_WRITE) = 0
07:09:14 rt_sigprocmask(SIG_BLOCK, ~[], [QUIT], 8) = 0
07:09:14 clone(child_stack=0x7f1abeb7fd30, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tid=[3303201], tls=0x7f1abeb80640, child_tidptr=0x7f1abeb80910) = 3303201
07:09:14 rt_sigprocmask(SIG_SETMASK, [QUIT], NULL, 8) = 0
07:09:14 futex(0x7f1abed814b0, FUTEX_WAKE_PRIVATE, 1) = 1
07:09:14 ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
07:09:14 statx(AT_FDCWD, "/var/ssl", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffe74967290) = -1 ENOENT (No such file or directory)
07:09:14 statx(AT_FDCWD, "/usr/share/ssl", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffe74967290) = -1 ENOENT (No such file or directory)
07:09:14 statx(AT_FDCWD, "/usr/local/ssl", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0755, stx_size=4096, ...}) = 0
07:09:14 statx(AT_FDCWD, "/usr/local/ssl/cert.pem", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffe74967280) = -1 ENOENT (No such file or directory)
07:09:14 statx(AT_FDCWD, "/usr/local/ssl/certs.pem", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffe74967280) = -1 ENOENT (No such file or directory)
07:09:14 statx(AT_FDCWD, "/usr/local/ssl/ca-bundle.pem", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffe74967280) = -1 ENOENT (No such file or directory)
07:09:14 statx(AT_FDCWD, "/usr/local/ssl/cacert.pem", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffe74967280) = -1 ENOENT (No such file or directory)
07:09:14 statx(AT_FDCWD, "/usr/local/ssl/ca-certificates.crt", AT_STATX_SYNC_AS_STAT, STATX_ALL, 0x7ffe74967280) = -1 ENOENT (No such file or directory)
07:09:14 statx(AT_FDCWD, "/usr/local/ssl/certs/ca-certificates.crt", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFREG|0644, stx_size=253507, ...}) = 0
07:09:14 statx(AT_FDCWD, "/usr/local/ssl/certs", AT_STATX_SYNC_AS_STAT, STATX_ALL, {stx_mask=STATX_ALL|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFDIR|0755, stx_size=20480, ...}) = 0
07:09:14 futex(0x7f1abfff2c78, FUTEX_WAKE_PRIVATE, 2147483647) = 0
07:09:14 futex(0x7f1abfff2c6c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
07:09:14 futex(0x7f1abfff2c64, FUTEX_WAKE_PRIVATE, 2147483647) = 0
07:09:14 futex(0x7f1abfff2d58, FUTEX_WAKE_PRIVATE, 2147483647) = 0
07:09:14 futex(0x7f1abfff2c50, FUTEX_WAKE_PRIVATE, 2147483647) = 0
07:09:14 futex(0x7f1abfff2c48, FUTEX_WAKE_PRIVATE, 2147483647) = 0
07:09:14 futex(0x7f1abfff00bc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
07:09:14 futex(0x7f1abfff2b24, FUTEX_WAKE_PRIVATE, 2147483647) = 0
07:09:14 futex(0x7f1abfff2abc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
07:09:14 futex(0x7f1abfff2ab0, FUTEX_WAKE_PRIVATE, 2147483647) = 0
07:09:14 brk(0x559e773b6000) = 0x559e773b6000
07:09:14 futex(0x7f1abfff2c5c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
07:09:14 futex(0x7f1abfff2c18, FUTEX_WAKE_PRIVATE, 2147483647) = 0
07:09:14 futex(0x7f1abfff2c10, FUTEX_WAKE_PRIVATE, 2147483647) = 0
07:09:14 openat(AT_FDCWD, "/usr/local/ssl/openssl.cnf", O_RDONLY) = 9
07:09:14 newfstatat(9, "", {st_mode=S_IFREG|0644, st_size=10909, ...}, AT_EMPTY_PATH) = 0
07:09:14 read(9, "#\n# OpenSSL example configuratio"..., 4096) = 4096
07:09:14 read(9, "# WARNING: ancient versions of N"..., 4096) = 4096
07:09:14 read(9, "es of the usage of nsCertType. I"..., 4096) = 2717
07:09:14 read(9, "", 4096) = 0
07:09:14 close(9) = 0
07:09:14 futex(0x7f1abfff2c40, FUTEX_WAKE_PRIVATE, 2147483647) = 0
07:09:14 futex(0x7f1ac008b660, FUTEX_WAKE_PRIVATE, 2147483647) = 0
07:09:14 sysinfo({uptime=2067240, loads=[65824, 67168, 64768], totalram=33577238528, freeram=1006907392, sharedram=537264128, bufferram=1581588480, totalswap=8589930496, freeswap=6100348928, procs=1751, totalhigh=0, freehigh=0, mem_unit=1}) = 0
07:09:14 futex(0x7f1ac008b748, FUTEX_WAKE_PRIVATE, 2147483647) = 0
07:09:14 futex(0x7f1ac008b73c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
07:09:14 futex(0x7f1ac008b568, FUTEX_WAKE_PRIVATE, 2147483647) = 0
07:09:14 futex(0x7f1abfff2dc8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
07:09:14 getpid() = 3303193
07:09:14 getrandom("\xf8\x95\xd9\x3c\x64\x90\x8d\x5f\x89\x01\x0a\x8b\xe2\xc4\x3c\x3a\x14\x41\x1b\x96\x8f\xb5\xac\x78\xd6\x50\x1f\x6e\x4f\x10\x5f\xda", 32, 0) = 32
07:09:14 getpid() = 3303193
07:09:14 futex(0x7f1abfff2d98, FUTEX_WAKE_PRIVATE, 2147483647) = 0
07:09:14 getpid() = 3303193
07:09:14 getpid() = 3303193
07:09:14 getpid() = 3303193
07:09:14 getpid() = 3303193
07:09:14 getpid() = 3303193
07:09:14 getpid() = 3303193
07:09:14 getpid() = 3303193
07:09:14 getpid() = 3303193
07:09:14 getpid() = 3303193
07:09:14 getpid() = 3303193
07:09:14 getpid() = 3303193
07:09:14 getpid() = 3303193
07:09:14 openat(AT_FDCWD, "/usr/local/ssl/certs/ca-certificates.crt", O_RDONLY) = 9
... snip ...
07:09:14 read(9, "", 4096) = 0
07:09:14 close(9) = 0
07:09:14 brk(0x559e774ba000) = 0x559e774ba000
07:09:14 socket(AF_INET, SOCK_STREAM|SOCK_CLOEXEC, IPPROTO_TCP) = 9
07:09:14 fcntl(9, F_GETFL) = 0x2 (flags O_RDWR)
07:09:14 fcntl(9, F_SETFL, O_RDWR|O_NONBLOCK) = 0
07:09:14 connect(9, {sa_family=AF_INET, sin_port=htons(8080), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress)
07:09:14 epoll_ctl(5, EPOLL_CTL_ADD, 9, {events=EPOLLIN|EPOLLOUT|EPOLLRDHUP|EPOLLET, data={u32=1, u64=1}}) = 0
07:09:14 getsockopt(9, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
07:09:14 setsockopt(9, SOL_TCP, TCP_NODELAY, [0], 4) = 0
07:09:14 getpeername(9, {sa_family=AF_INET, sin_port=htons(8080), sin_addr=inet_addr("127.0.0.1")}, [128->16]) = 0
07:09:14 futex(0x7f1abed814b0, FUTEX_WAKE_PRIVATE, 1) = 1
07:09:14 futex(0x7f1abed814b0, FUTEX_WAKE_PRIVATE, 1) = 1
07:09:14 futex(0x7f1abf988770, FUTEX_WAIT_PRIVATE, 1, NULL) = 0
!! 10 second delay !!
07:09:25 futex(0x7f1abf9874b0, FUTEX_WAKE_PRIVATE, 1) = 1
07:09:25 futex(0x7f1abf7864b0, FUTEX_WAKE_PRIVATE, 1) = 1
07:09:25 futex(0x7f1abf1834b0, FUTEX_WAKE_PRIVATE, 1) = 1
07:09:25 futex(0x7f1abf3844b0, FUTEX_WAKE_PRIVATE, 1) = 1
07:09:25 futex(0x7f1abf5854b0, FUTEX_WAKE_PRIVATE, 1) = 1
07:09:25 futex(0x7f1abef824b0, FUTEX_WAKE_PRIVATE, 1) = 1
07:09:25 write(4, "\1\0\0\0\0\0\0\0", 8) = 8
07:09:25 futex(0x7f1abed814b0, FUTEX_WAKE_PRIVATE, 1) = 1
07:09:25 futex(0x7f1abf9874b0, FUTEX_WAKE_PRIVATE, 1) = 1
07:09:25 futex(0x7f1abf988770, FUTEX_WAIT_PRIVATE, 1, NULL) = 0
07:09:25 futex(0x7f1abed81910, FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, 3303200, NULL, FUTEX_BITSET_MATCH_ANY) = -1 EAGAIN (Resource temporarily unavailable)
07:09:25 sigaltstack({ss_sp=NULL, ss_flags=SS_DISABLE, ss_size=8192}, NULL) = 0
07:09:25 munmap(0x7f1ac00af000, 12288) = 0
07:09:25 exit_group(0) = ?
07:09:25 +++ exited with 0 +++