As the title said, when I use TVM MetaSchdule and RPC to run tuning on another device, when I resize the terminal of host tuning proccess, a RPC runner process on host will immediately segfault.
Expected behavior
TVM won't segfault.
Actual behavior
2024-06-04 21:24:22 [INFO] [task_scheduler.cc:180] TaskScheduler picks Task #112: "conv2d21"
2024-06-04 21:24:31 [INFO] [task_scheduler.cc:193] Sending 64 sample(s) to builder
!!!!!!! TVM encountered a Segfault !!!!!!!
Stack trace:
0: tvm::runtime::(anonymous namespace)::backtrace_handler(int)
at /home/zt/rk3588-nn/tvm/src/runtime/logging.cc:214
1: 0x00007f925569fadf
2: tvm::runtime::EnvCAPIRegistry::CheckSignals()
at /home/zt/rk3588-nn/tvm/src/runtime/registry.cc:186
3: long tvm::support::RetryCallOnEINTR<tvm::support::TCPSocket::Recv(void*, unsigned long, int)::{lambda()#1}, int (*)()>(tvm::support::TCPSocket::Recv(void*, unsigned long, int)::{lambda()#1}, int (*)())
at /home/zt/rk3588-nn/tvm/src/runtime/rpc/../../support/errno_handling.h:58
4: tvm::support::TCPSocket::Recv(void*, unsigned long, int)
at /home/zt/rk3588-nn/tvm/src/runtime/rpc/../../support/socket.h:481
5: tvm::runtime::SockChannel::Recv(void*, unsigned long)
at /home/zt/rk3588-nn/tvm/src/runtime/rpc/rpc_socket_impl.cc:56
6: tvm::runtime::RPCEndpoint::HandleUntilReturnEvent(bool, std::function<void (tvm::runtime::TVMArgs)>)::$_1::operator()(void*, unsigned long) const
at /home/zt/rk3588-nn/tvm/src/runtime/rpc/rpc_endpoint.cc:705
7: unsigned long tvm::support::RingBuffer::WriteWithCallback<tvm::runtime::RPCEndpoint::HandleUntilReturnEvent(bool, std::function<void (tvm::runtime::TVMArgs)>)::$_1>(tvm::runtime::RPCEndpoint::HandleUntilReturnEvent(bool, std::function<void (tvm::runtime::TVMArgs)>)::$_1, unsigned long)
at /home/zt/rk3588-nn/tvm/src/runtime/rpc/../../support/ring_buffer.h:174
8: tvm::runtime::RPCEndpoint::HandleUntilReturnEvent(bool, std::function<void (tvm::runtime::TVMArgs)>)
at /home/zt/rk3588-nn/tvm/src/runtime/rpc/rpc_endpoint.cc:704
9: tvm::runtime::RPCEndpoint::CallFunc(void*, TVMValue const*, int const*, int, std::function<void (tvm::runtime::TVMArgs)>)
at /home/zt/rk3588-nn/tvm/src/runtime/rpc/rpc_endpoint.cc:870
10: tvm::runtime::RPCClientSession::CallFunc(void*, TVMValue const*, int const*, int, std::function<void (tvm::runtime::TVMArgs)> const&)
at /home/zt/rk3588-nn/tvm/src/runtime/rpc/rpc_endpoint.cc:1087
11: tvm::runtime::RPCWrappedFunc::operator()(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) const
at /home/zt/rk3588-nn/tvm/src/runtime/rpc/rpc_module.cc:129
2024-06-04 21:24:42 [INFO] [task_scheduler.cc:195] Sending 64 sample(s) to runner
Environment
Host:
Manjaro Linux 24.0.1
TVM master branch 78a1f80bf24f1a1114f2ed7d17563d267bb38cc9
Device:
RK3588 ARM SoC
Debian 11
TVM master branch 78a1f80bf24f1a1114f2ed7d17563d267bb38cc9
As the title said, when I use TVM MetaSchdule and RPC to run tuning on another device, when I resize the terminal of host tuning proccess, a RPC runner process on host will immediately segfault.
Expected behavior
TVM won't segfault.
Actual behavior
Environment
Host: Manjaro Linux 24.0.1 TVM master branch 78a1f80bf24f1a1114f2ed7d17563d267bb38cc9
Device: RK3588 ARM SoC Debian 11 TVM master branch 78a1f80bf24f1a1114f2ed7d17563d267bb38cc9
Steps to reproduce
Triage