diff --git a/kernel/src/process/process/mod.rs b/kernel/src/process/process/mod.rs index 800ea13e9..69ab1c6d8 100644 --- a/kernel/src/process/process/mod.rs +++ b/kernel/src/process/process/mod.rs @@ -379,13 +379,6 @@ impl Process { let mut session_table_mut = process_table::session_table_mut(); let mut group_table_mut = process_table::group_table_mut(); - if session_table_mut.contains_key(&self.pid) { - // FIXME: According to the Linux implementation, this check should be removed, so we'll - // return `EPERM` due to hitting the following check. However, we need to work around a - // gVisor bug. The upstream gVisor has fixed the issue in: - // . - return Ok(self.pid); - } if group_table_mut.contains_key(&self.pid) { return_errno_with_message!( Errno::EPERM, diff --git a/test/initramfs/src/apps/process/group_session.c b/test/initramfs/src/apps/process/group_session.c index b58dece7e..01abb8ea6 100644 --- a/test/initramfs/src/apps/process/group_session.c +++ b/test/initramfs/src/apps/process/group_session.c @@ -138,11 +138,7 @@ END_TEST() FN_TEST(setsid_session_leader) { - // FIXME: We fail this test to work around a gVisor bug. - // See comments in `Process::to_new_session` for details. -#ifndef __asterinas__ TEST_ERRNO(setsid(), EPERM); -#endif } END_TEST()