photon.fini() will hang with iouring master engine and signalfd
yuchen0cc opened this issue · comments
yuchen0cc commented
photon.fini() will hang with iouring master engine and signalfd.
It can be produced by test:
TEST(IouringTest, Init) {
auto ret = photon::init(photon::INIT_EVENT_IOURING | photon::INIT_EVENT_SIGNAL, photon::INIT_IO_NONE);
DEFER(photon::fini());
EXPECT_EQ(0, ret);
}
It blocks on https://github.com/alibaba/PhotonLibOS/blob/main/io/iouring-wrapper.cpp#L344 and m_eventfd
is not non-blocked.
Bob Chen commented
I tested your code in 6.4.12-1.el8.elrepo.x86_64 kernel.
It didn't hang.