Thread n "DrogonIoLoop" received signal SIGPIPE, Broken pipe
Thread n "DrogonIoLoop" received signal SIGPIPE, Broken pipe
error brief
Hello, everyone
I got an error from debug console (vscode)
[New Thread 0x7ffff61fd6c0 (LWP 67497)]
[New Thread 0x7ffff59fc6c0 (LWP 67498)]
[New Thread 0x7ffff51fb6c0 (LWP 67499)]
[New Thread 0x7fffeffff6c0 (LWP 67501)]
Thread 4 "DrogonIoLoop" received signal SIGPIPE, Broken pipe.
[Switching to Thread 0x7ffff51fb6c0 (LWP 67499)]
0x00007ffff73b26fa in __GI_sendfile64 () at ../sysdeps/unix/syscall-template.S:120
and exception stop at here from trantor
ssize_t TcpConnectionImpl::sendNodeInLoop(const BufferNodePtr &nodePtr)
{
loop_->assertInLoopThread();
#ifdef __linux__
if (nodePtr->isFile() && !tlsProviderPtr_)
{
static const long long kMaxSendBytes = 0x7ffff000;
LOG_TRACE << "send file in loop using linux kernel sendfile()";
auto toSend = nodePtr->remainingBytes();
if (toSend <= 0)
{
LOG_ERROR << "0 or negative bytes to send";
return -1;
}
auto bytesSent =
sendfile(socketPtr_->fd(),
/* reset of the code*/
}
mostly this happen when sub1.domain.tld page get files from sub2.domain.tld after a certain ammount of request
a log info
20240724 19:23:15.301471 UTC 46085 FATAL no writing but write callback called - TcpConnectionImpl.cc:255
20240724 19:42:02.638646 UTC 46086 FATAL Transport endpoint is not connected (errno=107) sockets::shutdownWrite - Socket.cc:110
20240724 19:42:02.643259 UTC 46086 FATAL Transport endpoint is not connected (errno=107) sockets::shutdownWrite - Socket.cc:110
20240724 23:50:38.747832 UTC 140777 WARN SIGINT signal received. - HttpAppFrameworkImpl.cc:177
extra information
operating system:
OS: Debian GNU/Linux 12 (bookworm) on Windows 10 x86_64
Kernel: 5.15.153.1-microsoft-standard-WSL2
hardwares:
- CPU: 12 threads
- RAM: 32 GiB
drogon version:
_
__| |_ __ ___ __ _ ___ _ __
/ _` | '__/ _ \ / _` |/ _ \| '_ \
| (_| | | | (_) | (_| | (_) | | | |
\__,_|_| \___/ \__, |\___/|_| |_|
|___/
A utility for drogon
Version: 1.9.6
Git commit: e78690747858f49d7ea08002083420ff046d8785
Compilation:
Compiler: c++
Compiler ID: GNU
Compilation flags: -g -std=c++20 -I/usr/include/jsoncpp -I/usr/local/include
Libraries:
postgresql: yes (pipeline mode: yes)
mariadb: no
sqlite3: yes
ssl/tls backend: OpenSSL
brotli: yes
hiredis: no
c-ares: yes
yaml-cpp: no
installed packages version:
g++ (Debian 12.2.0-14) 12.2.0
gcc (Debian 12.2.0-14) 12.2.0
libssl-dev 3.0.13-1~deb12u1
libpq-dev 15.7-0+deb12u1
libbrotli-dev 1.0.9-2+b6
libc-ares-dev 1.18.1-3
ninja-build 1.11.1-1
gdb 13.1-3
# command usage
cmake -B build -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-std=c++20 -fcoroutines"
anyway, I'm not really sure when
// ...
"run_as_daemon": true,
"relaunch_on_error": true,
// ...
because currently this debug mode always set to false
this is the first time this exception appear on my time when using drogon framework
not sure how many to time make it appear when make the request,
but try to refresh browser as fast as you can when try this,
and also when using drogon_ctl press, there only a few error/fail on 100,000 request but without exception/crash.
I want to try mimic public media guards at least using origin whitelist, it is drive like in a nutshell