occlum / ngo Goto Github PK
View Code? Open in Web Editor NEWNext-Gen Occlum, a work-in-progress fork of Occlum that is optimized for the next-generation of Intel SGX (on Xeon SP processors)
License: Other
Next-Gen Occlum, a work-in-progress fork of Occlum that is optimized for the next-generation of Intel SGX (on Xeon SP processors)
License: Other
Many functions need to know the abs path of the file, e.g., the realpath()
function or readlink from /proc/[pid]/fd/N
.
In the previous implementation, we remember the path when opening the file, so it is easy to get the path for the opened file. However, if the file has been renamed, it can not influence the path for the opened file to use the new path.
In the current implementation, we just record the string of the path of cwd
. If the dir of cwd
itself is renamed, the cwd
cannot be changed to the new path.
Obviously, the kernel should record the inode instead of the path of the file. However, It is incorrect to use the inode to get the full path, because the parent of one inode is not unique.
We need to handle the path of file or inode in a new way, maybe introducing dentry cache(DCache) is a solution.
Based on Occlum 0.20.0
To Do:
test_faccessat_with_dirfd
(Require: Fix FsPath::to_abs_path
)test_fchmodat
test_fchownat
(Require: Fix FsPath::to_abs_path
)test_fchownat_with_empty_path
(Require: Fix FsPath::to_abs_path
)test_fcntl_get_flags
(Require: fcntl
)test_fcntl_set_flags
(Require: fcntl
)test_create_with_flags
(Require: fcntl
)test_select_with_socket
(Require: select
)sleeping_thread
and futex_wait_thread
(Require: interrupt)test_linkat_then_unlinkat
test_linkat_with_empty_oldpath
test_mkdirat
(Require: Fix FsPath::to_abs_path
)test_fcntl_get_flags
test_fcntl_set_flags
test_create_with_flags
test_epoll_timeout
test_epoll_no_timeout
test_mutex_with_cond_wait
test_mutex_timedlock
test_renameat
(Require: Fix FsPath::to_abs_path
)test_fcntl_setfl_and_getfl
test_fstatat_with_abs_path
test_fstatat_with_empty_path
test_fstatat_with_dirfd
test_readlink_from_proc_self_fd
(Require: procfs)test_realpath
(Require: procfs)test_readlinkat
(Require: Fix FsPath::to_abs_path
)test_symlinkat
(Require: Fix FsPath::to_abs_path
)To Do:
To Do:
EINTR
supportAny inodes in Linux has typically these three timestamps:
(See more details at https://man7.org/linux/man-pages/man7/inode.7.html)
We can get such attributes from stat()
(https://man7.org/linux/man-pages/man2/lstat.2.html).
I discover that in occlum and ngo, the atime
, mtime
and ctime
remain unchanged when we read/write content from a file descriptor, or change its attributes (such as chmod
, chown
...). Such behavior is different from Linux.
Here is the sample program:
// First we need to create a file at 'file_path' which has O_RDWR permission
static int test(const char *file_path) {
int ret, fd;
struct stat stat_buf;
char c;
const char *content = "abcde";
fd = open(file_path, O_RDWR);
ret = write(fd, content, strlen(content));
if (ret != strlen(content))
THROW_ERROR("cannot write, ret=%d\n", ret);
ret = stat(file_path, &stat_buf);
printf("atime: { %ld, %ld }, mtime { %ld, %ld }\n",
stat_buf.st_atim.tv_sec, stat_buf.st_atim.tv_nsec,
stat_buf.st_mtim.tv_sec, stat_buf.st_mtim.tv_nsec);
nanosleep(&period_of_100ms, NULL);
printf("just open: \n");
fd = open(file_path, 0);
close(fd);
ret = stat(file_path, &stat_buf);
printf("atime: { %ld, %ld }, mtime { %ld, %ld } ctime { %ld, %ld }\n",
stat_buf.st_atim.tv_sec, stat_buf.st_atim.tv_nsec,
stat_buf.st_mtim.tv_sec, stat_buf.st_mtim.tv_nsec,
stat_buf.st_ctim.tv_sec, stat_buf.st_ctim.tv_nsec);
nanosleep(&period_of_100ms, NULL);
printf("Open and read: \n");
fd = open(file_path, 0);
ret = read(fd, &c, sizeof(c));
if (ret != 1)
THROW_ERROR("cannot read, ret=%d\n", ret);
close(fd);
ret = stat(file_path, &stat_buf);
printf("read: %c\n", c);
printf("atime: { %ld, %ld }, mtime { %ld, %ld } ctime { %ld, %ld }\n",
stat_buf.st_atim.tv_sec, stat_buf.st_atim.tv_nsec,
stat_buf.st_mtim.tv_sec, stat_buf.st_mtim.tv_nsec,
stat_buf.st_ctim.tv_sec, stat_buf.st_ctim.tv_nsec);
nanosleep(&period_of_100ms, NULL);
printf("Open and write: \n");
fd = open(file_path, O_RDWR);
c = 'p';
ret = write(fd, &c, sizeof(c));
if (ret != 1)
THROW_ERROR("cannot write, ret=%d\n", ret);
close(fd);
ret = stat(file_path, &stat_buf);
printf("atime: { %ld, %ld }, mtime { %ld, %ld } ctime { %ld, %ld }\n",
stat_buf.st_atim.tv_sec, stat_buf.st_atim.tv_nsec,
stat_buf.st_mtim.tv_sec, stat_buf.st_mtim.tv_nsec,
stat_buf.st_ctim.tv_sec, stat_buf.st_ctim.tv_nsec);
nanosleep(&period_of_100ms, NULL);
printf("change ctime: \n");
utimes(file_path, NULL);
ret = stat(file_path, &stat_buf);
printf("atime: { %ld, %ld }, mtime { %ld, %ld } ctime { %ld, %ld }\n",
stat_buf.st_atim.tv_sec, stat_buf.st_atim.tv_nsec,
stat_buf.st_mtim.tv_sec, stat_buf.st_mtim.tv_nsec,
stat_buf.st_ctim.tv_sec, stat_buf.st_ctim.tv_nsec);
return SUCCESS;
}
The output on Linux is:
atime: { 1648016324, 648673770 }, mtime { 1648016324, 648673770 }
just open:
atime: { 1648016324, 648673770 }, mtime { 1648016324, 648673770 } ctime { 1648016324, 648673770 }
Open and read:
read: a
atime: { 1648016324, 849993133 }, mtime { 1648016324, 648673770 } ctime { 1648016324, 648673770 }
Open and write:
atime: { 1648016324, 849993133 }, mtime { 1648016324, 954679202 } ctime { 1648016324, 954679202 }
change ctime:
atime: { 1648016325, 51280910 }, mtime { 1648016325, 51280910 } ctime { 1648016325, 51280910 }
The atime
is updated after we read from the file (See Open and read:
)
The mtime
and ctime
are updated after we write to the file (See Open and write:
)
The ctime
is updated after we modify atime
and mtime
by invoking utimes
(See change ctime:
)
The output on ngo and occlum is:
atime: { 1648016417, 234385206 }, mtime { 1648016417, 234385206 }
just open:
atime: { 1648016417, 234385206 }, mtime { 1648016417, 234385206 } ctime { 1648016417, 234385206 }
Open and read:
read: a
atime: { 1648016417, 234385206 }, mtime { 1648016417, 234385206 } ctime { 1648016417, 234385206 }
Open and write:
atime: { 1648016417, 234385206 }, mtime { 1648016417, 234385206 } ctime { 1648016417, 234385206 }
change ctime:
atime: { 1648016417, 642904375 }, mtime { 1648016417, 642904375 } ctime { 1648016417, 234385206 }
The atime
remains unchanged after we read from the file (See Open and read:
)
The mtime
and ctime
remain unchanged after we write to the file (See Open and write:
)
The ctime
remains unchanged after we modify atime
and mtime
by invoking utimes
(See change ctime:
)
None
None
Poll stdin (FD 0) always return readable (Events::IN) even if no input at all.
Steps to reproduce the behavior:
`
/* Watch stdin (fd 0) to see when it has input. */
FD_ZERO(&rfds);
FD_SET(0, &rfds);
/* Wait up to five seconds. */
tv.tv_sec = 5;
tv.tv_usec = 0;
retval = select(1, &rfds, NULL, NULL, &tv);
`
Above code always return immediately.
No IN event if there is no input.
Occlum gets the untrusted memory range and registers the untrusted memory range into the SGX untrusted allocator.
When supporting the untrusted device, we could get some untrusted memory that is shared with the device. The SGX untrusted allocator could help to manage this area. The application may do mprotect or munmap with the virtual address inside the untrusted area.
The existing sgx-untrusted-alloc crate (https://github.com/occlum/ngo/tree/master/src/libos/crates/sgx-untrusted-alloc) could be extended to support the new feature.
The new interfaces are required:
Below is one example:
When an application performs munmap with an untrusted memory address
Replace the current basic scheduler with the completely fair scheduler.
reference: Process Scheduling in Linux
The current naive basic scheduler is workable, but the performance is poor. Two major reasons are listed below:
The CFS is used as the default scheduler in Linux, suppose the applications are optimized with CFS. So using CFS (or similar scheduler) in Occlum should be a good choice.
When using CFS in Occlum, all the tasks should get fair execution time. Those short (most likely I/O) tasks latency should be smaller than those long (CPU bound) tasks. All the vCPU would get fair payload, if there are multiple tasks are running.
There are two major challenges in the CFS design for Occlum:
In order to add the CFS into Occlum and keep the current basic scheduler working, the Occlum should separate the schedule information from the task basic information. And the schedule information for CFS and basic scheduler are different.
Active Balancing
Using the left task (the task for next round) waiting time as the waiting time of the vCPU run queue. If the value is much larger than the average value, move this task to another vCPU run queue.
Idle Balancing
If the vCPU run queue is empty, move half of the longest run queue to this queue or move half of the run queue with the largest waiting time to this queue.
new task
The new task would be enqueued to the shortest run queue, with only one exception: if the task dequeue from one run queue recently, enqueue the task back to the previous run queue.
Add four traits as below code.
pub trait SchedInfo: Send + Sync {
fn affinity(&self) -> &RwLock<Affinity>;
fn priority(&self) -> SchedPriority;
fn set_priority(&self, priority: SchedPriority);
fn last_thread_id(&self) -> u32;
fn set_last_thread_id(&self, id: u32);
fn enqueue_epochs(&self) -> Duration;
fn set_enqueue_epochs(&self, data: Duration);
fn dequeue_epochs(&self) -> Duration;
fn set_dequeue_epochs(&self, data: Duration);
}
pub(crate) trait TaskSet: Send + Sync {
fn add_task(&self, task: Arc<Task>) -> Result<()>;
fn first_task(&self) -> Option<Arc<Task>>;
fn tasks_with(&self, f: Box<dyn Fn(Arc<Task>) -> bool>, capacity: usize) -> Vec<Arc<Task>>;
fn len(&self) -> usize;
fn latency(&self) -> Option<Duration>;
fn index(&self) -> usize;
}
pub(crate) trait Balancer {
fn idle_balance(&self, idle_queue: &dyn TaskSet);
fn enqueue_balance(&self, task: Arc<Task>) -> Option<usize>;
fn active_balance(&self);
}
#[async_trait]
pub trait Scheduler: Send + Sync {
fn enqueue_task(&self, task: Arc<Task>);
fn dequeue_task(&self, thread_id: usize) -> Option<Arc<Task>>;
async fn balance(&self, task: Arc<Task>);
fn sched_info(&self, priority: SchedPriority) -> Arc<dyn SchedInfo>;
}
It is a reference implementation, which do not change the current executor implementation.
The alternative could use those traits as template in executor type definition.
The new scheduler is not always improve the Occlum performance. If the process/thread number is small, most likely CFS performance is the same as basic scheduler.
There are a lot of scheduler implementations. CFS is the Linux default one, should be the best one for general purpose.
Tracking status of the micro-benchmarks and application benchmarks that we plan to use to measure the performance of NGO. Reply to this issue to propose new benchmarks.
Use a number of kernel threads to clean munmap-ed pages in an asynchronous way.
Due to the lack of the page table, for applications running inside Occlum, when the user mmap a range of memory, the pages corresponding to the memory are actually committed and require clean-up even if the user never uses the memory.
For some applications, it will try to mmap a big range of memory, do nothing on it and just unmap the memory. In this case, the clean-up process will consume a lot of time and can potentially cause the application to misbehave.
This design is trying to reduce the time of munmap to minimize this gap.
This feature is transparent to end-users.
Define the clean request.
We use a clean request to define the cleaning process of a range. A clean request can be generated when munmap a range. And then the request is responded by the clean worker to do the actual cleaning (i.e. set 0). And when the cleaning is done, the clean worker will put the range back to the free space manager for further allocation.
Define the structure to handle the clean request
There could be multiple threads from multiple processes munmap-ing different ranges. And there can be at most half of the vCPU number of threads doing the cleaning. Thus, I choose to use MPMC queue provided by flume.
Define the rule for the clean request
Define the behavior of the clean threads
At the init stage, create half of the vCPU number of threads. And if a worker thread can't receive requests, it will wait. Once a request is sent by requesting thread, it will also wake one worker.
The clean workers should be run with low priority. If there are many user tasks pending, the clean worker shouldn't clean anymore.
What if the free space is not enough
For mmap, if the desired memory is not available while there are many requests in the queue, the allocation thread should become a worker thread and help respond to the requests in the queue until the queue is empty. And then it will try to allocate again. And if it still fails this time, return with the error number.
There is one limitation. The mmap syscall is defined like this:
void *mmap(void *addr, size_t length, int prot, int flags,
int fd, off_t offset);
When the user calls mmap with specified addr
but MAP_FIXED
is not set in flags
, this means the user assumes addr
is a good place and it would be better for the kernel to allocate memory from that address but not forcing the kernel to allocate from that address.
For example, the user just munmap a range, and he could assume this range is now free. Later the user wants to mmap a range and would like to just allocate from that address again.
If no other threads are doing mmap, this operation should always succeed. However, with this feature, even if the user munmap a range, he may not mmap to get the same range later because maybe that range is still being cleaned. This clean time depends on the range of the memory. And when the range is cleaned, then the user will be able to mmap from that address again.
This should be fixed.
UPDATE:
This limitation has been removed by tracking the ranges being cleaned of each worker. And when mmap with address is called, the calling thread will become the help worker to help clean all pending requests. And then, check all the ranges being cleaned by other workers to see if the desired range is overlapped and if so, loop and wait. If not, return and start the allocation.
Instead of MPMC to track dirty ranges, use a btree to track all the dirty ranges in address order. Choose btree because it is provided by rust std and has relatively good performance in inserting, removing and finding. Also, each request will have a status indicating if it is dirty, being cleaned, or already clean.
When munmap a range, make it a clean request and mark the status as dirty, and put it to the btree. Then the clean worker can iterate the btree to find the dirty ranges and do the cleaning. And if there are no dirty ranges, put the range back to the free list and merge to bigger free ranges.
This method can handle the mmap with address better but the overall performance is even poorer than not doing this. The reason could be that the clean worker has to iterate the whole btree every time. When the btree is big, this can be very time-consuming. If a request is cleaned and then just remove from the btree, then the btree needs to be unlocked very often and multiple workers will need to wait for the lock.
The PoC implementation can be found here: https://github.com/jessehui/ngo/tree/dev_cleaning_thread_btree
With EDMM and trusted page fault, we can achieve more accurate page cleaning.
All the VMs allocated are set to PROT_NONE but recorded the protection bit by the kernel, and once read/write, a page fault is triggered and we can modify the protection bit in the page fault handler and set it to the recorded protection bit and also set the range/page to dirty.
And when the range is munmap-ed, we only need to clean if the range is set to dirty.
Under review: #212
NGO uses Rust async / await to reconstruct the code and realize asynchronous. Because Rust async / await needs to be executed through Rust async runtime, NGO has implemented a basic version of Rust async runtime, namely async-rt.
With async-rt, NGO implements M : N : P in-enclave scheduling. Specifically, there are M user threads, N LibOS coroutines, and P host threads. The executor of Rust async runtime runs on P host threads (that is, P Linux threads). The executor schedules N LibOS coroutines (that is, N Rust async tasks). N LibOS coroutines contain M user threads and N - M LibOS system tasks.
However, there is no scheduler for async-rt at present. The executor of async-rt can only run tasks in its local queue. This will lead to the following problems for NGO:
In addition, in async-rt, if the task is in the pending state, the corresponding waker will be set. Invoking waker.wake() will rejoin the task to the local queue. If wake() is invoked repeatedly (It is feasible at the API level), the queue will contain multiple identical tasks, which will affect performance and scheduling.
Add scheduler to the Rust async runtime async-rt and make async-rt a production-level Rust async runtime with no_std.
The scheduler should meet the following requirements:
The priorities of these requirements decrease in turn. We will implement these requirements in order of priority.
The async_io::event::Pollee
maintains a state of Events
that can be polled by poller. Currently, there are three methods that can change the Events
state:
add_events
: Add some new events, triggering interesting pollers.del_events
: Delete some events.reset_events
: Clear all events.The individual methods are thread safe. But sometime the user code may want to use them in combination.
pollee.reset_events();
pollee.add_events(Events::OUT);
The problem with this code is that since the two operations as a whole are not atomic, other concurrent threads may observe an intermediate states (no events). This could cause problems in some use cases. The user code may use an auxiliary mutex to ensure the atomicity, but this is fragile.
I propose two actions. First, review the current usage of Pollee
and confirm the atomicity issue. Second, replace the three methods with the following two new methods.
set_events(new: Events, will_notify: bool)
, which sets a pollee's state to a new state atomically. If will_notify
is true, then interesting pollers will be notified.update_events(to_del: Events, to_add: Events)
, which removes some events from a pollee's state and add some new ones to it atomically. The interesting pollers will be notified about the new events.Their semantics are shown below.
set_events(new) = reset_events() + add_events(new)
update_events(to_del, to_add) = del_events(to_del) + add_events(to_add)
The old three methods can be readily implemented with the new ones.
add_events(to_add) = update_events(Events::empty(), to_add)
del_events(to_del) = update_events(to_del, Events::empty())
reset_events() = set_events(Events::empty())
As you can see, the two new methods are more powerful.
The vDSO time uses rdtscp
instruction internally. This would cause SGX exception if it runs on SGX 1 hardware. I think there are three strategies to fix it.
rdtscp
in the VDSO execution path on SGX 1 hardware. This may lose some accuracy. But the performance is still good.I think the option 3 is most promising.
In the make test, when running ioctl
test with glibc, the test will fail with error message: **** stack smashing detected ***.
Steps to reproduce the behavior:
make test-glibc
should succeed.
After some digging, I found that it is related with isatty
function which will call INTERNAL_SYSCALL
macro in glibc and finally call ioctl syscall with TCGETS. However, I have inspected the implementation of TCGETS and didn't find anything abnormal.
There are actually two ways to workaround that I have tried:
(1) Directly use syscall
to replace INTERNAL_SYSCALL
macro
(2) Shrink the size of TCGETS related struct (from 32 to 30)
However, in CI environment, this error will not show. The reason is unclear.
In my opinion, this could be related to syscall entry or the memory manipulation in ioctl implementation but I am not sure.
Modify the UnionFS
We can modify the unionfs to accept async-sfs as the RW layer and the integrity-protected SEFS as the RO layer. By doing this, we can take the advantage of sefs-cli tool and the read-performance of SEFS. Thanks to the write-performance of async-sfs, the I/O throughout will meet our expectations.
Improve functionality of Async-SFS
Currently, the max file size is 4GB and the max fs size is 16TB in async-sfs , which is at the same level as EXT2. We should support bigger file size and bigger fs size to be equal to EXT4. The max file size is 16TB and the max fs size is 1EB in EXT4.
Improve the Usability
The total size of async-sfs should be configured in Occlum.json(or Occlum.yaml in the future), which is a bother for users.
Can we just calculate the size according to the remaining disk size of Host OS? If the configuration is too big, just return an error to tell the users.
The page cache size should be configurable for users, and the kernel_space_heap_size can be expanded from the page cache size automatically.
Improve the Stability
Test the stability of Async-SFS + SwornDisk for all the demos
(Optional)Remove the as_sync_inode
workaround used in vm
If the executable binary may be stored in async-sfs, the vm subsystem should load it from async Inode instead of sync Inode. So the workaround should be fixed.
Bug:
x
to epoll interestx
since FileTable
will reuse fdEEXIST
error!Might Related Todos:
Solutions:
FileTable
do_close
, drop
, observer
, the close of socket file (which is Arc<...>
)It is common to have event waiting logics bounded with timeouts. But currently, all NGO code will wait forever if no interesting events arrive. And since there are so many system calls that may wait with timeout, we need to figure out a general mechanism to support timeout.
Currently, all event wait/wakeup code in NGO eventually relies on Waiter
/WaiterQueue
provided by the async-rt
crate. And a convenient macro named waiter_loop
is provided to make it even easier for the most common pattern when using Waiter
/WaiterQueue
, which is to 1) try to make progress with a task, 2) if not ready, wait for notifications before trying again.
Here are some examples.
The exit and wait4 system calls use Waiter
and WaiterQueue
.
// File: libos/process/do_wait4.rs
pub async fn do_wait4(child_filter: &ProcessFilter) -> Result<(pid_t, i32)> {
let thread = current!();
let process = thread.process();
waiter_loop!(process.exit_waiters(), {
// Lock order: always lock parent then child to avoid deadlock
let mut process_inner = process.inner();
let unwaited_children = /* get all possible children */
if unwaited_children.len() == 0 {
return_errno!(ECHILD, "Cannot find any unwaited children");
}
// Return immediately if a child that we wait for has already exited
let zombie_child = unwaited_children
.iter()
.find(|child| child.status() == ProcessStatus::Zombie);
if let Some(zombie_child) = zombie_child {
let zombie_pid = zombie_child.pid();
let exit_status = free_zombie_child(&process, process_inner, zombie_pid);
return Ok((zombie_pid, exit_status));
}
}
}
// File: libos/process/do_exit.rs
fn exit_process(thread: &ThreadRef, term_status: TermStatus) {
// ...
// Notify the parent that this child process's status has changed
parent.exit_waiters().wake_all();
// ...
}
The sigtimedwait also uses Waiter
and WaiterQueue
to wait for signals.
pub async fn do_sigtimedwait(interest: SigSet, timeout: Option<&Duration>) -> Result<siginfo_t> {
if let Some(timeout) = timeout {
warn!("do not support timeout yet");
}
let thread = current!();
let process = thread.process().clone();
// Interesting, blocked signals
let interest = {
let blocked = thread.sig_mask().read().unwrap();
*blocked & interest
};
// Loop until we find a pending signal or reach timeout
waiter_loop!(process.sig_waiters(), {
if let Some(signal) = dequeue_pending_signal(&interest, &thread, &process) {
let siginfo = signal.to_info();
return Ok(siginfo);
}
});
}
Futexes are also backed by Waiter
and WaiterQueue
.
pub async fn futex_wait_bitset(
futex_addr: *const i32,
futex_val: i32,
timeout: &Option<Duration>,
bitset: u32,
) -> Result<()> {
let waiter = Waiter::new();
let futex_item = FutexItem::new(futex_key, bitset, waiter.waker());
futex_bucket.enqueue_item(futex_item.clone());
// Must make sure that no locks are holded by this thread before wait
drop(futex_bucket);
waiter.wait(/*timeout.as_ref()*/).await;
Ok(())
}
I/O notifications, due to its importance and ubiquitousness, are implemented with three new abstractions: Poller
, Pollee
, and Events
.
Here is a simplified code from StreamSocket
.
impl<A: Addr + 'static, R: Runtime> ConnectedStream<A, R> {
pub async fn readv(self: &Arc<Self>, bufs: &mut [&mut [u8]]) -> Result<usize> {
let total_len: usize = bufs.iter().map(|buf| buf.len()).sum();
if total_len == 0 {
return Ok(0);
}
// Initialize the poller only when needed
let mut poller = None;
loop {
// Attempt to reade
let res = self.try_readv(bufs);
if !res.has_errno(EAGAIN) {
return res;
}
// Wait for interesting events by polling
if poller.is_none() {
poller = Some(Poller::new());
}
let mask = Events::IN;
let events = self.common.pollee().poll_by(mask, poller.as_mut());
if events.is_empty() {
poller.as_ref().unwrap().wait().await;
}
}
}
}
But behind the scense, Poller
and Pollee
are also implemented with Waiter
and WaiterQueue
.
From the examples above, we can see that to support timeouts, all we have to do is to add the support of timeout to the Waiter::wait
and Poller::wait
methods. And since the latter one is based on Waiter
, the problem is now boiled down to support timeout for the Waiter::wait
method.
/// File: crates/async-rt/wait/Waiter.rs
impl Waiter {
/// The new version of wait method, with a timeout argument added.
///
/// Awaiting the returned future will block until the waiter is woken up or
/// the timeout expires (if the timeout is `Some(_)`).
///
/// The output type of the Future is `Result<()>`. If the waiter is woken up,
/// then the result is `Ok`. Otherwise, the result is `Err(ETIMEOUT)`.
///
/// If the timeout is `Some(_)`, then the contained `Duration` will be updated
/// to reflect the remaining time when the method returns.
pub fn wait(&self, timeout: Option<&mut Duration>) -> WaitFuture<'__> {
self.wait(timeout)
}
}
impl WaiterInner {
pub fn wait(&self, timeout: Option<&mut Duration>) -> WaitFuture<'_> {
WaitFuture::new(self, timeout)
}
}
pub struct WaitFuture<'a> {
waiter: &'a WaiterInner,
timeout: Option<&'a mut Duration>,
}
impl<'a> Future for WaitFuture<'a> {
type Output = Result<()>;
fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> {
todo!("let's discuss the implementation detail later")
}
}
Since the waiter_loop
macro does not take an argument of timeout, we can either extend the macro with an extra argument or create a new macro named waiter_loop_with_timeout
(any better name?). Either way, the timeout
-supporting version macro should return a Result<()>
for the loop, thus the user can capture and handle errors due to timeout.
It is quite common to invoke Waiter::wait
in a loop. But due to Rust's ownership and move semantics, the following code is not valid.
fn imagined_blocking_syscall(timeout: Option<&mut Duration>) {
let waiter = Waiter::new();
loop {
waiter.wait(timeout);
}
}
An error of "use of moved value" will be reported by the Rust compiler.
To workaround this problem, one solution is to redefine the signature of the wait
method.
impl Waiter {
pub fn wait<T>(&self, timeout: Option<&mut T>) -> WaitFuture<'__>
where T: BorrowMut<Duration>
{
self.wait(timeout)
}
}
This way, the wait
method can accept both Option<&mut Duration>
and Option<&mut &mut Duration>
as its argument. Thus, we can rewrite the loop as the following.
fn imagined_blocking_syscall(timeout: Option<&mut Duration>) {
let waiter = Waiter::new();
loop {
waiter.wait(timeout.as_mut());
}
}
wait
methodNow let's try to figure out the implementationn of the wait
method. Assume that we have a decorator future Timeout
that can wrap any future to make a new future that completes until the internal future completes or the timeout expires.
With this new convenient primitive of Timeout
, we can now rewrite the Waiter::wait
method as the following.
impl Waiter {
pub fn wait<T>(&self, timeout: Option<&mut T>) -> Timeout<WaitFuture<'_>>
where T: BorrowMut<Duration>
{
Timeout::new(self.wait(), timeout)
}
}
WaitFuture
cancel-safeCancelling Rust futures is still an open problem. Simply dropping a future before its completion may even introduce memory safety issues. Currently, there is no good-enough, language-level solution. See this article for more info.
Luckily, in this proposal, we only need to cancel a very specific future---WaitFuture
. The original version of WaitFuture
is written on the assumption that the future always run to completion.
impl<'a> Future for WaitFuture<'a> {
type Output = ();
fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> {
let mut raw_waker = self.waiter.raw_waker.lock();
match self.waiter.state() {
WaiterState::Idle => {
self.waiter.set_state(WaiterState::Waiting);
*raw_waker = Some(cx.waker().clone());
Poll::Pending
}
WaiterState::Waiting => {
*raw_waker = Some(cx.waker().clone());
Poll::Pending
}
WaiterState::Woken => {
debug_assert!(raw_waker.is_none());
Poll::Ready(())
}
}
}
}
Simply droping a WaitFuture
may result in a Waiter
/ WaiterInner
in an unexpected state. To fixe this issue, we can implement a Drop
trait for WaitFuture
to ensure that Waiter
/ WaiterInner
's state is good even when WaitFuture
is cancelled.
impl<'a> Drop for WaiterFuture<'a> {
fn drop(&mut self) {
let mut raw_waker = self.waiter.raw_waker.lock();
if let WaiterState::Waiting = self.waiter.state() {
*raw_waker = None;
self.waiter.set_state(WaiterState::Idle);
}
}
}
Timeout<F: Future>
Needs to be added :)
This RFC issue consists of two parts: One is SwornDisk high-level design overview, which explains SwornDisk's "why, how, what". One is SwornDisk-Occlum's implementation review, which explains code structure and details of this SGX version.
SwornDisk: A Log-Structured Secure Block Device for TEEs
Objectives: confidentiality, integrity, freshness, anonymity, consistency, and (flush) atomicity
2 × H
write amplification) and security vulnerability (Unanticipated snapshot attacks, CVE-2022-27499, our website)Random writes are slower than sequential writes in HDD/SSD
Write amplification: 2 × H
vs. 1 + ϵ (ϵ ≪ 1)
SwornDisk performs out-of-place data updates. It keeps the mapping between user-query block address (LBA) and eventually-persist block address (HBA) in TEE.
It introduces tailor-made LSM-tree to index confidential data and only use MHT to protect the index (much smaller than data) itself. Cascade updates of MHTs is avoided since all disk content of index are all immutable.
There is also a journal subsystem to summarize on-disk updates to ensure crash consistency and atomicity.
This technique minimizes write amplification, where each write generates one data block, one or more index records (due to compaction), and one journal record.
params: start address LBA, a number of block buffers
params: start address LBA, a number of block buffers
params: none
params: start address LBA, end address LBA
SwornDisk's log-structured design lets newer data and older data coexist. So during writing new data, older data must be invalidated to benefit incoming GC.
Before every writes, SwornDisk retrieves older index records and invalidate the corresponding HBA (in DST).
A periodic GC worker would choose a victim segment, migrate the still valid blocks and free this data segment.
Journal contains a series of records that summarize the information of each on-disk update of the secure data log and the secure index.
SwornDisk realizes consistency based on three internal journal operations: journaling, checkpointing, and recovery.
Each on-disk update of the secure data log and the secure index is followed by writing a corresponding journal record for the durability and security of the update.
Record Types | Description |
---|---|
Data log | Summarizes the update to a data segment (data region) |
BIT node | Summarizes a new BIT node (index region) |
BIT compaction | Saves the progress of a BIT compaction |
Checkpoint pack | Summarizes a new checkpoint pack (checkpint region) |
Commit | Marks prior data/index as committed |
To reclaim the disk space consumed by outdated journal records and speed up the recovery process, SwornDisk periodically transforms journal records into a more compact format called checkpoint packs.
During recovery, SwornDisk selects the most recent checkpoint pack, from which it initializes its in-memory data structures. Then, it continues reading the rest of the journal, one record at a time, deciding whether it should be accepted to restore SwornDisk to a consistent state.
Consist of some auxiliary data structures for index query and segment management:
Other important points worth to discuss but lack of space:
Compaction-based, delayed block reclamation; Flush atomicity based on commitment; Key acquisition and protection flow; space clipping; Performance tuning.
When doing stress test, e.g., TESTS=server STRESS_TEST_TIMES=500 make test
, the test might failed after hundreds of tests.
The error is bind failed (address in use), which is because of the old socket that listening in the port isn't closed.
To close a listening socket, we first cancel all ongoing accept io-uring request, however, the request seems lost when doing stress test. e.g., we try to cancel 10 requests, but only 9 requests were canceled, which left one request to lose.
When I add log to locate this bug, I find it's hard to reproduce the bug if I add many logs in io-uring operation.
I thought it's might because of the third crate io-uring
crate, since our io-uring
crate is outdated.
And I try to update the io-uring
crate (The interface of io-uring crate changed a lot), and then I meet more bugs...... (The code is in https://github.com/ShuochengWang/io-uring/tree/sgx and https://github.com/ShuochengWang/ngo/tree/dev-network9)
The log of this bug:
PASS
RUN TEST => server
[2021-10-20T05:37:54.358Z][TRACE] env_checked from env untrusted: []
[2021-10-20T05:37:54.358Z][TRACE] env_merged = ["OCCLUM=yes", "STABLE=yes", "OVERRIDE=N"] (default env and untrusted env)
[2021-10-20T05:37:54.358Z][DEBUG] lookup_inode: cwd: "/", path: "/bin/server"
[2021-10-20T05:37:54.359Z][DEBUG] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.376Z][DEBUG] allocated rsrv addr is 0x7f4de93cf000, len is 0x6896000
[2021-10-20T05:37:54.377Z][ INFO] Process created: elf = /bin/server, pid = 1241
[2021-10-20T05:37:54.377Z][DEBUG][T1241][#0] Thread #1241 is executed as task #1241
[2021-10-20T05:37:54.377Z][TRACE][T1241][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4de9c94d88 }
[2021-10-20T05:37:54.377Z][DEBUG][T1241][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4de9c94d88
[2021-10-20T05:37:54.377Z][TRACE][T1241][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4de9c95364 }
[2021-10-20T05:37:54.377Z][DEBUG][T1241][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4de9c95364
[2021-10-20T05:37:54.377Z][TRACE][T1241][#3][Mprotect] Syscall { num = Mprotect, addr = 139972611477504, len = 4096, prot = 1 }
[2021-10-20T05:37:54.377Z][DEBUG][T1241][#3][Mprotect] mprotect: addr: 0x7f4de9c91000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.377Z][ WARN][T1241][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.377Z][TRACE][T1241][#4][Mprotect] Syscall { num = Mprotect, addr = 139972604604416, len = 4096, prot = 1 }
[2021-10-20T05:37:54.377Z][DEBUG][T1241][#4][Mprotect] mprotect: addr: 0x7f4de9603000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.377Z][ WARN][T1241][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.377Z][TRACE][T1241][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.378Z][ INFO][T1241][#5][··Socket] open fd 26
[2021-10-20T05:37:54.378Z][TRACE][T1241][#6][Setsockopt] Syscall { num = Setsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 4 }
[2021-10-20T05:37:54.378Z][DEBUG][T1241][#6][Setsockopt] setsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 4
[2021-10-20T05:37:54.378Z][ INFO][T1241][#6][Setsockopt] fd: 26, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.378Z][TRACE][T1241][#7][Getsockopt] Syscall { num = Getsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 0x7f4deaa95db4 }
[2021-10-20T05:37:54.378Z][DEBUG][T1241][#7][Getsockopt] getsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 0x7f4deaa95db4
[2021-10-20T05:37:54.378Z][TRACE][T1241][#8][····Bind] Syscall { num = Bind, fd = 3, addr = 0x7f4deaa95dc0, addr_len = 16 }
[2021-10-20T05:37:54.378Z][TRACE][T1241][#9][··Listen] Syscall { num = Listen, fd = 3, backlog = 10 }
[2021-10-20T05:37:54.378Z][TRACE][T1241][#10][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e28, path = 0x7f4de9402939, argv = 0x7f4deaa95dd0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.378Z][DEBUG][T1241][#10][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8800"], envp: [], fdop: []
[2021-10-20T05:37:54.378Z][DEBUG][T1241][#10][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.378Z][DEBUG][T1241][#10][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.382Z][DEBUG][T1241][#10][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.382Z][DEBUG][T1241][#10][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.382Z][ INFO][T1241][#10][SpawnMusl] Process created: elf = /bin/client, pid = 1242
[2021-10-20T05:37:54.382Z][TRACE][T1241][#11][··Accept] Syscall { num = Accept, fd = 3, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.382Z][DEBUG][T1242][#0] Thread #1242 is executed as task #1242
[2021-10-20T05:37:54.382Z][TRACE][T1242][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.382Z][DEBUG][T1242][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.382Z][TRACE][T1242][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.382Z][DEBUG][T1242][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.382Z][TRACE][T1242][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.382Z][DEBUG][T1242][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.382Z][ WARN][T1242][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.382Z][TRACE][T1242][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.382Z][DEBUG][T1242][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.382Z][ WARN][T1242][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.383Z][TRACE][T1242][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.383Z][ INFO][T1242][#5][··Socket] open fd 493
[2021-10-20T05:37:54.383Z][TRACE][T1242][#6][·Connect] Syscall { num = Connect, fd = 4, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] Accept success: 494
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, 494
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.383Z][TRACE][T1241][#12][···Close] Syscall { num = Close, fd = 3 }
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#12][···Close] close: fd: 3
[2021-10-20T05:37:54.383Z][TRACE][T1241][#13][···Write] Syscall { num = Write, fd = 4, buf = 0x7f4de9402953, size = 26 }
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#13][···Write] write: fd: 4
[2021-10-20T05:37:54.383Z][TRACE][T1242][#7][····Read] Syscall { num = Read, fd = 4, buf = 0x7f4df1495de0, size = 100 }
[2021-10-20T05:37:54.383Z][TRACE][T1241][#14][····Read] Syscall { num = Read, fd = 4, buf = 0x7f4deaa95df0, size = 4 }
[2021-10-20T05:37:54.383Z][DEBUG][T1242][#7][····Read] read: fd: 4
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#14][····Read] read: fd: 4
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.383Z][TRACE][T1242][#8][···Write] Syscall { num = Write, fd = 4, buf = 0x7f4defe01231, size = 4 }
[2021-10-20T05:37:54.383Z][DEBUG][T1242][#8][···Write] write: fd: 4
[2021-10-20T05:37:54.383Z][TRACE][T1242][#9][···Close] Syscall { num = Close, fd = 4 }
[2021-10-20T05:37:54.383Z][DEBUG][T1242][#9][···Close] close: fd: 4
[2021-10-20T05:37:54.383Z][ INFO][T1242][#9][···Close] cancel sent
[2021-10-20T05:37:54.383Z][TRACE][T1242][#10][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.383Z][DEBUG][T1242][#10][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.383Z][DEBUG][T1242][#10][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#14][····Read] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] close fd 493
[2021-10-20T05:37:54.383Z][TRACE][T1241][#15][···Wait4] Syscall { num = Wait4, pid = 1242, _exit_status = 0x7f4deaa95e2c }
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.383Z][ERROR][T1241][#16] Error = EINVAL (#22, Invalid argument): Invalid system call number (16) [line = 674, file = src/entry/syscall.rs]
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.383Z][TRACE][T1241][#17][··Writev] Syscall { num = Writev, fd = 1, iov = 0x7f4deaa95a40, count = 2 }
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#17][··Writev] writev: fd: 1
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, -114
func test_read_write - [OK]
[2021-10-20T05:37:54.383Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.383Z][TRACE][T1241][#18][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.383Z][ INFO][T1241][#18][··Socket] open fd 493
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.383Z][TRACE][T1241][#19][Setsockopt] Syscall { num = Setsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 4 }
[2021-10-20T05:37:54.383Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#19][Setsockopt] setsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 4
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.383Z][ INFO][T1241][#19][Setsockopt] fd: 493, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.383Z][TRACE][T1241][#20][Getsockopt] Syscall { num = Getsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 0x7f4deaa95db4 }
[2021-10-20T05:37:54.383Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#20][Getsockopt] getsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 0x7f4deaa95db4
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.383Z][TRACE][T1241][#21][····Bind] Syscall { num = Bind, fd = 3, addr = 0x7f4deaa95dc0, addr_len = 16 }
[2021-10-20T05:37:54.383Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.383Z][TRACE][T1241][#22][··Listen] Syscall { num = Listen, fd = 3, backlog = 10 }
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.383Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.383Z][TRACE][T1241][#23][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e2c, path = 0x7f4de9402939, argv = 0x7f4deaa95dd0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.383Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#23][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8801"], envp: [], fdop: []
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#23][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.384Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.384Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.384Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.384Z][DEBUG][T1241][#23][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.384Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.384Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.384Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.384Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.384Z][ INFO][T0][#0] close fd 26
[2021-10-20T05:37:54.384Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.388Z][DEBUG][T1241][#23][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.388Z][DEBUG][T1241][#23][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.388Z][ INFO][T1241][#23][SpawnMusl] Process created: elf = /bin/client, pid = 1243
[2021-10-20T05:37:54.388Z][TRACE][T1241][#24][··Accept] Syscall { num = Accept, fd = 3, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.388Z][DEBUG][T1243][#0] Thread #1243 is executed as task #1243
[2021-10-20T05:37:54.388Z][TRACE][T1243][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.388Z][DEBUG][T1243][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.388Z][TRACE][T1243][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.388Z][DEBUG][T1243][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.388Z][TRACE][T1243][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.388Z][DEBUG][T1243][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.388Z][ WARN][T1243][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.388Z][TRACE][T1243][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.388Z][DEBUG][T1243][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.388Z][ WARN][T1243][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.388Z][TRACE][T1243][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.388Z][ INFO][T1243][#5][··Socket] open fd 26
[2021-10-20T05:37:54.388Z][TRACE][T1243][#6][·Connect] Syscall { num = Connect, fd = 5, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.388Z][ INFO][T0][#0] Accept success: 495
[2021-10-20T05:37:54.388Z][ INFO][T0][#0] io-uring normal complete, 495
[2021-10-20T05:37:54.388Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.388Z][TRACE][T1241][#25][···Close] Syscall { num = Close, fd = 3 }
[2021-10-20T05:37:54.388Z][DEBUG][T1241][#25][···Close] close: fd: 3
[2021-10-20T05:37:54.388Z][TRACE][T1241][#26][···Write] Syscall { num = Write, fd = 5, buf = 0x7f4de9402953, size = 26 }
[2021-10-20T05:37:54.388Z][DEBUG][T1241][#26][···Write] write: fd: 5
[2021-10-20T05:37:54.388Z][TRACE][T1241][#27][····Read] Syscall { num = Read, fd = 5, buf = 0x7f4deaa95df0, size = 4 }
[2021-10-20T05:37:54.388Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.388Z][DEBUG][T1241][#27][····Read] read: fd: 5
[2021-10-20T05:37:54.388Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.388Z][TRACE][T1243][#7][····Read] Syscall { num = Read, fd = 5, buf = 0x7f4df1495de0, size = 100 }
[2021-10-20T05:37:54.388Z][DEBUG][T1243][#7][····Read] read: fd: 5
[2021-10-20T05:37:54.388Z][TRACE][T1243][#8][···Write] Syscall { num = Write, fd = 5, buf = 0x7f4defe01231, size = 4 }
[2021-10-20T05:37:54.388Z][DEBUG][T1243][#8][···Write] write: fd: 5
[2021-10-20T05:37:54.389Z][TRACE][T1243][#9][··Sendto] Syscall { num = Sendto, fd = 5, base = 0x7f4df1495de0, len = 26, flags = 0, addr = 0x0, addr_len = 0 }
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.389Z][TRACE][T1243][#10][···Close] Syscall { num = Close, fd = 5 }
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.389Z][DEBUG][T1243][#10][···Close] close: fd: 5
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.389Z][ INFO][T1243][#10][···Close] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] close fd 26
[2021-10-20T05:37:54.389Z][TRACE][T1243][#11][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.389Z][DEBUG][T1243][#11][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.389Z][DEBUG][T1243][#11][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.389Z][DEBUG][T1241][#27][····Read] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.389Z][TRACE][T1241][#28][Recvfrom] Syscall { num = Recvfrom, fd = 5, base = 0x7f4deaa95df0, len = 32, flags = 0, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.389Z][TRACE][T1241][#29][···Wait4] Syscall { num = Wait4, pid = 1243, _exit_status = 0x7f4deaa95e0c }
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.389Z][TRACE][T1241][#30][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.389Z][ INFO][T1241][#30][··Socket] open fd 26
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][TRACE][T1241][#31][Setsockopt] Syscall { num = Setsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 4 }
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.389Z][DEBUG][T1241][#31][Setsockopt] setsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 4
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][ INFO][T1241][#31][Setsockopt] fd: 26, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][TRACE][T1241][#32][Getsockopt] Syscall { num = Getsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 0x7f4deaa95db4 }
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.389Z][DEBUG][T1241][#32][Getsockopt] getsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 0x7f4deaa95db4
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][TRACE][T1241][#33][····Bind] Syscall { num = Bind, fd = 3, addr = 0x7f4deaa95dc0, addr_len = 16 }
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][TRACE][T1241][#34][··Listen] Syscall { num = Listen, fd = 3, backlog = 10 }
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][TRACE][T1241][#35][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e2c, path = 0x7f4de9402939, argv = 0x7f4deaa95dd0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][DEBUG][T1241][#35][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8802"], envp: [], fdop: []
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.389Z][DEBUG][T1241][#35][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.389Z][DEBUG][T1241][#35][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] close fd 493
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.393Z][DEBUG][T1241][#35][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.393Z][DEBUG][T1241][#35][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.394Z][ INFO][T1241][#35][SpawnMusl] Process created: elf = /bin/client, pid = 1244
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#0] Thread #1244 is executed as task #1244
[2021-10-20T05:37:54.394Z][TRACE][T1241][#36][··Accept] Syscall { num = Accept, fd = 3, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.394Z][TRACE][T1244][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.394Z][TRACE][T1244][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.394Z][TRACE][T1244][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.394Z][ WARN][T1244][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.394Z][TRACE][T1244][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.394Z][ WARN][T1244][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.394Z][TRACE][T1244][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.394Z][ INFO][T1244][#5][··Socket] open fd 493
[2021-10-20T05:37:54.394Z][TRACE][T1244][#6][·Connect] Syscall { num = Connect, fd = 6, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] Accept success: 496
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 496
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.394Z][TRACE][T1241][#37][···Close] Syscall { num = Close, fd = 3 }
[2021-10-20T05:37:54.394Z][DEBUG][T1241][#37][···Close] close: fd: 3
[2021-10-20T05:37:54.394Z][TRACE][T1241][#38][···Write] Syscall { num = Write, fd = 6, buf = 0x7f4de9402953, size = 26 }
[2021-10-20T05:37:54.394Z][TRACE][T1244][#7][····Read] Syscall { num = Read, fd = 6, buf = 0x7f4df1495de0, size = 100 }
[2021-10-20T05:37:54.394Z][DEBUG][T1241][#38][···Write] write: fd: 6
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#7][····Read] read: fd: 6
[2021-10-20T05:37:54.394Z][TRACE][T1241][#39][····Read] Syscall { num = Read, fd = 6, buf = 0x7f4deaa95df0, size = 4 }
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.394Z][DEBUG][T1241][#39][····Read] read: fd: 6
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.394Z][TRACE][T1244][#8][···Write] Syscall { num = Write, fd = 6, buf = 0x7f4defe01231, size = 4 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#8][···Write] write: fd: 6
[2021-10-20T05:37:54.394Z][TRACE][T1244][#9][·Sendmsg] Syscall { num = Sendmsg, fd = 6, msg_ptr = 0x7f4df1495908, flags = 0 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#9][·Sendmsg] sendmsg: fd: 6, msg: 0x7f4df1495908, flags: 0x0
[2021-10-20T05:37:54.394Z][TRACE][T1244][#10][·Sendmsg] Syscall { num = Sendmsg, fd = 6, msg_ptr = 0x7f4df1495908, flags = 0 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#10][·Sendmsg] sendmsg: fd: 6, msg: 0x7f4df1495908, flags: 0x0
[2021-10-20T05:37:54.394Z][TRACE][T1244][#11][···Close] Syscall { num = Close, fd = 6 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#11][···Close] close: fd: 6
[2021-10-20T05:37:54.394Z][ INFO][T1244][#11][···Close] cancel sent
[2021-10-20T05:37:54.394Z][TRACE][T1244][#12][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#12][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#12][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.394Z][DEBUG][T1241][#39][····Read] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.394Z][TRACE][T1241][#40][·Recvmsg] Syscall { num = Recvmsg, fd = 6, msg_mut_ptr = 0x7f4deaa95d08, flags = 0 }
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] close fd 493
[2021-10-20T05:37:54.394Z][DEBUG][T1241][#40][·Recvmsg] recvmsg: fd: 6, msg: 0x7f4deaa95d08, flags: 0x0
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.394Z][TRACE][T1241][#41][·Recvmsg] Syscall { num = Recvmsg, fd = 6, msg_mut_ptr = 0x7f4deaa95d08, flags = 0 }
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.394Z][DEBUG][T1241][#41][·Recvmsg] recvmsg: fd: 6, msg: 0x7f4deaa95d08, flags: 0x0
[2021-10-20T05:37:54.394Z][TRACE][T1241][#42][···Wait4] Syscall { num = Wait4, pid = 1244, _exit_status = 0x7f4deaa95e0c }
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.395Z][TRACE][T1241][#43][Socketpair] Syscall { num = Socketpair, domain = 1, socket_type = 1, protocol = 0, sv = 0x7f4deaa95de0 }
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.395Z][DEBUG][T1241][#43][Socketpair] socketpair: (3, 7)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][TRACE][T1241][#44][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95ddc, path = 0x7f4de9402939, argv = 0x7f4deaa95df0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][DEBUG][T1241][#44][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "NULL", "8803", "7"], envp: [], fdop: []
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.395Z][DEBUG][T1241][#44][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.395Z][DEBUG][T1241][#44][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] close fd 26
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.399Z][DEBUG][T1241][#44][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.399Z][DEBUG][T1241][#44][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.399Z][ INFO][T1241][#44][SpawnMusl] Process created: elf = /bin/client, pid = 1245
[2021-10-20T05:37:54.399Z][TRACE][T1241][#45][··Socket] Syscall { num = Socket, domain = 2, socket_type = 2, protocol = 0 }
[2021-10-20T05:37:54.399Z][ INFO][T1241][#45][··Socket] open fd 26
[2021-10-20T05:37:54.399Z][TRACE][T1241][#46][····Bind] Syscall { num = Bind, fd = 8, addr = 0x7f4deaa95d40, addr_len = 16 }
[2021-10-20T05:37:54.399Z][TRACE][T1241][#47][·Recvmsg] Syscall { num = Recvmsg, fd = 8, msg_mut_ptr = 0x7f4deaa958f8, flags = 0 }
[2021-10-20T05:37:54.399Z][DEBUG][T1241][#47][·Recvmsg] recvmsg: fd: 8, msg: 0x7f4deaa958f8, flags: 0x0
[2021-10-20T05:37:54.399Z][DEBUG][T1245][#0] Thread #1245 is executed as task #1245
[2021-10-20T05:37:54.399Z][TRACE][T1245][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.399Z][DEBUG][T1245][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.399Z][TRACE][T1245][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.399Z][DEBUG][T1245][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.399Z][TRACE][T1245][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.399Z][DEBUG][T1245][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.399Z][ WARN][T1245][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.399Z][TRACE][T1245][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.399Z][DEBUG][T1245][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.399Z][ WARN][T1245][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.399Z][TRACE][T1245][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 2, protocol = 0 }
[2021-10-20T05:37:54.400Z][ INFO][T1245][#5][··Socket] open fd 498
[2021-10-20T05:37:54.400Z][TRACE][T1245][#6][·Sendmsg] Syscall { num = Sendmsg, fd = 8, msg_ptr = 0x7f4df14958e8, flags = 0 }
[2021-10-20T05:37:54.400Z][DEBUG][T1245][#6][·Sendmsg] sendmsg: fd: 8, msg: 0x7f4df14958e8, flags: 0x0
[2021-10-20T05:37:54.400Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.400Z][TRACE][T1245][#7][····Read] Syscall { num = Read, fd = 7, buf = 0x7f4df1495dd0, size = 4 }
[2021-10-20T05:37:54.400Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.400Z][DEBUG][T1245][#7][····Read] read: fd: 7
[2021-10-20T05:37:54.400Z][TRACE][T1241][#48][···Write] Syscall { num = Write, fd = 3, buf = 0x7f4de94029b0, size = 4 }
[2021-10-20T05:37:54.400Z][DEBUG][T1241][#48][···Write] write: fd: 3
[2021-10-20T05:37:54.400Z][TRACE][T1241][#49][···Wait4] Syscall { num = Wait4, pid = 1245, _exit_status = 0x7f4deaa95dbc }
[2021-10-20T05:37:54.400Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.400Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.400Z][TRACE][T1245][#8][···Close] Syscall { num = Close, fd = 0 }
[2021-10-20T05:37:54.400Z][DEBUG][T1245][#8][···Close] close: fd: 0
[2021-10-20T05:37:54.400Z][TRACE][T1245][#9][ExitGroup] Syscall { num = ExitGroup, exit_status = 13 }
[2021-10-20T05:37:54.400Z][DEBUG][T1245][#9][ExitGroup] exit_group: 13
[2021-10-20T05:37:54.400Z][DEBUG][T1245][#9][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.400Z][ INFO][T1241][#49][···Wait4] cancel sent
[2021-10-20T05:37:54.400Z][ INFO][T0][#0] close fd 498
[2021-10-20T05:37:54.400Z][DEBUG][T1241][#49][···Wait4] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.400Z][TRACE][T1241][#50][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.400Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.400Z][ INFO][T1241][#50][··Socket] open fd 498
[2021-10-20T05:37:54.400Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.400Z][TRACE][T1241][#51][Setsockopt] Syscall { num = Setsockopt, fd = 9, level = 1, optname = 2, optval = 0x7f4deaa95ba0, optlen = 4 }
[2021-10-20T05:37:54.400Z][DEBUG][T1241][#51][Setsockopt] setsockopt: fd: 9, level: 1, optname: 2, optval: 0x7f4deaa95ba0, optlen: 4
[2021-10-20T05:37:54.400Z][ INFO][T1241][#51][Setsockopt] fd: 498, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.400Z][TRACE][T1241][#52][Getsockopt] Syscall { num = Getsockopt, fd = 9, level = 1, optname = 2, optval = 0x7f4deaa95ba0, optlen = 0x7f4deaa95ba4 }
[2021-10-20T05:37:54.400Z][DEBUG][T1241][#52][Getsockopt] getsockopt: fd: 9, level: 1, optname: 2, optval: 0x7f4deaa95ba0, optlen: 0x7f4deaa95ba4
[2021-10-20T05:37:54.400Z][TRACE][T1241][#53][····Bind] Syscall { num = Bind, fd = 9, addr = 0x7f4deaa95bb0, addr_len = 16 }
[2021-10-20T05:37:54.400Z][TRACE][T1241][#54][··Listen] Syscall { num = Listen, fd = 9, backlog = 10 }
[2021-10-20T05:37:54.400Z][TRACE][T1241][#55][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95c14, path = 0x7f4de9402939, argv = 0x7f4deaa95bc0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.400Z][DEBUG][T1241][#55][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8805"], envp: [], fdop: []
[2021-10-20T05:37:54.400Z][DEBUG][T1241][#55][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.400Z][DEBUG][T1241][#55][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.404Z][DEBUG][T1241][#55][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.404Z][DEBUG][T1241][#55][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.404Z][ INFO][T1241][#55][SpawnMusl] Process created: elf = /bin/client, pid = 1246
[2021-10-20T05:37:54.404Z][DEBUG][T1246][#0] Thread #1246 is executed as task #1246
[2021-10-20T05:37:54.404Z][TRACE][T1241][#56][··Accept] Syscall { num = Accept, fd = 9, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.404Z][TRACE][T1246][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.405Z][DEBUG][T1246][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.405Z][TRACE][T1246][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.405Z][DEBUG][T1246][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.405Z][TRACE][T1246][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.405Z][DEBUG][T1246][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.405Z][ WARN][T1246][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.405Z][TRACE][T1246][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.405Z][DEBUG][T1246][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.405Z][ WARN][T1246][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.405Z][TRACE][T1246][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.405Z][ INFO][T1246][#5][··Socket] open fd 499
[2021-10-20T05:37:54.405Z][TRACE][T1246][#6][·Connect] Syscall { num = Connect, fd = 10, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] Accept success: 500
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, 500
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.405Z][TRACE][T1241][#57][···Close] Syscall { num = Close, fd = 9 }
[2021-10-20T05:37:54.405Z][DEBUG][T1241][#57][···Close] close: fd: 9
[2021-10-20T05:37:54.405Z][TRACE][T1241][#58][····Poll] Syscall { num = Poll, fds = 0x7f4deaa95c18, nfds = 1, timeout = -1 }
[2021-10-20T05:37:54.405Z][TRACE][T1246][#7][··Sendto] Syscall { num = Sendto, fd = 10, base = 0x7f4defe01235, len = 13, flags = 0, addr = 0x0, addr_len = 0 }
[2021-10-20T05:37:54.405Z][DEBUG][T1241][#58][····Poll] poll: poll_fds: [PollFd { fd: Some(10), events: IN, revents: Cell { value: (empty) } }], timeout: None
[2021-10-20T05:37:54.405Z][TRACE][T1246][#8][···Close] Syscall { num = Close, fd = 10 }
[2021-10-20T05:37:54.405Z][DEBUG][T1246][#8][···Close] close: fd: 10
[2021-10-20T05:37:54.405Z][ INFO][T1246][#8][···Close] cancel sent
[2021-10-20T05:37:54.405Z][TRACE][T1246][#9][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.405Z][DEBUG][T1246][#9][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.405Z][DEBUG][T1246][#9][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.405Z][DEBUG][T1241][#58][····Poll] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] close fd 499
[2021-10-20T05:37:54.405Z][TRACE][T1241][#59][····Read] Syscall { num = Read, fd = 10, buf = 0x7f4deaa95c20, size = 512 }
[2021-10-20T05:37:54.405Z][DEBUG][T1241][#59][····Read] read: fd: 10
[2021-10-20T05:37:54.405Z][TRACE][T1241][#60][···Wait4] Syscall { num = Wait4, pid = 1246, _exit_status = 0x7f4deaa95c20 }
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.405Z][TRACE][T1241][#61][···Close] Syscall { num = Close, fd = 10 }
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.405Z][DEBUG][T1241][#61][···Close] close: fd: 10
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.405Z][ INFO][T1241][#61][···Close] close fd 500
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.405Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.405Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.405Z][TRACE][T1241][#62][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.405Z][ INFO][T1241][#62][··Socket] open fd 499
[2021-10-20T05:37:54.405Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.405Z][TRACE][T1241][#63][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.405Z][ INFO][T1241][#63][··Socket] open fd 500
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.405Z][TRACE][T1241][#64][····Poll] Syscall { num = Poll, fds = 0x7f4deaa95e10, nfds = 2, timeout = 0 }
[2021-10-20T05:37:54.405Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.405Z][DEBUG][T1241][#64][····Poll] poll: poll_fds: [PollFd { fd: Some(9), events: IN, revents: Cell { value: (empty) } }, PollFd { fd: Some(10), events: IN, revents: Cell { value: (empty) } }], timeout: Some(0ns)
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.405Z][TRACE][T1241][#65][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.405Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.405Z][ INFO][T1241][#65][··Socket] open fd 501
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.405Z][TRACE][T1241][#66][Setsockopt] Syscall { num = Setsockopt, fd = 11, level = 1, optname = 2, optval = 0x7f4deaa95e14, optlen = 4 }
[2021-10-20T05:37:54.405Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.405Z][DEBUG][T1241][#66][Setsockopt] setsockopt: fd: 11, level: 1, optname: 2, optval: 0x7f4deaa95e14, optlen: 4
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.406Z][ INFO][T1241][#66][Setsockopt] fd: 501, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.406Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.406Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.406Z][TRACE][T1241][#67][Getsockopt] Syscall { num = Getsockopt, fd = 11, level = 1, optname = 2, optval = 0x7f4deaa95e18, optlen = 0x7f4deaa95e1c }
[2021-10-20T05:37:54.406Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.406Z][DEBUG][T1241][#67][Getsockopt] getsockopt: fd: 11, level: 1, optname: 2, optval: 0x7f4deaa95e18, optlen: 0x7f4deaa95e1c
[2021-10-20T05:37:54.406Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.406Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.406Z][TRACE][T1241][#68][Getsockopt] Syscall { num = Getsockopt, fd = 11, level = 1, optname = 39, optval = 0x7f4deaa95e18, optlen = 0x7f4deaa95e1c }
[2021-10-20T05:37:54.406Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.406Z][DEBUG][T1241][#68][Getsockopt] getsockopt: fd: 11, level: 1, optname: 39, optval: 0x7f4deaa95e18, optlen: 0x7f4deaa95e1c
[2021-10-20T05:37:54.406Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.406Z][TRACE][T1241][#69][···Close] Syscall { num = Close, fd = 11 }
[2021-10-20T05:37:54.406Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.406Z][DEBUG][T1241][#69][···Close] close: fd: 11
[2021-10-20T05:37:54.406Z][ INFO][T0][#0] close fd 498
[2021-10-20T05:37:54.406Z][ INFO][T1241][#69][···Close] close fd 501
[2021-10-20T05:37:54.406Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.406Z][TRACE][T1241][#70][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.406Z][ INFO][T1241][#70][··Socket] open fd 498
[2021-10-20T05:37:54.406Z][TRACE][T1241][#71][Setsockopt] Syscall { num = Setsockopt, fd = 11, level = 1, optname = 2, optval = 0x7f4deaa95da0, optlen = 4 }
[2021-10-20T05:37:54.406Z][DEBUG][T1241][#71][Setsockopt] setsockopt: fd: 11, level: 1, optname: 2, optval: 0x7f4deaa95da0, optlen: 4
[2021-10-20T05:37:54.406Z][ INFO][T1241][#71][Setsockopt] fd: 498, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.406Z][TRACE][T1241][#72][Getsockopt] Syscall { num = Getsockopt, fd = 11, level = 1, optname = 2, optval = 0x7f4deaa95da0, optlen = 0x7f4deaa95da4 }
[2021-10-20T05:37:54.406Z][DEBUG][T1241][#72][Getsockopt] getsockopt: fd: 11, level: 1, optname: 2, optval: 0x7f4deaa95da0, optlen: 0x7f4deaa95da4
[2021-10-20T05:37:54.406Z][TRACE][T1241][#73][····Bind] Syscall { num = Bind, fd = 11, addr = 0x7f4deaa95db0, addr_len = 16 }
[2021-10-20T05:37:54.406Z][TRACE][T1241][#74][··Listen] Syscall { num = Listen, fd = 11, backlog = 10 }
[2021-10-20T05:37:54.406Z][TRACE][T1241][#75][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e14, path = 0x7f4de9402939, argv = 0x7f4deaa95dc0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.406Z][DEBUG][T1241][#75][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8806"], envp: [], fdop: []
[2021-10-20T05:37:54.406Z][DEBUG][T1241][#75][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.406Z][DEBUG][T1241][#75][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.410Z][DEBUG][T1241][#75][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.410Z][DEBUG][T1241][#75][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.410Z][ INFO][T1241][#75][SpawnMusl] Process created: elf = /bin/client, pid = 1247
[2021-10-20T05:37:54.410Z][TRACE][T1241][#76][··Accept] Syscall { num = Accept, fd = 11, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.410Z][DEBUG][T1247][#0] Thread #1247 is executed as task #1247
[2021-10-20T05:37:54.410Z][TRACE][T1247][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.410Z][DEBUG][T1247][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.410Z][TRACE][T1247][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.410Z][DEBUG][T1247][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.410Z][TRACE][T1247][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.410Z][DEBUG][T1247][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.410Z][ WARN][T1247][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.410Z][TRACE][T1247][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.410Z][DEBUG][T1247][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.410Z][ WARN][T1247][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.411Z][TRACE][T1247][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.411Z][ INFO][T1247][#5][··Socket] open fd 501
[2021-10-20T05:37:54.411Z][TRACE][T1247][#6][·Connect] Syscall { num = Connect, fd = 12, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] Accept success: 502
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, 502
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.411Z][TRACE][T1241][#77][···Close] Syscall { num = Close, fd = 11 }
[2021-10-20T05:37:54.411Z][DEBUG][T1241][#77][···Close] close: fd: 11
[2021-10-20T05:37:54.411Z][TRACE][T1241][#78][Getsockname] Syscall { num = Getsockname, fd = 12, addr = 0x7f4deaa95e20, addr_len = 0x7f4deaa95e18 }
[2021-10-20T05:37:54.411Z][TRACE][T1241][#79][Getpeername] Syscall { num = Getpeername, fd = 12, addr = 0x7f4deaa95de0, addr_len = 0x7f4deaa95dd8 }
[2021-10-20T05:37:54.411Z][TRACE][T1241][#80][Getsockopt] Syscall { num = Getsockopt, fd = 12, level = 1, optname = 28, optval = 0x7f4deaa95df0, optlen = 0x7f4deaa95ddc }
[2021-10-20T05:37:54.411Z][DEBUG][T1241][#80][Getsockopt] getsockopt: fd: 12, level: 1, optname: 28, optval: 0x7f4deaa95df0, optlen: 0x7f4deaa95ddc
[2021-10-20T05:37:54.411Z][TRACE][T1241][#81][···Wait4] Syscall { num = Wait4, pid = 1247, _exit_status = 0x7f4deaa95e1c }
[2021-10-20T05:37:54.411Z][TRACE][T1247][#7][··Sendto] Syscall { num = Sendto, fd = 12, base = 0x7f4defe01235, len = 13, flags = 0, addr = 0x0, addr_len = 0 }
[2021-10-20T05:37:54.411Z][TRACE][T1247][#8][···Close] Syscall { num = Close, fd = 12 }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.411Z][DEBUG][T1247][#8][···Close] close: fd: 12
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.411Z][ INFO][T1247][#8][···Close] cancel sent
[2021-10-20T05:37:54.411Z][TRACE][T1247][#9][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] close fd 501
[2021-10-20T05:37:54.411Z][DEBUG][T1247][#9][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.411Z][DEBUG][T1247][#9][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.411Z][DEBUG][T1241][#81][···Wait4] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.411Z][TRACE][T1241][#82][···Close] Syscall { num = Close, fd = 12 }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.411Z][DEBUG][T1241][#82][···Close] close: fd: 12
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][ INFO][T1241][#82][···Close] close fd 502
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.411Z][TRACE][T1241][#83][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][ INFO][T1241][#83][··Socket] open fd 501
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][TRACE][T1241][#84][Getsockname] Syscall { num = Getsockname, fd = 11, addr = 0x7f4deaa95e00, addr_len = 0x7f4deaa95df4 }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][TRACE][T1241][#85][Getpeername] Syscall { num = Getpeername, fd = 11, addr = 0x7f4deaa95e10, addr_len = 0x7f4deaa95df8 }
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][ERROR][T1241][#85][Getpeername] Error = ENOTCONN (#107, Unknown error): the socket is not connected [line = 259, file = crates/host-socket/src/stream/mod.rs]
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.411Z][TRACE][T1241][#86][Getsockopt] Syscall { num = Getsockopt, fd = 11, level = 1, optname = 28, optval = 0x7f4deaa95e20, optlen = 0x7f4deaa95dfc }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][DEBUG][T1241][#86][Getsockopt] getsockopt: fd: 11, level: 1, optname: 28, optval: 0x7f4deaa95e20, optlen: 0x7f4deaa95dfc
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][ERROR][T1241][#86][Getsockopt] Error = ENOTCONN (#107, Unknown error): the socket is not connected [line = 259, file = crates/host-socket/src/stream/mod.rs]
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][TRACE][T1241][#87][···Close] Syscall { num = Close, fd = 11 }
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][DEBUG][T1241][#87][···Close] close: fd: 11
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.411Z][ INFO][T1241][#87][···Close] close fd 501
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][TRACE][T1241][#88][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][ INFO][T1241][#88][··Socket] open fd 501
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][TRACE][T1241][#89][Shutdown] Syscall { num = Shutdown, fd = 11, how = 2 }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.411Z][DEBUG][T1241][#89][Shutdown] shutdown: fd: 11, how: 2
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][ERROR][T1241][#89][Shutdown] Error = ENOTCONN (#107, Unknown error): the socket is not connected [line = 303, file = crates/host-socket/src/stream/mod.rs]
[2021-10-20T05:37:54.412Z][ INFO][T0][#0] close fd 498
[2021-10-20T05:37:54.412Z][TRACE][T1241][#90][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.412Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.412Z][ INFO][T1241][#90][··Socket] open fd 498
[2021-10-20T05:37:54.412Z][TRACE][T1241][#91][Setsockopt] Syscall { num = Setsockopt, fd = 12, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 4 }
[2021-10-20T05:37:54.412Z][DEBUG][T1241][#91][Setsockopt] setsockopt: fd: 12, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 4
[2021-10-20T05:37:54.412Z][ INFO][T1241][#91][Setsockopt] fd: 498, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.412Z][TRACE][T1241][#92][Getsockopt] Syscall { num = Getsockopt, fd = 12, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 0x7f4deaa95db4 }
[2021-10-20T05:37:54.412Z][DEBUG][T1241][#92][Getsockopt] getsockopt: fd: 12, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 0x7f4deaa95db4
[2021-10-20T05:37:54.412Z][TRACE][T1241][#93][····Bind] Syscall { num = Bind, fd = 12, addr = 0x7f4deaa95dc0, addr_len = 16 }
[2021-10-20T05:37:54.412Z][TRACE][T1241][#94][··Listen] Syscall { num = Listen, fd = 12, backlog = 10 }
[2021-10-20T05:37:54.412Z][TRACE][T1241][#95][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e28, path = 0x7f4de9402939, argv = 0x7f4deaa95dd0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.412Z][DEBUG][T1241][#95][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8807"], envp: [], fdop: []
[2021-10-20T05:37:54.412Z][DEBUG][T1241][#95][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.412Z][DEBUG][T1241][#95][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.416Z][DEBUG][T1241][#95][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.416Z][DEBUG][T1241][#95][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.416Z][ INFO][T1241][#95][SpawnMusl] Process created: elf = /bin/client, pid = 1248
[2021-10-20T05:37:54.416Z][DEBUG][T1248][#0] Thread #1248 is executed as task #1248
[2021-10-20T05:37:54.416Z][TRACE][T1241][#96][··Accept] Syscall { num = Accept, fd = 12, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.416Z][TRACE][T1248][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.416Z][DEBUG][T1248][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.416Z][TRACE][T1248][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.416Z][DEBUG][T1248][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.416Z][TRACE][T1248][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.416Z][DEBUG][T1248][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.416Z][ WARN][T1248][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.416Z][TRACE][T1248][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.416Z][DEBUG][T1248][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.416Z][ WARN][T1248][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.416Z][TRACE][T1248][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.416Z][ INFO][T1248][#5][··Socket] open fd 502
[2021-10-20T05:37:54.416Z][TRACE][T1248][#6][·Connect] Syscall { num = Connect, fd = 13, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.416Z][ INFO][T0][#0] Accept success: 503
[2021-10-20T05:37:54.416Z][ INFO][T0][#0] io-uring normal complete, 503
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.417Z][TRACE][T1241][#97][···Close] Syscall { num = Close, fd = 12 }
[2021-10-20T05:37:54.417Z][DEBUG][T1241][#97][···Close] close: fd: 12
[2021-10-20T05:37:54.417Z][TRACE][T1241][#98][Shutdown] Syscall { num = Shutdown, fd = 13, how = 2 }
[2021-10-20T05:37:54.417Z][DEBUG][T1241][#98][Shutdown] shutdown: fd: 13, how: 2
[2021-10-20T05:37:54.417Z][TRACE][T1248][#7][··Sendto] Syscall { num = Sendto, fd = 13, base = 0x7f4defe01235, len = 13, flags = 0, addr = 0x0, addr_len = 0 }
[2021-10-20T05:37:54.417Z][TRACE][T1241][#99][···Wait4] Syscall { num = Wait4, pid = 1248, _exit_status = 0x7f4deaa95e2c }
[2021-10-20T05:37:54.417Z][TRACE][T1248][#8][···Close] Syscall { num = Close, fd = 13 }
[2021-10-20T05:37:54.417Z][DEBUG][T1248][#8][···Close] close: fd: 13
[2021-10-20T05:37:54.417Z][ INFO][T1248][#8][···Close] cancel sent
[2021-10-20T05:37:54.417Z][TRACE][T1248][#9][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.417Z][DEBUG][T1248][#9][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.417Z][DEBUG][T1248][#9][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.417Z][DEBUG][T1241][#99][···Wait4] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][TRACE][T1241][#100][···Close] Syscall { num = Close, fd = 13 }
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][DEBUG][T1241][#100][···Close] close: fd: 13
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][ INFO][T1241][#100][···Close] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][TRACE][T1241][#101][··Writev] Syscall { num = Writev, fd = 1, iov = 0x7f4deaa95dd0, count = 2 }
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][DEBUG][T1241][#101][··Writev] writev: fd: 1
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
func test_send_recv - [OK]
func test_sendmsg_recvmsg - [OK]
func test_sendmsg_recvmsg_connectionless - [OK]
func test_poll - [OK]
func test_poll_events_unchanged - [OK]
func test_sockopt - [OK]
[socket with bind] address: 127.0.0.1
[socket with bind] port: 8806
Peer address: 127.0.0.1
Peer port: 34916
func test_getname - [OK]
[socket without bind] address: 0.0.0.0
[socket without bind] port: 0
func test_getname_without_bind - [OK]
func test_shutdown - [OK]
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][TRACE][T1241][#102][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][DEBUG][T1241][#102][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][DEBUG][T1241][#102][ExitGroup] futex_wake_bitset addr: 0x7f4de9c95364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][ INFO] close fd 494
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][ INFO] close fd 495
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] close fd 503
[2021-10-20T05:37:54.417Z][ INFO] close fd 496
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] close fd 502
[2021-10-20T05:37:54.417Z][ INFO] close fd 499
[2021-10-20T05:37:54.417Z][ INFO] close fd 500
[2021-10-20T05:37:54.417Z][ INFO] close fd 501
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -2
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] close fd 493
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.418Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.418Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.418Z][ INFO][T0][#0] close fd 497
[2021-10-20T05:37:54.418Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.418Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.418Z][ INFO][T0][#0] close fd 26
[2021-10-20T05:37:54.418Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.418Z][ INFO][T0][#0] io-uring cancel complete, 0
PASS
RUN TEST => server
[2021-10-20T05:37:54.491Z][TRACE] env_checked from env untrusted: []
[2021-10-20T05:37:54.492Z][TRACE] env_merged = ["OCCLUM=yes", "STABLE=yes", "OVERRIDE=N"] (default env and untrusted env)
[2021-10-20T05:37:54.492Z][DEBUG] lookup_inode: cwd: "/", path: "/bin/server"
[2021-10-20T05:37:54.492Z][DEBUG] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.509Z][DEBUG] allocated rsrv addr is 0x7f4de93cf000, len is 0x6896000
[2021-10-20T05:37:54.510Z][ INFO] Process created: elf = /bin/server, pid = 1249
[2021-10-20T05:37:54.510Z][DEBUG][T1249][#0] Thread #1249 is executed as task #1249
[2021-10-20T05:37:54.510Z][TRACE][T1249][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4de9c94d88 }
[2021-10-20T05:37:54.510Z][DEBUG][T1249][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4de9c94d88
[2021-10-20T05:37:54.510Z][TRACE][T1249][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4de9c95364 }
[2021-10-20T05:37:54.510Z][DEBUG][T1249][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4de9c95364
[2021-10-20T05:37:54.510Z][TRACE][T1249][#3][Mprotect] Syscall { num = Mprotect, addr = 139972611477504, len = 4096, prot = 1 }
[2021-10-20T05:37:54.510Z][DEBUG][T1249][#3][Mprotect] mprotect: addr: 0x7f4de9c91000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.510Z][ WARN][T1249][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.510Z][TRACE][T1249][#4][Mprotect] Syscall { num = Mprotect, addr = 139972604604416, len = 4096, prot = 1 }
[2021-10-20T05:37:54.510Z][DEBUG][T1249][#4][Mprotect] mprotect: addr: 0x7f4de9603000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.510Z][ WARN][T1249][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.510Z][TRACE][T1249][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.511Z][ INFO][T1249][#5][··Socket] open fd 26
[2021-10-20T05:37:54.511Z][TRACE][T1249][#6][Setsockopt] Syscall { num = Setsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 4 }
[2021-10-20T05:37:54.511Z][DEBUG][T1249][#6][Setsockopt] setsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 4
[2021-10-20T05:37:54.511Z][ INFO][T1249][#6][Setsockopt] fd: 26, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.511Z][TRACE][T1249][#7][Getsockopt] Syscall { num = Getsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 0x7f4deaa95db4 }
[2021-10-20T05:37:54.511Z][DEBUG][T1249][#7][Getsockopt] getsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 0x7f4deaa95db4
[2021-10-20T05:37:54.511Z][TRACE][T1249][#8][····Bind] Syscall { num = Bind, fd = 3, addr = 0x7f4deaa95dc0, addr_len = 16 }
[2021-10-20T05:37:54.511Z][TRACE][T1249][#9][··Listen] Syscall { num = Listen, fd = 3, backlog = 10 }
[2021-10-20T05:37:54.511Z][TRACE][T1249][#10][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e28, path = 0x7f4de9402939, argv = 0x7f4deaa95dd0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.511Z][DEBUG][T1249][#10][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8800"], envp: [], fdop: []
[2021-10-20T05:37:54.511Z][DEBUG][T1249][#10][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.511Z][DEBUG][T1249][#10][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.515Z][DEBUG][T1249][#10][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.515Z][DEBUG][T1249][#10][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.515Z][ INFO][T1249][#10][SpawnMusl] Process created: elf = /bin/client, pid = 1250
[2021-10-20T05:37:54.515Z][TRACE][T1249][#11][··Accept] Syscall { num = Accept, fd = 3, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.515Z][DEBUG][T1250][#0] Thread #1250 is executed as task #1250
[2021-10-20T05:37:54.515Z][TRACE][T1250][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.515Z][DEBUG][T1250][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.515Z][TRACE][T1250][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.515Z][DEBUG][T1250][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.515Z][TRACE][T1250][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.515Z][DEBUG][T1250][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.515Z][ WARN][T1250][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.516Z][TRACE][T1250][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.516Z][DEBUG][T1250][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.516Z][ WARN][T1250][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.516Z][TRACE][T1250][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.516Z][ INFO][T1250][#5][··Socket] open fd 496
[2021-10-20T05:37:54.516Z][TRACE][T1250][#6][·Connect] Syscall { num = Connect, fd = 4, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] Accept success: 497
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, 497
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.516Z][TRACE][T1249][#12][···Close] Syscall { num = Close, fd = 3 }
[2021-10-20T05:37:54.516Z][DEBUG][T1249][#12][···Close] close: fd: 3
[2021-10-20T05:37:54.516Z][TRACE][T1249][#13][···Write] Syscall { num = Write, fd = 4, buf = 0x7f4de9402953, size = 26 }
[2021-10-20T05:37:54.516Z][DEBUG][T1249][#13][···Write] write: fd: 4
[2021-10-20T05:37:54.516Z][TRACE][T1250][#7][····Read] Syscall { num = Read, fd = 4, buf = 0x7f4df1495de0, size = 100 }
[2021-10-20T05:37:54.516Z][TRACE][T1249][#14][····Read] Syscall { num = Read, fd = 4, buf = 0x7f4deaa95df0, size = 4 }
[2021-10-20T05:37:54.516Z][DEBUG][T1250][#7][····Read] read: fd: 4
[2021-10-20T05:37:54.516Z][DEBUG][T1249][#14][····Read] read: fd: 4
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.516Z][TRACE][T1250][#8][···Write] Syscall { num = Write, fd = 4, buf = 0x7f4defe01231, size = 4 }
[2021-10-20T05:37:54.516Z][DEBUG][T1250][#8][···Write] write: fd: 4
[2021-10-20T05:37:54.516Z][TRACE][T1250][#9][···Close] Syscall { num = Close, fd = 4 }
[2021-10-20T05:37:54.516Z][DEBUG][T1250][#9][···Close] close: fd: 4
[2021-10-20T05:37:54.516Z][ INFO][T1250][#9][···Close] cancel sent
[2021-10-20T05:37:54.516Z][TRACE][T1250][#10][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.516Z][DEBUG][T1250][#10][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.516Z][DEBUG][T1250][#10][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.516Z][DEBUG][T1249][#14][····Read] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] close fd 496
[2021-10-20T05:37:54.516Z][TRACE][T1249][#15][···Wait4] Syscall { num = Wait4, pid = 1250, _exit_status = 0x7f4deaa95e2c }
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.516Z][ERROR][T1249][#16] Error = EINVAL (#22, Invalid argument): Invalid system call number (16) [line = 674, file = src/entry/syscall.rs]
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.516Z][TRACE][T1249][#17][··Writev] Syscall { num = Writev, fd = 1, iov = 0x7f4deaa95a40, count = 2 }
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.516Z][DEBUG][T1249][#17][··Writev] writev: fd: 1
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring cancel complete, -114
func test_read_write - [OK]
[2021-10-20T05:37:54.516Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.516Z][TRACE][T1249][#18][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.516Z][ INFO][T1249][#18][··Socket] open fd 496
[2021-10-20T05:37:54.516Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.516Z][TRACE][T1249][#19][Setsockopt] Syscall { num = Setsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 4 }
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.516Z][DEBUG][T1249][#19][Setsockopt] setsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 4
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.516Z][ INFO][T1249][#19][Setsockopt] fd: 496, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.516Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.516Z][TRACE][T1249][#20][Getsockopt] Syscall { num = Getsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 0x7f4deaa95db4 }
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.516Z][DEBUG][T1249][#20][Getsockopt] getsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 0x7f4deaa95db4
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.516Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.516Z][TRACE][T1249][#21][····Bind] Syscall { num = Bind, fd = 3, addr = 0x7f4deaa95dc0, addr_len = 16 }
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.516Z][TRACE][T1249][#22][··Listen] Syscall { num = Listen, fd = 3, backlog = 10 }
[2021-10-20T05:37:54.516Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.516Z][TRACE][T1249][#23][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e2c, path = 0x7f4de9402939, argv = 0x7f4deaa95dd0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.517Z][DEBUG][T1249][#23][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8801"], envp: [], fdop: []
[2021-10-20T05:37:54.517Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.517Z][DEBUG][T1249][#23][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.517Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.517Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.517Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.517Z][DEBUG][T1249][#23][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.517Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.517Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.517Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.517Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.517Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.517Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.517Z][ INFO][T0][#0] close fd 26
[2021-10-20T05:37:54.517Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.521Z][DEBUG][T1249][#23][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.521Z][DEBUG][T1249][#23][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.521Z][ INFO][T1249][#23][SpawnMusl] Process created: elf = /bin/client, pid = 1251
[2021-10-20T05:37:54.521Z][TRACE][T1249][#24][··Accept] Syscall { num = Accept, fd = 3, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.521Z][DEBUG][T1251][#0] Thread #1251 is executed as task #1251
[2021-10-20T05:37:54.521Z][TRACE][T1251][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.521Z][DEBUG][T1251][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.521Z][TRACE][T1251][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.521Z][DEBUG][T1251][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.521Z][TRACE][T1251][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.521Z][DEBUG][T1251][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.521Z][ WARN][T1251][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.521Z][TRACE][T1251][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.521Z][DEBUG][T1251][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.521Z][ WARN][T1251][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.521Z][TRACE][T1251][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.521Z][ INFO][T1251][#5][··Socket] open fd 26
[2021-10-20T05:37:54.521Z][TRACE][T1251][#6][·Connect] Syscall { num = Connect, fd = 5, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.521Z][ INFO][T0][#0] Accept success: 499
[2021-10-20T05:37:54.521Z][ INFO][T0][#0] io-uring normal complete, 499
[2021-10-20T05:37:54.521Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.521Z][TRACE][T1249][#25][···Close] Syscall { num = Close, fd = 3 }
[2021-10-20T05:37:54.521Z][DEBUG][T1249][#25][···Close] close: fd: 3
[2021-10-20T05:37:54.521Z][TRACE][T1249][#26][···Write] Syscall { num = Write, fd = 5, buf = 0x7f4de9402953, size = 26 }
[2021-10-20T05:37:54.521Z][DEBUG][T1249][#26][···Write] write: fd: 5
[2021-10-20T05:37:54.521Z][TRACE][T1249][#27][····Read] Syscall { num = Read, fd = 5, buf = 0x7f4deaa95df0, size = 4 }
[2021-10-20T05:37:54.521Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.521Z][DEBUG][T1249][#27][····Read] read: fd: 5
[2021-10-20T05:37:54.521Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.521Z][TRACE][T1251][#7][····Read] Syscall { num = Read, fd = 5, buf = 0x7f4df1495de0, size = 100 }
[2021-10-20T05:37:54.522Z][DEBUG][T1251][#7][····Read] read: fd: 5
[2021-10-20T05:37:54.522Z][TRACE][T1251][#8][···Write] Syscall { num = Write, fd = 5, buf = 0x7f4defe01231, size = 4 }
[2021-10-20T05:37:54.522Z][DEBUG][T1251][#8][···Write] write: fd: 5
[2021-10-20T05:37:54.522Z][TRACE][T1251][#9][··Sendto] Syscall { num = Sendto, fd = 5, base = 0x7f4df1495de0, len = 26, flags = 0, addr = 0x0, addr_len = 0 }
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.522Z][TRACE][T1251][#10][···Close] Syscall { num = Close, fd = 5 }
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.522Z][DEBUG][T1251][#10][···Close] close: fd: 5
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.522Z][ INFO][T1251][#10][···Close] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] close fd 26
[2021-10-20T05:37:54.522Z][TRACE][T1251][#11][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.522Z][DEBUG][T1251][#11][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.522Z][DEBUG][T1251][#11][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.522Z][DEBUG][T1249][#27][····Read] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.522Z][TRACE][T1249][#28][Recvfrom] Syscall { num = Recvfrom, fd = 5, base = 0x7f4deaa95df0, len = 32, flags = 0, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.522Z][TRACE][T1249][#29][···Wait4] Syscall { num = Wait4, pid = 1251, _exit_status = 0x7f4deaa95e0c }
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.522Z][TRACE][T1249][#30][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.522Z][ INFO][T1249][#30][··Socket] open fd 26
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][TRACE][T1249][#31][Setsockopt] Syscall { num = Setsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 4 }
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][DEBUG][T1249][#31][Setsockopt] setsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 4
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.522Z][ INFO][T1249][#31][Setsockopt] fd: 26, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][TRACE][T1249][#32][Getsockopt] Syscall { num = Getsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 0x7f4deaa95db4 }
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.522Z][DEBUG][T1249][#32][Getsockopt] getsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 0x7f4deaa95db4
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][TRACE][T1249][#33][····Bind] Syscall { num = Bind, fd = 3, addr = 0x7f4deaa95dc0, addr_len = 16 }
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.522Z][TRACE][T1249][#34][··Listen] Syscall { num = Listen, fd = 3, backlog = 10 }
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][TRACE][T1249][#35][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e2c, path = 0x7f4de9402939, argv = 0x7f4deaa95dd0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.522Z][DEBUG][T1249][#35][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8802"], envp: [], fdop: []
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][DEBUG][T1249][#35][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][DEBUG][T1249][#35][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] close fd 496
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.526Z][DEBUG][T1249][#35][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.526Z][DEBUG][T1249][#35][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.527Z][ INFO][T1249][#35][SpawnMusl] Process created: elf = /bin/client, pid = 1252
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#0] Thread #1252 is executed as task #1252
[2021-10-20T05:37:54.527Z][TRACE][T1249][#36][··Accept] Syscall { num = Accept, fd = 3, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.527Z][TRACE][T1252][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.527Z][TRACE][T1252][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.527Z][TRACE][T1252][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.527Z][ WARN][T1252][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.527Z][TRACE][T1252][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.527Z][ WARN][T1252][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.527Z][TRACE][T1252][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.527Z][ INFO][T1252][#5][··Socket] open fd 496
[2021-10-20T05:37:54.527Z][TRACE][T1252][#6][·Connect] Syscall { num = Connect, fd = 6, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] Accept success: 500
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, 500
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.527Z][TRACE][T1249][#37][···Close] Syscall { num = Close, fd = 3 }
[2021-10-20T05:37:54.527Z][DEBUG][T1249][#37][···Close] close: fd: 3
[2021-10-20T05:37:54.527Z][TRACE][T1249][#38][···Write] Syscall { num = Write, fd = 6, buf = 0x7f4de9402953, size = 26 }
[2021-10-20T05:37:54.527Z][DEBUG][T1249][#38][···Write] write: fd: 6
[2021-10-20T05:37:54.527Z][TRACE][T1252][#7][····Read] Syscall { num = Read, fd = 6, buf = 0x7f4df1495de0, size = 100 }
[2021-10-20T05:37:54.527Z][TRACE][T1249][#39][····Read] Syscall { num = Read, fd = 6, buf = 0x7f4deaa95df0, size = 4 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#7][····Read] read: fd: 6
[2021-10-20T05:37:54.527Z][DEBUG][T1249][#39][····Read] read: fd: 6
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.527Z][TRACE][T1252][#8][···Write] Syscall { num = Write, fd = 6, buf = 0x7f4defe01231, size = 4 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#8][···Write] write: fd: 6
[2021-10-20T05:37:54.527Z][TRACE][T1252][#9][·Sendmsg] Syscall { num = Sendmsg, fd = 6, msg_ptr = 0x7f4df1495908, flags = 0 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#9][·Sendmsg] sendmsg: fd: 6, msg: 0x7f4df1495908, flags: 0x0
[2021-10-20T05:37:54.527Z][TRACE][T1252][#10][·Sendmsg] Syscall { num = Sendmsg, fd = 6, msg_ptr = 0x7f4df1495908, flags = 0 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#10][·Sendmsg] sendmsg: fd: 6, msg: 0x7f4df1495908, flags: 0x0
[2021-10-20T05:37:54.527Z][TRACE][T1252][#11][···Close] Syscall { num = Close, fd = 6 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#11][···Close] close: fd: 6
[2021-10-20T05:37:54.527Z][ INFO][T1252][#11][···Close] cancel sent
[2021-10-20T05:37:54.527Z][TRACE][T1252][#12][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#12][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#12][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.527Z][DEBUG][T1249][#39][····Read] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.527Z][TRACE][T1249][#40][·Recvmsg] Syscall { num = Recvmsg, fd = 6, msg_mut_ptr = 0x7f4deaa95d08, flags = 0 }
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.527Z][DEBUG][T1249][#40][·Recvmsg] recvmsg: fd: 6, msg: 0x7f4deaa95d08, flags: 0x0
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] close fd 496
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.527Z][TRACE][T1249][#41][·Recvmsg] Syscall { num = Recvmsg, fd = 6, msg_mut_ptr = 0x7f4deaa95d08, flags = 0 }
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.528Z][DEBUG][T1249][#41][·Recvmsg] recvmsg: fd: 6, msg: 0x7f4deaa95d08, flags: 0x0
[2021-10-20T05:37:54.528Z][TRACE][T1249][#42][···Wait4] Syscall { num = Wait4, pid = 1252, _exit_status = 0x7f4deaa95e0c }
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.528Z][TRACE][T1249][#43][Socketpair] Syscall { num = Socketpair, domain = 1, socket_type = 1, protocol = 0, sv = 0x7f4deaa95de0 }
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][DEBUG][T1249][#43][Socketpair] socketpair: (3, 7)
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.528Z][TRACE][T1249][#44][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95ddc, path = 0x7f4de9402939, argv = 0x7f4deaa95df0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][DEBUG][T1249][#44][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "NULL", "8803", "7"], envp: [], fdop: []
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][DEBUG][T1249][#44][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][DEBUG][T1249][#44][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] close fd 26
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.532Z][DEBUG][T1249][#44][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.532Z][DEBUG][T1249][#44][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.532Z][ INFO][T1249][#44][SpawnMusl] Process created: elf = /bin/client, pid = 1253
[2021-10-20T05:37:54.532Z][TRACE][T1249][#45][··Socket] Syscall { num = Socket, domain = 2, socket_type = 2, protocol = 0 }
[2021-10-20T05:37:54.532Z][ INFO][T1249][#45][··Socket] open fd 26
[2021-10-20T05:37:54.533Z][TRACE][T1249][#46][····Bind] Syscall { num = Bind, fd = 8, addr = 0x7f4deaa95d40, addr_len = 16 }
[2021-10-20T05:37:54.533Z][TRACE][T1249][#47][·Recvmsg] Syscall { num = Recvmsg, fd = 8, msg_mut_ptr = 0x7f4deaa958f8, flags = 0 }
[2021-10-20T05:37:54.533Z][DEBUG][T1249][#47][·Recvmsg] recvmsg: fd: 8, msg: 0x7f4deaa958f8, flags: 0x0
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#0] Thread #1253 is executed as task #1253
[2021-10-20T05:37:54.533Z][TRACE][T1253][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.533Z][TRACE][T1253][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.533Z][TRACE][T1253][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.533Z][ WARN][T1253][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.533Z][TRACE][T1253][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.533Z][ WARN][T1253][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.533Z][TRACE][T1253][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 2, protocol = 0 }
[2021-10-20T05:37:54.533Z][ INFO][T1253][#5][··Socket] open fd 502
[2021-10-20T05:37:54.533Z][TRACE][T1253][#6][·Sendmsg] Syscall { num = Sendmsg, fd = 8, msg_ptr = 0x7f4df14958e8, flags = 0 }
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#6][·Sendmsg] sendmsg: fd: 8, msg: 0x7f4df14958e8, flags: 0x0
[2021-10-20T05:37:54.533Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.533Z][TRACE][T1253][#7][····Read] Syscall { num = Read, fd = 7, buf = 0x7f4df1495dd0, size = 4 }
[2021-10-20T05:37:54.533Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#7][····Read] read: fd: 7
[2021-10-20T05:37:54.533Z][TRACE][T1249][#48][···Write] Syscall { num = Write, fd = 3, buf = 0x7f4de94029b0, size = 4 }
[2021-10-20T05:37:54.533Z][DEBUG][T1249][#48][···Write] write: fd: 3
[2021-10-20T05:37:54.533Z][TRACE][T1249][#49][···Wait4] Syscall { num = Wait4, pid = 1253, _exit_status = 0x7f4deaa95dbc }
[2021-10-20T05:37:54.533Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.533Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.533Z][TRACE][T1253][#8][···Close] Syscall { num = Close, fd = 0 }
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#8][···Close] close: fd: 0
[2021-10-20T05:37:54.533Z][TRACE][T1253][#9][ExitGroup] Syscall { num = ExitGroup, exit_status = 13 }
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#9][ExitGroup] exit_group: 13
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#9][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.533Z][ INFO][T1249][#49][···Wait4] cancel sent
[2021-10-20T05:37:54.533Z][ INFO][T0][#0] close fd 502
[2021-10-20T05:37:54.533Z][DEBUG][T1249][#49][···Wait4] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.533Z][TRACE][T1249][#50][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.533Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.533Z][ INFO][T1249][#50][··Socket] open fd 502
[2021-10-20T05:37:54.533Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.533Z][TRACE][T1249][#51][Setsockopt] Syscall { num = Setsockopt, fd = 9, level = 1, optname = 2, optval = 0x7f4deaa95ba0, optlen = 4 }
[2021-10-20T05:37:54.533Z][DEBUG][T1249][#51][Setsockopt] setsockopt: fd: 9, level: 1, optname: 2, optval: 0x7f4deaa95ba0, optlen: 4
[2021-10-20T05:37:54.533Z][ INFO][T1249][#51][Setsockopt] fd: 502, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.533Z][TRACE][T1249][#52][Getsockopt] Syscall { num = Getsockopt, fd = 9, level = 1, optname = 2, optval = 0x7f4deaa95ba0, optlen = 0x7f4deaa95ba4 }
[2021-10-20T05:37:54.533Z][DEBUG][T1249][#52][Getsockopt] getsockopt: fd: 9, level: 1, optname: 2, optval: 0x7f4deaa95ba0, optlen: 0x7f4deaa95ba4
[2021-10-20T05:37:54.533Z][TRACE][T1249][#53][····Bind] Syscall { num = Bind, fd = 9, addr = 0x7f4deaa95bb0, addr_len = 16 }
[2021-10-20T05:37:54.533Z][TRACE][T1249][#54][··Listen] Syscall { num = Listen, fd = 9, backlog = 10 }
[2021-10-20T05:37:54.533Z][TRACE][T1249][#55][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95c14, path = 0x7f4de9402939, argv = 0x7f4deaa95bc0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.533Z][DEBUG][T1249][#55][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8805"], envp: [], fdop: []
[2021-10-20T05:37:54.533Z][DEBUG][T1249][#55][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.533Z][DEBUG][T1249][#55][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.537Z][DEBUG][T1249][#55][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.537Z][DEBUG][T1249][#55][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.538Z][ INFO][T1249][#55][SpawnMusl] Process created: elf = /bin/client, pid = 1254
[2021-10-20T05:37:54.538Z][DEBUG][T1254][#0] Thread #1254 is executed as task #1254
[2021-10-20T05:37:54.538Z][TRACE][T1249][#56][··Accept] Syscall { num = Accept, fd = 9, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.538Z][TRACE][T1254][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.538Z][DEBUG][T1254][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.538Z][TRACE][T1254][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.538Z][DEBUG][T1254][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.538Z][TRACE][T1254][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.538Z][DEBUG][T1254][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.538Z][ WARN][T1254][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.538Z][TRACE][T1254][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.538Z][DEBUG][T1254][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.538Z][ WARN][T1254][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.538Z][TRACE][T1254][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.538Z][ INFO][T1254][#5][··Socket] open fd 503
[2021-10-20T05:37:54.538Z][TRACE][T1254][#6][·Connect] Syscall { num = Connect, fd = 10, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] Accept success: 504
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] io-uring normal complete, 504
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.538Z][TRACE][T1249][#57][···Close] Syscall { num = Close, fd = 9 }
[2021-10-20T05:37:54.538Z][DEBUG][T1249][#57][···Close] close: fd: 9
[2021-10-20T05:37:54.538Z][TRACE][T1249][#58][····Poll] Syscall { num = Poll, fds = 0x7f4deaa95c18, nfds = 1, timeout = -1 }
[2021-10-20T05:37:54.538Z][TRACE][T1254][#7][··Sendto] Syscall { num = Sendto, fd = 10, base = 0x7f4defe01235, len = 13, flags = 0, addr = 0x0, addr_len = 0 }
[2021-10-20T05:37:54.538Z][DEBUG][T1249][#58][····Poll] poll: poll_fds: [PollFd { fd: Some(10), events: IN, revents: Cell { value: (empty) } }], timeout: None
[2021-10-20T05:37:54.538Z][TRACE][T1254][#8][···Close] Syscall { num = Close, fd = 10 }
[2021-10-20T05:37:54.538Z][DEBUG][T1254][#8][···Close] close: fd: 10
[2021-10-20T05:37:54.538Z][ INFO][T1254][#8][···Close] cancel sent
[2021-10-20T05:37:54.538Z][TRACE][T1254][#9][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.538Z][DEBUG][T1254][#9][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.538Z][DEBUG][T1254][#9][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.538Z][DEBUG][T1249][#58][····Poll] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] close fd 503
[2021-10-20T05:37:54.538Z][TRACE][T1249][#59][····Read] Syscall { num = Read, fd = 10, buf = 0x7f4deaa95c20, size = 512 }
[2021-10-20T05:37:54.538Z][DEBUG][T1249][#59][····Read] read: fd: 10
[2021-10-20T05:37:54.538Z][TRACE][T1249][#60][···Wait4] Syscall { num = Wait4, pid = 1254, _exit_status = 0x7f4deaa95c20 }
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.539Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.539Z][TRACE][T1249][#61][···Close] Syscall { num = Close, fd = 10 }
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#61][···Close] close: fd: 10
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.539Z][ INFO][T1249][#61][···Close] close fd 504
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.539Z][TRACE][T1249][#62][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][ INFO][T1249][#62][··Socket] open fd 503
[2021-10-20T05:37:54.539Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.539Z][TRACE][T1249][#63][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.539Z][ INFO][T1249][#63][··Socket] open fd 504
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][TRACE][T1249][#64][····Poll] Syscall { num = Poll, fds = 0x7f4deaa95e10, nfds = 2, timeout = 0 }
[2021-10-20T05:37:54.539Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#64][····Poll] poll: poll_fds: [PollFd { fd: Some(9), events: IN, revents: Cell { value: (empty) } }, PollFd { fd: Some(10), events: IN, revents: Cell { value: (empty) } }], timeout: Some(0ns)
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][TRACE][T1249][#65][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.539Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.539Z][ INFO][T1249][#65][··Socket] open fd 505
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.539Z][TRACE][T1249][#66][Setsockopt] Syscall { num = Setsockopt, fd = 11, level = 1, optname = 2, optval = 0x7f4deaa95e14, optlen = 4 }
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#66][Setsockopt] setsockopt: fd: 11, level: 1, optname: 2, optval: 0x7f4deaa95e14, optlen: 4
[2021-10-20T05:37:54.539Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.539Z][ INFO][T1249][#66][Setsockopt] fd: 505, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][TRACE][T1249][#67][Getsockopt] Syscall { num = Getsockopt, fd = 11, level = 1, optname = 2, optval = 0x7f4deaa95e18, optlen = 0x7f4deaa95e1c }
[2021-10-20T05:37:54.539Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#67][Getsockopt] getsockopt: fd: 11, level: 1, optname: 2, optval: 0x7f4deaa95e18, optlen: 0x7f4deaa95e1c
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][TRACE][T1249][#68][Getsockopt] Syscall { num = Getsockopt, fd = 11, level = 1, optname = 39, optval = 0x7f4deaa95e18, optlen = 0x7f4deaa95e1c }
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#68][Getsockopt] getsockopt: fd: 11, level: 1, optname: 39, optval: 0x7f4deaa95e18, optlen: 0x7f4deaa95e1c
[2021-10-20T05:37:54.539Z][TRACE][T1249][#69][···Close] Syscall { num = Close, fd = 11 }
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#69][···Close] close: fd: 11
[2021-10-20T05:37:54.539Z][ INFO][T1249][#69][···Close] close fd 505
[2021-10-20T05:37:54.539Z][TRACE][T1249][#70][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.539Z][ INFO][T1249][#70][··Socket] open fd 505
[2021-10-20T05:37:54.539Z][TRACE][T1249][#71][Setsockopt] Syscall { num = Setsockopt, fd = 11, level = 1, optname = 2, optval = 0x7f4deaa95da0, optlen = 4 }
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#71][Setsockopt] setsockopt: fd: 11, level: 1, optname: 2, optval: 0x7f4deaa95da0, optlen: 4
[2021-10-20T05:37:54.539Z][ INFO][T1249][#71][Setsockopt] fd: 505, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.539Z][TRACE][T1249][#72][Getsockopt] Syscall { num = Getsockopt, fd = 11, level = 1, optname = 2, optval = 0x7f4deaa95da0, optlen = 0x7f4deaa95da4 }
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#72][Getsockopt] getsockopt: fd: 11, level: 1, optname: 2, optval: 0x7f4deaa95da0, optlen: 0x7f4deaa95da4
[2021-10-20T05:37:54.539Z][TRACE][T1249][#73][····Bind] Syscall { num = Bind, fd = 11, addr = 0x7f4deaa95db0, addr_len = 16 }
[2021-10-20T05:37:54.539Z][TRACE][T1249][#74][··Listen] Syscall { num = Listen, fd = 11, backlog = 10 }
[2021-10-20T05:37:54.539Z][TRACE][T1249][#75][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e14, path = 0x7f4de9402939, argv = 0x7f4deaa95dc0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#75][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8806"], envp: [], fdop: []
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#75][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#75][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.543Z][DEBUG][T1249][#75][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.543Z][DEBUG][T1249][#75][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.544Z][ INFO][T1249][#75][SpawnMusl] Process created: elf = /bin/client, pid = 1255
[2021-10-20T05:37:54.544Z][TRACE][T1249][#76][··Accept] Syscall { num = Accept, fd = 11, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.544Z][DEBUG][T1255][#0] Thread #1255 is executed as task #1255
[2021-10-20T05:37:54.544Z][TRACE][T1255][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.544Z][DEBUG][T1255][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.544Z][TRACE][T1255][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.544Z][DEBUG][T1255][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.544Z][TRACE][T1255][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.544Z][DEBUG][T1255][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.544Z][ WARN][T1255][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.544Z][TRACE][T1255][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.544Z][DEBUG][T1255][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.544Z][ WARN][T1255][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.544Z][TRACE][T1255][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.544Z][ INFO][T1255][#5][··Socket] open fd 506
[2021-10-20T05:37:54.544Z][TRACE][T1255][#6][·Connect] Syscall { num = Connect, fd = 12, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] Accept success: 507
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, 507
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.544Z][TRACE][T1249][#77][···Close] Syscall { num = Close, fd = 11 }
[2021-10-20T05:37:54.544Z][DEBUG][T1249][#77][···Close] close: fd: 11
[2021-10-20T05:37:54.544Z][TRACE][T1249][#78][Getsockname] Syscall { num = Getsockname, fd = 12, addr = 0x7f4deaa95e20, addr_len = 0x7f4deaa95e18 }
[2021-10-20T05:37:54.544Z][TRACE][T1249][#79][Getpeername] Syscall { num = Getpeername, fd = 12, addr = 0x7f4deaa95de0, addr_len = 0x7f4deaa95dd8 }
[2021-10-20T05:37:54.544Z][TRACE][T1249][#80][Getsockopt] Syscall { num = Getsockopt, fd = 12, level = 1, optname = 28, optval = 0x7f4deaa95df0, optlen = 0x7f4deaa95ddc }
[2021-10-20T05:37:54.544Z][DEBUG][T1249][#80][Getsockopt] getsockopt: fd: 12, level: 1, optname: 28, optval: 0x7f4deaa95df0, optlen: 0x7f4deaa95ddc
[2021-10-20T05:37:54.544Z][TRACE][T1249][#81][···Wait4] Syscall { num = Wait4, pid = 1255, _exit_status = 0x7f4deaa95e1c }
[2021-10-20T05:37:54.544Z][TRACE][T1255][#7][··Sendto] Syscall { num = Sendto, fd = 12, base = 0x7f4defe01235, len = 13, flags = 0, addr = 0x0, addr_len = 0 }
[2021-10-20T05:37:54.544Z][TRACE][T1255][#8][···Close] Syscall { num = Close, fd = 12 }
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.544Z][DEBUG][T1255][#8][···Close] close: fd: 12
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.544Z][ INFO][T1255][#8][···Close] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] close fd 506
[2021-10-20T05:37:54.544Z][TRACE][T1255][#9][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.544Z][DEBUG][T1255][#9][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.544Z][DEBUG][T1255][#9][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.544Z][DEBUG][T1249][#81][···Wait4] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.544Z][TRACE][T1249][#82][···Close] Syscall { num = Close, fd = 12 }
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.544Z][DEBUG][T1249][#82][···Close] close: fd: 12
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.544Z][ INFO][T1249][#82][···Close] close fd 507
[2021-10-20T05:37:54.544Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.544Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.544Z][TRACE][T1249][#83][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO][T1249][#83][··Socket] open fd 506
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][TRACE][T1249][#84][Getsockname] Syscall { num = Getsockname, fd = 11, addr = 0x7f4deaa95e00, addr_len = 0x7f4deaa95df4 }
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.545Z][TRACE][T1249][#85][Getpeername] Syscall { num = Getpeername, fd = 11, addr = 0x7f4deaa95e10, addr_len = 0x7f4deaa95df8 }
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ERROR][T1249][#85][Getpeername] Error = ENOTCONN (#107, Unknown error): the socket is not connected [line = 259, file = crates/host-socket/src/stream/mod.rs]
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.545Z][TRACE][T1249][#86][Getsockopt] Syscall { num = Getsockopt, fd = 11, level = 1, optname = 28, optval = 0x7f4deaa95e20, optlen = 0x7f4deaa95dfc }
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#86][Getsockopt] getsockopt: fd: 11, level: 1, optname: 28, optval: 0x7f4deaa95e20, optlen: 0x7f4deaa95dfc
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.545Z][ERROR][T1249][#86][Getsockopt] Error = ENOTCONN (#107, Unknown error): the socket is not connected [line = 259, file = crates/host-socket/src/stream/mod.rs]
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.545Z][TRACE][T1249][#87][···Close] Syscall { num = Close, fd = 11 }
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#87][···Close] close: fd: 11
[2021-10-20T05:37:54.545Z][ INFO][T1249][#87][···Close] close fd 506
[2021-10-20T05:37:54.545Z][TRACE][T1249][#88][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.545Z][ INFO][T1249][#88][··Socket] open fd 506
[2021-10-20T05:37:54.545Z][TRACE][T1249][#89][Shutdown] Syscall { num = Shutdown, fd = 11, how = 2 }
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#89][Shutdown] shutdown: fd: 11, how: 2
[2021-10-20T05:37:54.545Z][ERROR][T1249][#89][Shutdown] Error = ENOTCONN (#107, Unknown error): the socket is not connected [line = 303, file = crates/host-socket/src/stream/mod.rs]
[2021-10-20T05:37:54.545Z][TRACE][T1249][#90][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.545Z][ INFO][T1249][#90][··Socket] open fd 507
[2021-10-20T05:37:54.545Z][TRACE][T1249][#91][Setsockopt] Syscall { num = Setsockopt, fd = 12, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 4 }
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#91][Setsockopt] setsockopt: fd: 12, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 4
[2021-10-20T05:37:54.545Z][ INFO][T1249][#91][Setsockopt] fd: 507, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.545Z][TRACE][T1249][#92][Getsockopt] Syscall { num = Getsockopt, fd = 12, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 0x7f4deaa95db4 }
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#92][Getsockopt] getsockopt: fd: 12, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 0x7f4deaa95db4
[2021-10-20T05:37:54.545Z][TRACE][T1249][#93][····Bind] Syscall { num = Bind, fd = 12, addr = 0x7f4deaa95dc0, addr_len = 16 }
[2021-10-20T05:37:54.545Z][ERROR][T1249][#93][····Bind] Error = EADDRINUSE (#98, Unknown error): libc error [line = 13, file = crates/host-socket/src/common/operation.rs]
[2021-10-20T05:37:54.545Z][TRACE][T1249][#94][···Close] Syscall { num = Close, fd = 12 }
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#94][···Close] close: fd: 12
[2021-10-20T05:37:54.545Z][ INFO][T1249][#94][···Close] close fd 507
[2021-10-20T05:37:54.545Z][TRACE][T1249][#95][Shutdown] Syscall { num = Shutdown, fd = -1, how = 2 }
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#95][Shutdown] shutdown: fd: -1, how: 2
[2021-10-20T05:37:54.545Z][ERROR][T1249][#95][Shutdown] Error = EBADF (#9, Bad file number): Invalid file descriptor [line = 100, file = src/fs/file_table.rs]
[2021-10-20T05:37:54.545Z][TRACE][T1249][#96][··Writev] Syscall { num = Writev, fd = 1, iov = 0x7f4deaa95dd0, count = 2 }
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#96][··Writev] writev: fd: 1
func test_send_recv - [OK]
func test_sendmsg_recvmsg - [OK]
func test_sendmsg_recvmsg_connectionless - [OK]
func test_poll - [OK]
func test_poll_events_unchanged - [OK]
func test_sockopt - [OK]
[socket with bind] address: 127.0.0.1
[socket with bind] port: 8806
Peer address: 127.0.0.1
Peer port: 34928
func test_getname - [OK]
[socket without bind] address: 0.0.0.0
[socket without bind] port: 0
func test_getname_without_bind - [OK]
ERROR:bind socket failed in func connect_with_child at line 49 of file main.c
ERROR:failed to shutdown in func test_shutdown at line 504 of file main.c
func test_shutdown - [ERR]
[2021-10-20T05:37:54.545Z][TRACE][T1249][#97][ExitGroup] Syscall { num = ExitGroup, exit_status = -1 }
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#97][ExitGroup] exit_group: -1
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#97][ExitGroup] futex_wake_bitset addr: 0x7f4de9c95364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.545Z][ INFO] cancel sent
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO] close fd 497
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] close fd 496
[2021-10-20T05:37:54.545Z][ INFO] close fd 499
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.545Z][ INFO] close fd 500
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO] cancel sent
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] close fd 502
[2021-10-20T05:37:54.545Z][ INFO] cancel sent
[2021-10-20T05:37:54.545Z][ INFO] close fd 503
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ INFO] close fd 504
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO] close fd 506
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] close fd 505
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] close fd 498
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] close fd 501
[2021-10-20T05:37:54.546Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.546Z][ INFO][T0][#0] io-uring cancel complete, -2
[2021-10-20T05:37:54.546Z][ INFO][T0][#0] close fd 26
[2021-10-20T05:37:54.546Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.546Z][ INFO][T0][#0] io-uring cancel complete, 0
Error: 65280
../test_common.mk:74: recipe for target 'test' failed
make[4]: *** [test] Error 1
FAILED
server is running.
/root/docker/ngo/test
server stopped.
[2021-10-20T05:37:54.697Z][ WARN] HostFS: sync is unimplemented
[2021-10-20T05:37:54.697Z][ WARN] HostFS: sync is unimplemented
Once upgrading to Ubuntu 20.04 base, the Occlum LTP test may panic in the case statx03.
Steps to reproduce the behavior:
occlum run /opt/ltp/run-ltp.sh -f syscalls -s statx03
No panic.
If applicable, add logs to help explain your problem.
NGO/Occlum doesn't support syscall statx (332), in glibc > 2.28, it eventually will call syscall fstatat.
The panic happens when passing a dangling ponter as "pathname".
Details could refer to the LTP source code.
https://github.com/linux-test-project/ltp/blob/20210927/testcases/kernel/syscalls/statx/statx03.c#L58
Not obligatory, but suggest a fix/reason for the bug.
Tracking the areas of improvement for NGO.
write
and read
)futex
and sched_yield
) @tatetianmmap
and munmap
) @jessehuigettimeofday
and clock_gettime
) @shuochengis_inside_enclave
In current NGO, many sgx examples of sub crates don't work, e.g., io-uring/examples/sgx
, crates/io-uring-callback/examples/sgx
.
The reason why we create these sgx examples is to test out code both in sgx env and host env. Since these crates are compatible with SGX and host.
However, these examples lack maintenance, so they can't be compiled now.
The compile error mainly because of:
io-uring/ocalls
is lib
type before, hence we can add it directly in untrusted app's cargo.toml. However, io-uring/ocalls
is changed to staticlib
now, we can not add it in cargo.toml, and we can not link it in rust code (in build.rs), since the staticlib
of rust crate will conflict with untrusted app's rust codeThe ioctl unit test would crash the system if the system does not support DCAP.
Steps to reproduce the behavior:
TESTS=ioctl make test
[get_platform_quote_cert_data ../qe_logic.cpp:347] Error returned from the p_sgx_get_quote_config API. 0xe019
thread '' panicked at 'assertion failed: (left == right)
left: SGX_QL_SUCCESS
,
right: SGX_QL_NETWORK_ERROR
: fail to launch QE', src/util/sgx/dcap/quote_generator.rs:22:13
stack backtrace:
0: rust_begin_unwind
at /local_folder/ngo/deps/rust-sgx-sdk/sgx_tstd/src/panicking.rs:450
1: core::panicking::panic_fmt
at library/core/src/panicking.rs:106
2: core::panicking::assert_failed_inner
at library/core/src/panicking.rs:0
3: core::panicking::assert_failed
at /rustc/ff0e14829e1806ca0d4226595f7fdf3e8658758f/library/core/src/panicking.rs:144
4: occlum_libos_core_rs::util::sgx::dcap::quote_generator::QuoteGenerator::new
at src/util/sgx/dcap/quote_generator.rs:22
5: <occlum_libos_core_rs::fs::dev_fs::dev_sgx::SGX_DCAP_QUOTE_GENERATOR as core::ops::deref::Deref>::deref::__static_ref_initialize
at src/fs/dev_fs/dev_sgx/mod.rs:250
6: core::ops::function::FnOnce::call_once
at /rustc/ff0e14829e1806ca0d4226595f7fdf3e8658758f/library/core/src/ops/function.rs:227
7: spin::once::Once::call_once
at /root/.cargo/registry/src/github.com-1ecc6299db9ec823/spin-0.5.2/src/once.rs:110
8: lazy_static::lazy::Lazy::get
at /root/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/core_lazy.rs:21
9: <occlum_libos_core_rs::fs::dev_fs::dev_sgx::SGX_DCAP_QUOTE_GENERATOR as core::ops::deref::Deref>::deref::__stability
at /root/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs:142
10: <occlum_libos_core_rs::fs::dev_fs::dev_sgx::SGX_DCAP_QUOTE_GENERATOR as core::ops::deref::Deref>::deref
at /root/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs:144
11: occlum_libos_core_rs::fs::dev_fs::dev_sgx::DevSgx::ioctl
at src/fs/dev_fs/dev_sgx/mod.rs:167
12: <occlum_libos_core_rs::fs::dev_fs::dev_sgx::DevSgx as rcore_fs::vfs::INode>::io_control
at src/fs/dev_fs/dev_sgx/mod.rs:61
13: <rcore_fs_mountfs::MNode as rcore_fs::vfs::INode>::io_control
at /local_folder/ngo/deps/sefs/rcore-fs-mountfs/src/lib.rs:338
14: <rcore_fs_mountfs::MNode as rcore_fs::vfs::INode>::io_control
at /local_folder/ngo/deps/sefs/rcore-fs-mountfs/src/lib.rs:338
15: occlum_libos_core_rs::fs::inode_file::INodeFile::ioctl
at src/fs/inode_file.rs:208
16: occlum_libos_core_rs::fs::file_handle::AsyncInode::ioctl
at src/fs/file_handle.rs:215
17: occlum_libos_core_rs::fs::file_handle::FileHandle::ioctl
at src/fs/file_handle.rs:150
18: occlum_libos_core_rs::fs::file_ops::ioctl::do_ioctl
at src/fs/file_ops/ioctl/mod.rs:182
19: occlum_libos_core_rs::fs::syscalls::do_ioctl::{{closure}}
at src/fs/syscalls.rs:562
20: <core::future::from_generator::GenFuture as core::future::future::Future>::poll
at /rustc/ff0e14829e1806ca0d4226595f7fdf3e8658758f/library/core/src/future/mod.rs:80
21: occlum_libos_core_rs::entry::syscall::dispatch_syscall::{{closure}}
at src/entry/syscall.rs:798
22: <core::future::from_generator::GenFuture as core::future::future::Future>::poll
at /rustc/ff0e14829e1806ca0d4226595f7fdf3e8658758f/library/core/src/future/mod.rs:80
23: occlum_libos_core_rs::entry::syscall::handle_syscall::{{closure}}
at src/entry/syscall.rs:92
24: <core::future::from_generator::GenFuture as core::future::future::Future>::poll
at /rustc/ff0e14829e1806ca0d4226595f7fdf3e8658758f/library/core/src/future/mod.rs:80
25: occlum_libos_core_rs::entry::thread::handle_fault::{{closure}}
at src/entry/thread.rs:52
26: <core::future::from_generator::GenFuture as core::future::future::Future>::poll
at /rustc/ff0e14829e1806ca0d4226595f7fdf3e8658758f/library/core/src/future/mod.rs:80
27: occlum_libos_core_rs::entry::thread::__main_loop::{{closure}}
at src/entry/thread.rs:42
28: <core::future::from_generator::GenFuture as core::future::future::Future>::poll
at /rustc/ff0e14829e1806ca0d4226595f7fdf3e8658758f/library/core/src/future/mod.rs:80
29: <occlum_libos_core_rs::entry::thread::mark_send::SendFuture as core::future::future::Future>::poll
at src/entry/thread.rs:113
30: <core::pin::Pin
as core::future::future::Future>::poll
at /rustc/ff0e14829e1806ca0d4226595f7fdf3e8658758f/library/core/src/future/future.rs:119
31: async_rt::task::SpawnOptions::spawn::{{closure}}
at crates/async-rt/src/task/mod.rs:95
32: <core::future::from_generator::GenFuture as core::future::future::Future>::poll
at /rustc/ff0e14829e1806ca0d4226595f7fdf3e8658758f/library/core/src/future/mod.rs:80
33: async_rt::executor::Executor::execute_task
at crates/async-rt/src/executor.rs:107
34: async_rt::executor::Executor::run_tasks
at crates/async-rt/src/executor.rs:82
35: async_rt::executor::run_tasks
at crates/async-rt/src/executor.rs:14
36: occlum_ecall_run_vcpu
at src/entry/enclave.rs:182
37: sgx_occlum_ecall_run_vcpu
at /local_folder/ngo/build/internal/src/libos/src/Enclave_t.c:1317
38: do_ecall
39: enter_enclave
40:
41:
note: Some details are omitted, call backtrace::enable_backtrace() with 'PrintFormat::Full' for a verbose backtrace.
fatal runtime error: failed to initiate panic, error 5
To test NGO network performance, run iperf server-side on host Linux, and run client inside NGO. And the client-side never exits. From the log, I can see the client hanging at a Recvfrom
syscall.
With the same usage, running in Occlum can pass.
Steps to reproduce the behavior:
The client-side should exit when the test ends.
Server-side (strace):
After the test ended, the server close the socket (fd = 4) and exit the thread. However, the client-side didn't respond to the socket close
and kept waiting.
[pid 499387] 06:58:15.887235 <... recvfrom resumed> "", 131072, 0, NULL, NULL) = 0
[pid 499387] 06:58:15.887596 setitimer(ITIMER_REAL, {it_interval={tv_sec=0, tv_usec=0}, it_value={tv_sec=0, tv_usec=0}}, NULL) = 0
[pid 499387] 06:58:15.888252 futex(0x7fffe80012c0, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {tv_sec=1653548296, tv_nsec=888089788}, 0xffffffff <unfinished ...>
[pid 499290] 06:58:15.892903 <... clock_nanosleep resumed> NULL) = 0
[pid 499290] 06:58:15.893203 futex(0x7fffe80012c0, FUTEX_WAKE_PRIVATE, 1) = 1
[pid 499387] 06:58:15.893509 <... futex resumed> ) = 0
[pid 499290] 06:58:15.893694 write(1, "[ ID] Interval Transfer "..., 93[ ID] Interval Transfer Bandwidth
[ 1] 0.00-3.13 sec 305 MBytes 816 Mbits/sec
<unfinished ...>
[pid 499387] 06:58:15.893737 futex(0x7fffe80012c8, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
[pid 499290] 06:58:15.893747 <... write resumed> ) = 93
[pid 499387] 06:58:15.893755 <... futex resumed> ) = 0
[pid 499387] 06:58:15.893773 futex(0x7fffe80012c4, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {tv_sec=1653548296, tv_nsec=893715811}, 0xffffffff <unfinished ...>
[pid 499290] 06:58:15.893786 futex(0x7fffe80012c4, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
[pid 499387] 06:58:15.893795 <... futex resumed> ) = -1 EAGAIN (Resource temporarily unavailable)
[pid 499290] 06:58:15.893805 <... futex resumed> ) = 0
[pid 499387] 06:58:15.893813 futex(0x7fffe80012c8, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
[pid 499290] 06:58:15.893823 futex(0x555555591b2c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {tv_sec=1653548296, tv_nsec=893817602}, 0xffffffff <unfinished ...>
[pid 499387] 06:58:15.893832 <... futex resumed> ) = 0
[pid 499387] 06:58:15.893851 close(4) = 0
Client-side:
When the transmission ended, the client-side shut down write and looked like trying to receive a control message by Recvfrom
and the second Recvfrom
never returns.
�[0m[2022-05-26T06:58:13.758Z][TRACE][C:4][T4][#4907][Setitimer] Syscall { num = Setitimer }�[0m
�[0m[2022-05-26T06:58:13.758Z][TRACE][C:4][T4][#4907][Setitimer] ret = 0xffffffffffffffda�[0m
�[31m[2022-05-26T06:58:13.759Z][ERROR][C:4][T4][#4907][Setitimer] Error = ENOSYS (#38, Function not implemented): Unimplemented or unknown syscall [line = 854, file = src/entry/syscall.rs]�[0m
�[0m[2022-05-26T06:58:13.759Z][TRACE][C:4][T4][#4908][Shutdown] Syscall { num = Shutdown, fd = 3, how = 1 }�[0m
�[0m[2022-05-26T06:58:13.759Z][DEBUG][C:4][T4][#4908][Shutdown] shutdown: fd: 3, how: 1�[0m
�[0m[2022-05-26T06:58:13.759Z][TRACE][C:4][T4][#4908][Shutdown] ret = 0x0�[0m
�[0m[2022-05-26T06:58:13.759Z][TRACE][C:4][T4][#4909][ClockGettime] Syscall { num = ClockGettime, clockid = 0, ts_u = 0x7fff2ca94cf0 }�[0m
�[0m[2022-05-26T06:58:13.759Z][TRACE][C:4][T4][#4909][ClockGettime] ret = 0x0�[0m
�[0m[2022-05-26T06:58:13.759Z][TRACE][C:4][T4][#4910][Setsockopt] Syscall { num = Setsockopt, fd = 3, level = 1, optname = 20, optval = 0x7fff2ca94cf0, optlen = 16 }�[0m
�[0m[2022-05-26T06:58:13.759Z][DEBUG][C:4][T4][#4910][Setsockopt] setsockopt: fd: 3, level: 1, optname: 20, optval: 0x7fff2ca94cf0, optlen: 16�[0m
�[0m[2022-05-26T06:58:13.759Z][TRACE][C:4][T4][#4910][Setsockopt] ret = 0x0�[0m
�[0m[2022-05-26T06:58:13.759Z][TRACE][C:4][T4][#4911][Recvfrom] Syscall { num = Recvfrom, fd = 3, base = 0x7fff2c252010, len = 131072, flags = 0, addr = 0x0, addr_len = 0x0 }�[0m
�[0m[2022-05-26T06:58:13.759Z][TRACE][C:4][T4][#4911][Recvfrom] ret = 0x1c�[0m
�[0m[2022-05-26T06:58:13.759Z][TRACE][C:4][T4][#4912][Recvfrom] Syscall { num = Recvfrom, fd = 3, base = 0x7fff2c252010, len = 131072, flags = 0, addr = 0x0, addr_len = 0x0 }�[0m
�[0m[2022-05-26T06:58:13.765Z][DEBUG][C:0] Timer Wheel: will sleep 10s�[0m
�[0m[2022-05-26T06:58:13.765Z][TRACE][C:3][T3][#74][ClockNanosleep] ret = 0x0�[0m
�[0m[2022-05-26T06:58:13.765Z][TRACE][C:3][T3][#75][ClockNanosleep] Syscall { num = ClockNanosleep, clockid = 1, flags = 0, request = 0x7fff2c693e00, remain = 0x0 }�[0m
�[0m[2022-05-26T06:58:13.765Z][DEBUG][C:3][T3][#75][ClockNanosleep] Timer Wheel: try waking�[0m
�[0m[2022-05-26T06:58:13.765Z][DEBUG][C:0] Timer Wheel: woken up�[0m
�[0m[2022-05-26T06:58:13.782Z][DEBUG][C:0] Timer Wheel: will sleep 10s�[0m
�[0m[2022-05-26T06:58:13.782Z][TRACE][C:3][T3][#75][ClockNanosleep] ret = 0x0�[0m
�[0m[2022-05-26T06:58:13.782Z][TRACE][C:3][T3][#76][ClockNanosleep] Syscall { num = ClockNanosleep, clockid = 1, flags = 0, request = 0x7fff2c693e00, remain = 0x0 }�[0m
�[0m[2022-05-26T06:58:13.782Z][DEBUG][C:3][T3][#76][ClockNanosleep] Timer Wheel: try waking�[0m
�[0m[2022-05-26T06:58:13.783Z][DEBUG][C:0] Timer Wheel: woken up�[0m
�[0m[2022-05-26T06:58:13.799Z][DEBUG][C:0] Timer Wheel: will sleep 10s�[0m
Compared with the client log running in Occlum, the second Recvfrom
return when the server closes the socket.
Server-side:
[pid 498825] 06:22:58.381262 futex(0x7fffe80012c0, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
[pid 498857] 06:22:58.381561 <... futex resumed> ) = 0
[pid 498825] 06:22:58.381605 <... futex resumed> ) = 1
[pid 498857] 06:22:58.381868 futex(0x7fffe80012c8, FUTEX_WAKE_PRIVATE, 1 <unfinished ...>
[pid 498825] 06:22:58.381927 write(1, "[ ID] Interval Transfer "..., 93 <unfinished ...>
[pid 498857] 06:22:58.382026 <... futex resumed> ) = 0
[ ID] Interval Transfer Bandwidth
[ 1] 0.00-1.00 sec 830 MBytes 6.93 Gbits/sec
[pid 498825] 06:22:58.382107 <... write resumed> ) = 93
[pid 498825] 06:22:58.382188 futex(0x7fffe80012c4, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 498825] 06:22:58.382264 futex(0x555555591b2c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {tv_sec=1653546179, tv_nsec=382243969}, 0xffffffff <unfinished ...>
[pid 498857] 06:22:58.382298 futex(0x7fffe80012c8, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 498857] 06:22:58.382556 close(4) = 0
[pid 498857] 06:22:58.383015 munmap(0x7ffff5f53000, 2641920) = 0
[pid 498857] 06:22:58.383613 futex(0x555555591be8, FUTEX_WAKE_PRIVATE, 1) = 1
[pid 498857] 06:22:58.383716 munmap(0x7ffff69fa000, 135168 <unfinished ...>
[pid 498824] 06:22:58.384010 <... futex resumed> ) = 0
Client-side:
[0m[2022-05-26T06:22:58.371Z][TRACE][T4][#13323][Setitimer] Retval = 0xffffffffffffffda�[0m
�[0m[2022-05-26T06:22:58.371Z][TRACE][T4][#13324][Shutdown] Syscall { num = Shutdown, fd = 3, how = 1 }�[0m
�[0m[2022-05-26T06:22:58.371Z][DEBUG][T4][#13324][Shutdown] shutdown: fd: 3, how: 1�[0m
�[0m[2022-05-26T06:22:58.371Z][TRACE][T4][#13324][Shutdown] Retval = 0x0�[0m
�[0m[2022-05-26T06:22:58.371Z][TRACE][T4][#13325][ClockGettime] Syscall { num = ClockGettime, clockid = 0, ts_u = 0x7fff0f4bfcf0 }�[0m
�[0m[2022-05-26T06:22:58.371Z][TRACE][T4][#13325][ClockGettime] Retval = 0x0�[0m
�[0m[2022-05-26T06:22:58.371Z][TRACE][T4][#13326][Setsockopt] Syscall { num = Setsockopt, fd = 3, level = 1, optname = 20, optval = 0x7fff0f4bfcf0, optlen = 16 }�[0m
�[0m[2022-05-26T06:22:58.371Z][DEBUG][T4][#13326][Setsockopt] setsockopt: fd: 3, level: 1, optname: 20, optval: 0x7fff0f4bfcf0, optlen: 16�[0m
�[0m[2022-05-26T06:22:58.371Z][TRACE][T4][#13326][Setsockopt] Retval = 0x0�[0m
�[0m[2022-05-26T06:22:58.371Z][TRACE][T4][#13327][Recvfrom] Syscall { num = Recvfrom, fd = 3, base = 0x7fff0ec7d010, len = 131072, flags = 0, addr = 0x0, addr_len = 0x0 }�[0m
�[0m[2022-05-26T06:22:58.372Z][TRACE][T4][#13327][Recvfrom] Retval = 0x1c�[0m
�[0m[2022-05-26T06:22:58.372Z][TRACE][T4][#13328][Recvfrom] Syscall { num = Recvfrom, fd = 3, base = 0x7fff0ec7d010, len = 131072, flags = 0, addr = 0x0, addr_len = 0x0 }�[0m
�[0m[2022-05-26T06:22:58.382Z][TRACE][T4][#13328][Recvfrom] Retval = 0x0�[0m
�[0m[2022-05-26T06:22:58.382Z][TRACE][T4][#13329][ClockGettime] Syscall { num = ClockGettime, clockid = 0, ts_u = 0x7fff0f4bfd30 }�[0m
�[0m[2022-05-26T06:22:58.382Z][TRACE][T4][#13329][ClockGettime] Retval = 0x0�[0m
�[0m[2022-05-26T06:22:58.382Z][TRACE][T4][#13330][ClockGettime] Syscall { num = ClockGettime, clockid = 0, ts_u = 0x7fff0f4bfbf0 }�[0m
�[0m[2022-05-26T06:22:58.382Z][TRACE][T4][#13330][ClockGettime] Retval = 0x0�[0m
�[0m[2022-05-26T06:22:58.382Z][TRACE][T4][#13331][···Futex] Syscall { num = Futex, futex_addr = 0x7fff0c35a1c0, futex_op = 393, futex_val = 0, timeout = 140733450025968, futex_new_addr = 0x0, bitset = 4294967295 }�[0m
�[0m[2022-05-26T06:22:58.382Z][DEBUG][T4][#13331][···Futex] futex_wait_bitset addr: 0x7fff0c35a1c0, val: 0, timeout: Some(FutexTimeout { clock_id: CLOCK_REALTIME, ts: timespec_t { sec: 1653546179, nsec: 382870780 }, absolute_time: true }), bitset: 0xffffffff�[0m
�[0m[2022-05-26T06:22:58.386Z][TRACE][T3][#81][ClockNanosleep] Retval = 0x0�[0m
�[0m[2022-05-26T06:22:58.386Z][TRACE][T3][#82][···Futex] Syscall { num = Futex, futex_addr = 0x7fff0c35a1c0, futex_op = 129, futex_val = 1, timeout = 0, futex_new_addr = 0x7fff0c35a198, bitset = 204841400 }�[0m
�[0m[2022-05-26T06:22:58.386Z][DEBUG][T3][#82][···Futex] futex_wake_bitset addr: 0x7fff0c35a1c0, max_count: 1, bitset: 0xffffffff�[0m
�[0m[2022-05-26T06:22:58.386Z][TRACE][T3][#82][···Futex] Retval = 0x1�[0m
�[0m[2022-05-26T06:22:58.386Z][TRACE][T4][#13331][···Futex] Retval = 0x0�[0m
�[0m[2022-05-26T06:22:58.386Z][TRACE][T3][#83][···Write] Syscall { num = Write, fd = 1, buf = 0x7fff14000f70, size = 93 }�[0m
�[0m[2022-05-26T06:22:58.386Z][TRACE][T4][#13332][ClockGettime] Syscall { num = ClockGettime, clockid = 0, ts_u = 0x7fff0f4bfbf0 }�[0m
�[0m[2022-05-26T06:22:58.386Z][TRACE][T4][#13332][ClockGettime] Retval = 0x0�[0m
�[0m[2022-05-26T06:22:58.386Z][TRACE][T4][#13333][···Futex] Syscall { num = Futex, futex_addr = 0x7fff0c35a1c8, futex_op = 129, futex_val = 1, timeout = 0, futex_new_addr = 0x0, bitset = 4294967295 }�[0m
�[0m[2022-05-26T06:22:58.386Z][DEBUG][T3][#83][···Write] write: fd: 1�[0m
�[0m[2022-05-26T06:22:58.386Z][DEBUG][T4][#13333][···Futex] futex_wake_bitset addr: 0x7fff0c35a1c8, max_count: 1, bitset: 0xffffffff�[0m
�[0m[2022-05-26T06:22:58.386Z][TRACE][T4][#13333][···Futex] Retval = 0x0�[0m
�[0m[2022-05-26T06:22:58.386Z][TRACE][T4][#13334][···Futex] Syscall { num = Futex, futex_addr = 0x7fff0c35a1c4, futex_op = 393, futex_val = 0, timeout = 140733450025968, futex_new_addr = 0x0, bitset = 4294967295 }�[0m
�[0m[2022-05-26T06:22:58.386Z][DEBUG][T4][#13334][···Futex] futex_wait_bitset addr: 0x7fff0c35a1c4, val: 0, timeout: Some(FutexTimeout { clock_id: CLOCK_REALTIME, ts: timespec_t { sec: 1653546179, nsec: 386620281 }, absolute_time: true }), bitset: 0xffffffff�[0m
[ ID] Interval Transfer Bandwidth
[ 1] 0.00-1.01 sec 830 MBytes 6.88 Gbits/sec
�[0m[2022-05-26T06:22:58.386Z][TRACE][T3][#83][···Write] Retval = 0x5d�[0m
So when a side is close, on the other side of the stream, Recvfrom
should return 0. From the man page of recv, it also states that:
When a stream socket peer has performed an orderly shutdown, the return value will be 0 (the traditional "end-of-file" return).
But in NGO, it shows a different phenomenon that the close
didn't make the recvfrom
return. I did a little digging, and it looks like the recvfrom
request is submitted to the kernel but it never returns and the calling thread keeps waiting. Thus, it seems like a fault of io_uring that close/shutdown can't cancel pending requests and make them return.
From an issue in liburing (axboe/liburing#568), it looks like it won't be supported before 5.19.
Besides this problem, iperf also uses a Netlink socket for other usages in this test. NGO is also not supported. To run this tool, there are mainly two solutions:
(1) Wait for the kernel 5.19 and hopefully, this usage is supported, and update all related libraries to use this feature. Also, add support for Netlink socket type.
(2) Add an ocall based implementation as a fallback solution when running applications like this. We could encourage the users to try io_uring based network first and if it can't use, use this fallback solution. At least, the in-enclave scheduling can bring some benefits. The drawback of this solution is that some of the network ocall will be blocking and can't release the CPU.
We will add the newly designed and implemented AsyncFS into NGO. The AsyncFS uses Rust asynchronous programming skills, making it fast and concurrent.
In NGO, we have already implemented many features using async programming, but the FS part is still synchronized, which makes the file I/O very slow. To improve the performance of file I/O, we design and implement a new FS. The APIs of AsyncFS are all asynchronous.
We newly design the hierarchy of the FS in Occlum as follows. The Async VFS, Async SFS, and Page Cache are three new crates.
The Async-VFS is the abstraction of FS and provides some facilities for OS to perform file operations.
The Async-SFS is the core implementation of FS, it organizes raw blocks into files and dirs and provides all the inode operations for files.
The Page Cache is a memory cache for block devices, it caches the blocks in the middle of FS and block-device to accelerate file I/O.
It provides the AsyncFileSystem
, AsyncInode
, AsyncFileHandle
, and Dentry
.
AsyncFileSystem
is a trait for Async FS. The Async FS should implement this trait.
AsyncInode
is a trait of FS Inode in Async FS. The Inode inside one Async FS should implement its methods.
AsyncFileHandle
is the representation of one opened file in libos. If Apps open a file, it will create the AsyncFileHandle, then insert it into the file table.
Dentry
is used to speed up the file lookup operation, and provides the method to get the absolute path of one inode.
The Async-SFS is rewritten from https://github.com/occlum/sefs/tree/unionfs/rcore-fs-sfs, so async-sfs inherits some parameters and code from it.
We have mostly redesigned and rewritten the implementation of SFS to satisfy the requirements of Rust async programming, better performance, correctness, and stability. Meanwhile, we also adopt some design ideas from EXT2 FS.
Async-SFS uses the Block-Device (a trait) as the underlying data storage and sends async IO requests to it.
All the metadata and data of FS are organized into logic blocks. The FS reads or writes data at block-level I/O. It provides inode-level operation to upper FS users.
Every Inode must store the information to locate the data block on the device through file offset. The three-level indexing mechanism is supported now, i.e., direct block, indirect block, and double indirect block.
A directory is a specially formatted file containing file records, It is like a linked list of directory entry structures.
To improve the performance of file I/O, Async-SFS adds Page Cache as the feature in Cargo.toml
.
Async-SFS stores both data and metadata into the page cache to accelerate block I/O operations. Thanks to the page cache, the result of the benchmark (e.g., FIO and Filebench) is significantly better than SEFS.
The maximum size of the file inside Async-SFS is 4GB
because the type of file size is u32
, and the inode just uses double indirect blocks.
The maximum size of FS is 16TB
because the type of BlockId is u32
. The size is 4KB * 2 ^ 32 = 16TB.
Please refer to the issue: #267
PKU (Protection Keys for Userspace) is a lightweight intra-process isolation mechanism for userspace (Ring 3) software. It incurs no overhead at runtime compared to Software Fault Isolation (SFI), and the memory access permission switch overhead is low .
Currently, NGO lacks the ability to isolate LibOS from userspace applications. Though userspace applications are considered benign in NGO, but is may be bug-prone. Potential illegal memory accesses may affect correctness of computation, even lead to the crash of the whole enclave.
It necessary to enforce the isolation in NGO, and leveraging PKU is a good choice.
We catagorize the secure memory inside enclave to two parts: LibOS + SGX SDK (trts part) and userspace application. We use two pkeys (pkey 0 and pkey 1) to tag the memory, as shown in FIG: pkey configuration
Userspace applications use the reserved memory
[1] provided by SGX SDK. We use pkey 1 to tag the resevered memory
in our design, reasons are:
pkey_mprotect()
when we get new memory pages;reserved memory
is allocated once, and its size is fixed. So we only need to invoke pkey_mproctect()
once after LibOS requests reserved memory
from SGX SDK.We use 0x0
(PKRU_LibOS
) for LibOS, and 0x55555551
(PKRU_User
) for userspace applications in NGO as shown in the figure. With such configuration, LibOS is able to have access to applications, but not vice versa.
Why we use 0x0
for PKRU_LibOS
:
In SGX SDK 2.16, the PKRU of LibOS and SDK is updated to 0x0 when performing an ecall (details). To keep consistency with it, we set PKRU_LibOS
to 0x0
in our design.
There are three different value for PKRU in our design:
PKRU_Default
= 0x55555554
: The default PKRU value of a Linux processPKRU_LibOS
= 0x0
: The PKRU value for LibOS and SGX SDK inside enclavePKRU_User
= 0x55555551
: The PKRU value for userspace apps in NGOPKU use WRPKRU
instruction to update the value of PKRU. Obviously, the PKRU switch happens at the boundary between LibOS and userspace apps. There are two types of interactions between them:
We will show design details at the next section.
For Synchronous interactions, user apps invoke __syscall_entry_linux_abi
to enter LibOS, and LibOS invokes __switch_to_user
to return to user app. We update the PKU at the begining of __syscall_entry_linux_abi
, as shown in
FIG: Update PKRU at the entry of syscall.
We also restore the PKRU value at the end of __syscall_entry_linux_abi
as shown in FIG: Update PKRU at the exit of syscall.
NGO uses sgx_register_exception_handler()
and sgx_interrupt_init()
provided by SGX SDK to handle exceptions generated from userspace apps and timer interrupt process. NGO supports HW and SW mode simultaneously. For Asynchronous interactions, their implementations are different, so we will dicscuss it separately:
HW Mode
Interruptions and exceptions result in Asynchronous Enclave Exits (AEX) when the CPU core is in SGX mode.
If the AEX results from interruptions, the OS will resume the enclave execution after handling it. The PKRU value should be saved and restored during it. This is done by setting the XFRM.PKRU by 1.
If the AEX results from exceptions, SGX SDK use the signal abstract provided by OS to handle it. The detailed workflows are shown in FIG: Exceptions workflow in HW Mode. NGO uses trts_handle_exception()
and trts_handle_interrupt()
to handle different types of signal generated from OS.
In addtion to setting GPRs and other states in SSA for LibOS to handle the them, we also need set to the PKRU in SSA to PKRU_LibOS
.
The following shows the what is PKRU value in different steps when handling interruptions and excecptions:
PKRU_Default
by OS when sig_handler()
is invoked;EENTER
does not change PKRU value;EEXIT
does not change PKRU value;ERESUME
restores the PKRU value recored in SSA XSAVE region.SW Mode
(We decide to not support such feature in SW Mode, since it involves substantial modifications on SGX SDK, and we do not use SW Mode in production environment. But we still show its design as following)
Different from HW Mode, no AEX occurs in SW Mode. All the exceptions are handled by sig_handler_sim()
. The workflows are showned in FIG: Exceptions workflow in SW Mode. There are a few steps for handling exceptions:
sig_handler_sim_wrapper()
in urt. As mentioned in [2], each time a signal handler is invoked, the PKRU is set to default value (PKRU_Default
). But the stack prepared by OS may lay in the reserved memory
, and the signal handler may access the memory region owned by SGX SDK, so we need to update the PKRU to PKRU_LibOS
before we call signal_handler_sim()
signal_handler_sim()
sets %rip = AEP
and %rax = ERESUME
in ucontext_t
to ERESUME
the program after handling the signal. Then, it enters the simulated enclave to set the %rip
in SSA frame.PKRU_User
, but the AEP
uses the stack provided by urts. AEP
also needs to access data with pkey = 0
. So we need to update the PKRU to PKRU_LibOS
at the begin of AEP
.ERESUME
, the handler in LibOS (execption_entrypion
or interrupt_entrypoint
) is invoked. LibOS resumes the execution of userspace apps after handling it.pkey_alloc()
, pkey_mprotect()
and pkey_free()
have not been added into the docker default seccomp
profile (can be found here). We have raised an issue. Current solution is use our customized seccomp
profile in docker run
command, shown as following:$ docker run --security-opt seccomp=<customized profile> .....
[1] https://community.intel.com/t5/Intel-Software-Guard-Extensions/SGX-Reserved-Memory/td-p/1279337
[2] http://manpages.ubuntu.com/manpages/bionic/man7/pkeys.7.html
This issue tracks NGO's progress towards matching the functionalities of the upstream Occlum (0.21.0, released on March 3rd, 2021). We quantify the progress in two metrics:
Currently, the values of the two metrics are
Read the sections below for more details.
Here is the list of unit tests in NGO. An item is checked if the unit test (at least partially) pass in NGO.
Here we list all system calls that are supported in upstream Occlum, but not in NGO, at the time of writing this issue. We keep updating the progress in implementing the missing system calls.
(Getsockname = 51) => do_getsockname(fd: c_int, addr: *mut libc::sockaddr, addr_len: *mut libc::socklen_t),
(Getsockopt = 55) => do_getsockopt(fd: c_int, level: c_int, optname: c_int, optval: *mut c_void, optlen: *mut libc::socklen_t),
(Getpeername = 52) => do_getpeername(fd: c_int, addr: *mut libc::sockaddr, addr_len: *mut libc::socklen_t),
(Socketpair = 53) => do_socketpair(domain: c_int, socket_type: c_int, protocol: c_int, sv: *mut c_int),
(Sigaltstack = 131) => do_sigaltstack(ss: *const stack_t, old_ss: *mut stack_t, context: *const CpuContext),
(Shutdown = 48) => do_shutdown(fd: c_int, how: c_int),
(Setsockopt = 54) => do_setsockopt(fd: c_int, level: c_int, optname: c_int, optval: *const c_void, optlen: libc::socklen_t),
(Sendfile = 40) => do_sendfile(out_fd: FileDesc, in_fd: FileDesc, offset_ptr: *mut off_t, count: usize),
(Sendmsg = 46) => do_sendmsg(fd: c_int, msg_ptr: *const msghdr, flags_c: c_int),
(Sendto = 44) => do_sendto(fd: c_int, base: *const c_void, len: size_t, flags: c_int, addr: *const libc::sockaddr, addr_len: libc::socklen_t),
(Recvfrom = 45) => do_recvfrom(fd: c_int, base: *mut c_void, len: size_t, flags: c_int, addr: *mut libc::sockaddr, addr_len: *mut libc::socklen_t),
(Recvmsg = 47) => do_recvmsg(fd: c_int, msg_mut_ptr: *mut msghdr_mut, flags_c: c_int),
(EpollCreate = 213) => do_epoll_create(size: c_int),
(EpollCreate1 = 291) => do_epoll_create1(flags: c_int),
(EpollCtl = 233) => do_epoll_ctl(epfd: c_int, op: c_int, fd: c_int, event: *const libc::epoll_event),
(EpollPwait = 281) => do_epoll_pwait(epfd: c_int, events: *mut libc::epoll_event, maxevents: c_int, timeout: c_int, sigmask: *const usize),
(EpollWait = 232) => do_epoll_wait(epfd: c_int, events: *mut libc::epoll_event, maxevents: c_int, timeout: c_int),
(Select = 23) => do_select(nfds: c_int, readfds: *mut libc::fd_set, writefds: *mut libc::fd_set, exceptfds: *mut libc::fd_set, timeout: *mut timeval_t),
(Poll = 7) => do_poll(fds: *mut libc::pollfd, nfds: libc::nfds_t, timeout: c_int),
(Ioctl = 16) => do_ioctl(fd: FileDesc, cmd: u32, argp: *mut u8),
(Fallocate = 285) => do_fallocate(fd: FileDesc, mode: u32, offset: off_t, len: off_t),
(Fcntl = 72) => do_fcntl(fd: FileDesc, cmd: u32, arg: u64),
(Getdents64 = 217) => do_getdents64(fd: FileDesc, buf: *mut u8, buf_size: usize),
(Getegid = 108) => do_getegid(),
(Geteuid = 107) => do_geteuid(),
(Getgid = 104) => do_getgid(),
(Getpgid = 121) => do_getpgid(),
(SchedGetaffinity = 204) => do_sched_getaffinity(pid: pid_t, cpusize: size_t, buf: *mut c_uchar),
(SchedSetaffinity = 203) => do_sched_setaffinity(pid: pid_t, cpusize: size_t, buf: *const c_uchar),
(Nanosleep = 35) => do_nanosleep(req_u: *const timespec_t, rem_u: *mut timespec_t),
(Prctl = 157) => do_prctl(option: i32, arg2: u64, arg3: u64, arg4: u64, arg5: u64),
(SysInfo = 99) => do_sysinfo(info: *mut sysinfo_t),
(Uname = 63) => do_uname(name: *mut utsname_t),
When doing stress test, e.g., TESTS=server STRESS_TEST_TIMES=500 make test
, the test might failed after hundreds of tests.
The error is bind failed (address in use), which is because of the old socket that listening in the port isn't closed.
To close a listening socket, we first cancel all ongoing accept io-uring request, however, the request seems lost when doing stress test. e.g., we try to cancel 10 requests, but only 9 requests were canceled, which left one request to lose.
When I add log to locate this bug, I find it's hard to reproduce the bug if I add many logs in io-uring operation.
I thought it's might because of the third crate io-uring
crate, since our io-uring
crate is outdated.
And I try to update the io-uring
crate (The interface of io-uring crate changed a lot), and then I meet more bugs...... (The code is in https://github.com/ShuochengWang/io-uring/tree/sgx and https://github.com/ShuochengWang/ngo/tree/dev-network9)
The log of this bug:
PASS
RUN TEST => server
[2021-10-20T05:37:54.358Z][TRACE] env_checked from env untrusted: []
[2021-10-20T05:37:54.358Z][TRACE] env_merged = ["OCCLUM=yes", "STABLE=yes", "OVERRIDE=N"] (default env and untrusted env)
[2021-10-20T05:37:54.358Z][DEBUG] lookup_inode: cwd: "/", path: "/bin/server"
[2021-10-20T05:37:54.359Z][DEBUG] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.376Z][DEBUG] allocated rsrv addr is 0x7f4de93cf000, len is 0x6896000
[2021-10-20T05:37:54.377Z][ INFO] Process created: elf = /bin/server, pid = 1241
[2021-10-20T05:37:54.377Z][DEBUG][T1241][#0] Thread #1241 is executed as task #1241
[2021-10-20T05:37:54.377Z][TRACE][T1241][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4de9c94d88 }
[2021-10-20T05:37:54.377Z][DEBUG][T1241][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4de9c94d88
[2021-10-20T05:37:54.377Z][TRACE][T1241][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4de9c95364 }
[2021-10-20T05:37:54.377Z][DEBUG][T1241][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4de9c95364
[2021-10-20T05:37:54.377Z][TRACE][T1241][#3][Mprotect] Syscall { num = Mprotect, addr = 139972611477504, len = 4096, prot = 1 }
[2021-10-20T05:37:54.377Z][DEBUG][T1241][#3][Mprotect] mprotect: addr: 0x7f4de9c91000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.377Z][ WARN][T1241][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.377Z][TRACE][T1241][#4][Mprotect] Syscall { num = Mprotect, addr = 139972604604416, len = 4096, prot = 1 }
[2021-10-20T05:37:54.377Z][DEBUG][T1241][#4][Mprotect] mprotect: addr: 0x7f4de9603000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.377Z][ WARN][T1241][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.377Z][TRACE][T1241][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.378Z][ INFO][T1241][#5][··Socket] open fd 26
[2021-10-20T05:37:54.378Z][TRACE][T1241][#6][Setsockopt] Syscall { num = Setsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 4 }
[2021-10-20T05:37:54.378Z][DEBUG][T1241][#6][Setsockopt] setsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 4
[2021-10-20T05:37:54.378Z][ INFO][T1241][#6][Setsockopt] fd: 26, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.378Z][TRACE][T1241][#7][Getsockopt] Syscall { num = Getsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 0x7f4deaa95db4 }
[2021-10-20T05:37:54.378Z][DEBUG][T1241][#7][Getsockopt] getsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 0x7f4deaa95db4
[2021-10-20T05:37:54.378Z][TRACE][T1241][#8][····Bind] Syscall { num = Bind, fd = 3, addr = 0x7f4deaa95dc0, addr_len = 16 }
[2021-10-20T05:37:54.378Z][TRACE][T1241][#9][··Listen] Syscall { num = Listen, fd = 3, backlog = 10 }
[2021-10-20T05:37:54.378Z][TRACE][T1241][#10][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e28, path = 0x7f4de9402939, argv = 0x7f4deaa95dd0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.378Z][DEBUG][T1241][#10][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8800"], envp: [], fdop: []
[2021-10-20T05:37:54.378Z][DEBUG][T1241][#10][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.378Z][DEBUG][T1241][#10][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.382Z][DEBUG][T1241][#10][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.382Z][DEBUG][T1241][#10][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.382Z][ INFO][T1241][#10][SpawnMusl] Process created: elf = /bin/client, pid = 1242
[2021-10-20T05:37:54.382Z][TRACE][T1241][#11][··Accept] Syscall { num = Accept, fd = 3, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.382Z][DEBUG][T1242][#0] Thread #1242 is executed as task #1242
[2021-10-20T05:37:54.382Z][TRACE][T1242][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.382Z][DEBUG][T1242][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.382Z][TRACE][T1242][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.382Z][DEBUG][T1242][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.382Z][TRACE][T1242][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.382Z][DEBUG][T1242][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.382Z][ WARN][T1242][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.382Z][TRACE][T1242][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.382Z][DEBUG][T1242][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.382Z][ WARN][T1242][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.383Z][TRACE][T1242][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.383Z][ INFO][T1242][#5][··Socket] open fd 493
[2021-10-20T05:37:54.383Z][TRACE][T1242][#6][·Connect] Syscall { num = Connect, fd = 4, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] Accept success: 494
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, 494
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.383Z][TRACE][T1241][#12][···Close] Syscall { num = Close, fd = 3 }
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#12][···Close] close: fd: 3
[2021-10-20T05:37:54.383Z][TRACE][T1241][#13][···Write] Syscall { num = Write, fd = 4, buf = 0x7f4de9402953, size = 26 }
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#13][···Write] write: fd: 4
[2021-10-20T05:37:54.383Z][TRACE][T1242][#7][····Read] Syscall { num = Read, fd = 4, buf = 0x7f4df1495de0, size = 100 }
[2021-10-20T05:37:54.383Z][TRACE][T1241][#14][····Read] Syscall { num = Read, fd = 4, buf = 0x7f4deaa95df0, size = 4 }
[2021-10-20T05:37:54.383Z][DEBUG][T1242][#7][····Read] read: fd: 4
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#14][····Read] read: fd: 4
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.383Z][TRACE][T1242][#8][···Write] Syscall { num = Write, fd = 4, buf = 0x7f4defe01231, size = 4 }
[2021-10-20T05:37:54.383Z][DEBUG][T1242][#8][···Write] write: fd: 4
[2021-10-20T05:37:54.383Z][TRACE][T1242][#9][···Close] Syscall { num = Close, fd = 4 }
[2021-10-20T05:37:54.383Z][DEBUG][T1242][#9][···Close] close: fd: 4
[2021-10-20T05:37:54.383Z][ INFO][T1242][#9][···Close] cancel sent
[2021-10-20T05:37:54.383Z][TRACE][T1242][#10][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.383Z][DEBUG][T1242][#10][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.383Z][DEBUG][T1242][#10][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#14][····Read] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] close fd 493
[2021-10-20T05:37:54.383Z][TRACE][T1241][#15][···Wait4] Syscall { num = Wait4, pid = 1242, _exit_status = 0x7f4deaa95e2c }
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.383Z][ERROR][T1241][#16] Error = EINVAL (#22, Invalid argument): Invalid system call number (16) [line = 674, file = src/entry/syscall.rs]
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.383Z][TRACE][T1241][#17][··Writev] Syscall { num = Writev, fd = 1, iov = 0x7f4deaa95a40, count = 2 }
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#17][··Writev] writev: fd: 1
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, -114
func test_read_write - [OK]
[2021-10-20T05:37:54.383Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.383Z][TRACE][T1241][#18][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.383Z][ INFO][T1241][#18][··Socket] open fd 493
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.383Z][TRACE][T1241][#19][Setsockopt] Syscall { num = Setsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 4 }
[2021-10-20T05:37:54.383Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#19][Setsockopt] setsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 4
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.383Z][ INFO][T1241][#19][Setsockopt] fd: 493, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.383Z][TRACE][T1241][#20][Getsockopt] Syscall { num = Getsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 0x7f4deaa95db4 }
[2021-10-20T05:37:54.383Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#20][Getsockopt] getsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 0x7f4deaa95db4
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.383Z][TRACE][T1241][#21][····Bind] Syscall { num = Bind, fd = 3, addr = 0x7f4deaa95dc0, addr_len = 16 }
[2021-10-20T05:37:54.383Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.383Z][TRACE][T1241][#22][··Listen] Syscall { num = Listen, fd = 3, backlog = 10 }
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.383Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.383Z][TRACE][T1241][#23][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e2c, path = 0x7f4de9402939, argv = 0x7f4deaa95dd0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.383Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#23][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8801"], envp: [], fdop: []
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#23][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.384Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.384Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.384Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.384Z][DEBUG][T1241][#23][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.384Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.384Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.384Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.384Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.384Z][ INFO][T0][#0] close fd 26
[2021-10-20T05:37:54.384Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.388Z][DEBUG][T1241][#23][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.388Z][DEBUG][T1241][#23][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.388Z][ INFO][T1241][#23][SpawnMusl] Process created: elf = /bin/client, pid = 1243
[2021-10-20T05:37:54.388Z][TRACE][T1241][#24][··Accept] Syscall { num = Accept, fd = 3, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.388Z][DEBUG][T1243][#0] Thread #1243 is executed as task #1243
[2021-10-20T05:37:54.388Z][TRACE][T1243][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.388Z][DEBUG][T1243][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.388Z][TRACE][T1243][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.388Z][DEBUG][T1243][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.388Z][TRACE][T1243][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.388Z][DEBUG][T1243][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.388Z][ WARN][T1243][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.388Z][TRACE][T1243][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.388Z][DEBUG][T1243][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.388Z][ WARN][T1243][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.388Z][TRACE][T1243][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.388Z][ INFO][T1243][#5][··Socket] open fd 26
[2021-10-20T05:37:54.388Z][TRACE][T1243][#6][·Connect] Syscall { num = Connect, fd = 5, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.388Z][ INFO][T0][#0] Accept success: 495
[2021-10-20T05:37:54.388Z][ INFO][T0][#0] io-uring normal complete, 495
[2021-10-20T05:37:54.388Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.388Z][TRACE][T1241][#25][···Close] Syscall { num = Close, fd = 3 }
[2021-10-20T05:37:54.388Z][DEBUG][T1241][#25][···Close] close: fd: 3
[2021-10-20T05:37:54.388Z][TRACE][T1241][#26][···Write] Syscall { num = Write, fd = 5, buf = 0x7f4de9402953, size = 26 }
[2021-10-20T05:37:54.388Z][DEBUG][T1241][#26][···Write] write: fd: 5
[2021-10-20T05:37:54.388Z][TRACE][T1241][#27][····Read] Syscall { num = Read, fd = 5, buf = 0x7f4deaa95df0, size = 4 }
[2021-10-20T05:37:54.388Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.388Z][DEBUG][T1241][#27][····Read] read: fd: 5
[2021-10-20T05:37:54.388Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.388Z][TRACE][T1243][#7][····Read] Syscall { num = Read, fd = 5, buf = 0x7f4df1495de0, size = 100 }
[2021-10-20T05:37:54.388Z][DEBUG][T1243][#7][····Read] read: fd: 5
[2021-10-20T05:37:54.388Z][TRACE][T1243][#8][···Write] Syscall { num = Write, fd = 5, buf = 0x7f4defe01231, size = 4 }
[2021-10-20T05:37:54.388Z][DEBUG][T1243][#8][···Write] write: fd: 5
[2021-10-20T05:37:54.389Z][TRACE][T1243][#9][··Sendto] Syscall { num = Sendto, fd = 5, base = 0x7f4df1495de0, len = 26, flags = 0, addr = 0x0, addr_len = 0 }
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.389Z][TRACE][T1243][#10][···Close] Syscall { num = Close, fd = 5 }
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.389Z][DEBUG][T1243][#10][···Close] close: fd: 5
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.389Z][ INFO][T1243][#10][···Close] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] close fd 26
[2021-10-20T05:37:54.389Z][TRACE][T1243][#11][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.389Z][DEBUG][T1243][#11][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.389Z][DEBUG][T1243][#11][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.389Z][DEBUG][T1241][#27][····Read] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.389Z][TRACE][T1241][#28][Recvfrom] Syscall { num = Recvfrom, fd = 5, base = 0x7f4deaa95df0, len = 32, flags = 0, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.389Z][TRACE][T1241][#29][···Wait4] Syscall { num = Wait4, pid = 1243, _exit_status = 0x7f4deaa95e0c }
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.389Z][TRACE][T1241][#30][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.389Z][ INFO][T1241][#30][··Socket] open fd 26
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][TRACE][T1241][#31][Setsockopt] Syscall { num = Setsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 4 }
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.389Z][DEBUG][T1241][#31][Setsockopt] setsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 4
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][ INFO][T1241][#31][Setsockopt] fd: 26, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][TRACE][T1241][#32][Getsockopt] Syscall { num = Getsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 0x7f4deaa95db4 }
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.389Z][DEBUG][T1241][#32][Getsockopt] getsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 0x7f4deaa95db4
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][TRACE][T1241][#33][····Bind] Syscall { num = Bind, fd = 3, addr = 0x7f4deaa95dc0, addr_len = 16 }
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][TRACE][T1241][#34][··Listen] Syscall { num = Listen, fd = 3, backlog = 10 }
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][TRACE][T1241][#35][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e2c, path = 0x7f4de9402939, argv = 0x7f4deaa95dd0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][DEBUG][T1241][#35][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8802"], envp: [], fdop: []
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.389Z][DEBUG][T1241][#35][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.389Z][DEBUG][T1241][#35][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] close fd 493
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.393Z][DEBUG][T1241][#35][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.393Z][DEBUG][T1241][#35][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.394Z][ INFO][T1241][#35][SpawnMusl] Process created: elf = /bin/client, pid = 1244
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#0] Thread #1244 is executed as task #1244
[2021-10-20T05:37:54.394Z][TRACE][T1241][#36][··Accept] Syscall { num = Accept, fd = 3, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.394Z][TRACE][T1244][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.394Z][TRACE][T1244][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.394Z][TRACE][T1244][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.394Z][ WARN][T1244][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.394Z][TRACE][T1244][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.394Z][ WARN][T1244][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.394Z][TRACE][T1244][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.394Z][ INFO][T1244][#5][··Socket] open fd 493
[2021-10-20T05:37:54.394Z][TRACE][T1244][#6][·Connect] Syscall { num = Connect, fd = 6, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] Accept success: 496
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 496
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.394Z][TRACE][T1241][#37][···Close] Syscall { num = Close, fd = 3 }
[2021-10-20T05:37:54.394Z][DEBUG][T1241][#37][···Close] close: fd: 3
[2021-10-20T05:37:54.394Z][TRACE][T1241][#38][···Write] Syscall { num = Write, fd = 6, buf = 0x7f4de9402953, size = 26 }
[2021-10-20T05:37:54.394Z][TRACE][T1244][#7][····Read] Syscall { num = Read, fd = 6, buf = 0x7f4df1495de0, size = 100 }
[2021-10-20T05:37:54.394Z][DEBUG][T1241][#38][···Write] write: fd: 6
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#7][····Read] read: fd: 6
[2021-10-20T05:37:54.394Z][TRACE][T1241][#39][····Read] Syscall { num = Read, fd = 6, buf = 0x7f4deaa95df0, size = 4 }
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.394Z][DEBUG][T1241][#39][····Read] read: fd: 6
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.394Z][TRACE][T1244][#8][···Write] Syscall { num = Write, fd = 6, buf = 0x7f4defe01231, size = 4 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#8][···Write] write: fd: 6
[2021-10-20T05:37:54.394Z][TRACE][T1244][#9][·Sendmsg] Syscall { num = Sendmsg, fd = 6, msg_ptr = 0x7f4df1495908, flags = 0 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#9][·Sendmsg] sendmsg: fd: 6, msg: 0x7f4df1495908, flags: 0x0
[2021-10-20T05:37:54.394Z][TRACE][T1244][#10][·Sendmsg] Syscall { num = Sendmsg, fd = 6, msg_ptr = 0x7f4df1495908, flags = 0 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#10][·Sendmsg] sendmsg: fd: 6, msg: 0x7f4df1495908, flags: 0x0
[2021-10-20T05:37:54.394Z][TRACE][T1244][#11][···Close] Syscall { num = Close, fd = 6 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#11][···Close] close: fd: 6
[2021-10-20T05:37:54.394Z][ INFO][T1244][#11][···Close] cancel sent
[2021-10-20T05:37:54.394Z][TRACE][T1244][#12][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#12][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#12][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.394Z][DEBUG][T1241][#39][····Read] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.394Z][TRACE][T1241][#40][·Recvmsg] Syscall { num = Recvmsg, fd = 6, msg_mut_ptr = 0x7f4deaa95d08, flags = 0 }
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] close fd 493
[2021-10-20T05:37:54.394Z][DEBUG][T1241][#40][·Recvmsg] recvmsg: fd: 6, msg: 0x7f4deaa95d08, flags: 0x0
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.394Z][TRACE][T1241][#41][·Recvmsg] Syscall { num = Recvmsg, fd = 6, msg_mut_ptr = 0x7f4deaa95d08, flags = 0 }
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.394Z][DEBUG][T1241][#41][·Recvmsg] recvmsg: fd: 6, msg: 0x7f4deaa95d08, flags: 0x0
[2021-10-20T05:37:54.394Z][TRACE][T1241][#42][···Wait4] Syscall { num = Wait4, pid = 1244, _exit_status = 0x7f4deaa95e0c }
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.395Z][TRACE][T1241][#43][Socketpair] Syscall { num = Socketpair, domain = 1, socket_type = 1, protocol = 0, sv = 0x7f4deaa95de0 }
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.395Z][DEBUG][T1241][#43][Socketpair] socketpair: (3, 7)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][TRACE][T1241][#44][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95ddc, path = 0x7f4de9402939, argv = 0x7f4deaa95df0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][DEBUG][T1241][#44][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "NULL", "8803", "7"], envp: [], fdop: []
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.395Z][DEBUG][T1241][#44][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.395Z][DEBUG][T1241][#44][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] close fd 26
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.399Z][DEBUG][T1241][#44][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.399Z][DEBUG][T1241][#44][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.399Z][ INFO][T1241][#44][SpawnMusl] Process created: elf = /bin/client, pid = 1245
[2021-10-20T05:37:54.399Z][TRACE][T1241][#45][··Socket] Syscall { num = Socket, domain = 2, socket_type = 2, protocol = 0 }
[2021-10-20T05:37:54.399Z][ INFO][T1241][#45][··Socket] open fd 26
[2021-10-20T05:37:54.399Z][TRACE][T1241][#46][····Bind] Syscall { num = Bind, fd = 8, addr = 0x7f4deaa95d40, addr_len = 16 }
[2021-10-20T05:37:54.399Z][TRACE][T1241][#47][·Recvmsg] Syscall { num = Recvmsg, fd = 8, msg_mut_ptr = 0x7f4deaa958f8, flags = 0 }
[2021-10-20T05:37:54.399Z][DEBUG][T1241][#47][·Recvmsg] recvmsg: fd: 8, msg: 0x7f4deaa958f8, flags: 0x0
[2021-10-20T05:37:54.399Z][DEBUG][T1245][#0] Thread #1245 is executed as task #1245
[2021-10-20T05:37:54.399Z][TRACE][T1245][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.399Z][DEBUG][T1245][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.399Z][TRACE][T1245][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.399Z][DEBUG][T1245][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.399Z][TRACE][T1245][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.399Z][DEBUG][T1245][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.399Z][ WARN][T1245][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.399Z][TRACE][T1245][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.399Z][DEBUG][T1245][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.399Z][ WARN][T1245][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.399Z][TRACE][T1245][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 2, protocol = 0 }
[2021-10-20T05:37:54.400Z][ INFO][T1245][#5][··Socket] open fd 498
[2021-10-20T05:37:54.400Z][TRACE][T1245][#6][·Sendmsg] Syscall { num = Sendmsg, fd = 8, msg_ptr = 0x7f4df14958e8, flags = 0 }
[2021-10-20T05:37:54.400Z][DEBUG][T1245][#6][·Sendmsg] sendmsg: fd: 8, msg: 0x7f4df14958e8, flags: 0x0
[2021-10-20T05:37:54.400Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.400Z][TRACE][T1245][#7][····Read] Syscall { num = Read, fd = 7, buf = 0x7f4df1495dd0, size = 4 }
[2021-10-20T05:37:54.400Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.400Z][DEBUG][T1245][#7][····Read] read: fd: 7
[2021-10-20T05:37:54.400Z][TRACE][T1241][#48][···Write] Syscall { num = Write, fd = 3, buf = 0x7f4de94029b0, size = 4 }
[2021-10-20T05:37:54.400Z][DEBUG][T1241][#48][···Write] write: fd: 3
[2021-10-20T05:37:54.400Z][TRACE][T1241][#49][···Wait4] Syscall { num = Wait4, pid = 1245, _exit_status = 0x7f4deaa95dbc }
[2021-10-20T05:37:54.400Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.400Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.400Z][TRACE][T1245][#8][···Close] Syscall { num = Close, fd = 0 }
[2021-10-20T05:37:54.400Z][DEBUG][T1245][#8][···Close] close: fd: 0
[2021-10-20T05:37:54.400Z][TRACE][T1245][#9][ExitGroup] Syscall { num = ExitGroup, exit_status = 13 }
[2021-10-20T05:37:54.400Z][DEBUG][T1245][#9][ExitGroup] exit_group: 13
[2021-10-20T05:37:54.400Z][DEBUG][T1245][#9][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.400Z][ INFO][T1241][#49][···Wait4] cancel sent
[2021-10-20T05:37:54.400Z][ INFO][T0][#0] close fd 498
[2021-10-20T05:37:54.400Z][DEBUG][T1241][#49][···Wait4] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.400Z][TRACE][T1241][#50][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.400Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.400Z][ INFO][T1241][#50][··Socket] open fd 498
[2021-10-20T05:37:54.400Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.400Z][TRACE][T1241][#51][Setsockopt] Syscall { num = Setsockopt, fd = 9, level = 1, optname = 2, optval = 0x7f4deaa95ba0, optlen = 4 }
[2021-10-20T05:37:54.400Z][DEBUG][T1241][#51][Setsockopt] setsockopt: fd: 9, level: 1, optname: 2, optval: 0x7f4deaa95ba0, optlen: 4
[2021-10-20T05:37:54.400Z][ INFO][T1241][#51][Setsockopt] fd: 498, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.400Z][TRACE][T1241][#52][Getsockopt] Syscall { num = Getsockopt, fd = 9, level = 1, optname = 2, optval = 0x7f4deaa95ba0, optlen = 0x7f4deaa95ba4 }
[2021-10-20T05:37:54.400Z][DEBUG][T1241][#52][Getsockopt] getsockopt: fd: 9, level: 1, optname: 2, optval: 0x7f4deaa95ba0, optlen: 0x7f4deaa95ba4
[2021-10-20T05:37:54.400Z][TRACE][T1241][#53][····Bind] Syscall { num = Bind, fd = 9, addr = 0x7f4deaa95bb0, addr_len = 16 }
[2021-10-20T05:37:54.400Z][TRACE][T1241][#54][··Listen] Syscall { num = Listen, fd = 9, backlog = 10 }
[2021-10-20T05:37:54.400Z][TRACE][T1241][#55][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95c14, path = 0x7f4de9402939, argv = 0x7f4deaa95bc0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.400Z][DEBUG][T1241][#55][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8805"], envp: [], fdop: []
[2021-10-20T05:37:54.400Z][DEBUG][T1241][#55][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.400Z][DEBUG][T1241][#55][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.404Z][DEBUG][T1241][#55][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.404Z][DEBUG][T1241][#55][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.404Z][ INFO][T1241][#55][SpawnMusl] Process created: elf = /bin/client, pid = 1246
[2021-10-20T05:37:54.404Z][DEBUG][T1246][#0] Thread #1246 is executed as task #1246
[2021-10-20T05:37:54.404Z][TRACE][T1241][#56][··Accept] Syscall { num = Accept, fd = 9, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.404Z][TRACE][T1246][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.405Z][DEBUG][T1246][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.405Z][TRACE][T1246][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.405Z][DEBUG][T1246][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.405Z][TRACE][T1246][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.405Z][DEBUG][T1246][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.405Z][ WARN][T1246][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.405Z][TRACE][T1246][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.405Z][DEBUG][T1246][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.405Z][ WARN][T1246][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.405Z][TRACE][T1246][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.405Z][ INFO][T1246][#5][··Socket] open fd 499
[2021-10-20T05:37:54.405Z][TRACE][T1246][#6][·Connect] Syscall { num = Connect, fd = 10, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] Accept success: 500
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, 500
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.405Z][TRACE][T1241][#57][···Close] Syscall { num = Close, fd = 9 }
[2021-10-20T05:37:54.405Z][DEBUG][T1241][#57][···Close] close: fd: 9
[2021-10-20T05:37:54.405Z][TRACE][T1241][#58][····Poll] Syscall { num = Poll, fds = 0x7f4deaa95c18, nfds = 1, timeout = -1 }
[2021-10-20T05:37:54.405Z][TRACE][T1246][#7][··Sendto] Syscall { num = Sendto, fd = 10, base = 0x7f4defe01235, len = 13, flags = 0, addr = 0x0, addr_len = 0 }
[2021-10-20T05:37:54.405Z][DEBUG][T1241][#58][····Poll] poll: poll_fds: [PollFd { fd: Some(10), events: IN, revents: Cell { value: (empty) } }], timeout: None
[2021-10-20T05:37:54.405Z][TRACE][T1246][#8][···Close] Syscall { num = Close, fd = 10 }
[2021-10-20T05:37:54.405Z][DEBUG][T1246][#8][···Close] close: fd: 10
[2021-10-20T05:37:54.405Z][ INFO][T1246][#8][···Close] cancel sent
[2021-10-20T05:37:54.405Z][TRACE][T1246][#9][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.405Z][DEBUG][T1246][#9][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.405Z][DEBUG][T1246][#9][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.405Z][DEBUG][T1241][#58][····Poll] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] close fd 499
[2021-10-20T05:37:54.405Z][TRACE][T1241][#59][····Read] Syscall { num = Read, fd = 10, buf = 0x7f4deaa95c20, size = 512 }
[2021-10-20T05:37:54.405Z][DEBUG][T1241][#59][····Read] read: fd: 10
[2021-10-20T05:37:54.405Z][TRACE][T1241][#60][···Wait4] Syscall { num = Wait4, pid = 1246, _exit_status = 0x7f4deaa95c20 }
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.405Z][TRACE][T1241][#61][···Close] Syscall { num = Close, fd = 10 }
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.405Z][DEBUG][T1241][#61][···Close] close: fd: 10
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.405Z][ INFO][T1241][#61][···Close] close fd 500
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.405Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.405Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.405Z][TRACE][T1241][#62][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.405Z][ INFO][T1241][#62][··Socket] open fd 499
[2021-10-20T05:37:54.405Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.405Z][TRACE][T1241][#63][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.405Z][ INFO][T1241][#63][··Socket] open fd 500
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.405Z][TRACE][T1241][#64][····Poll] Syscall { num = Poll, fds = 0x7f4deaa95e10, nfds = 2, timeout = 0 }
[2021-10-20T05:37:54.405Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.405Z][DEBUG][T1241][#64][····Poll] poll: poll_fds: [PollFd { fd: Some(9), events: IN, revents: Cell { value: (empty) } }, PollFd { fd: Some(10), events: IN, revents: Cell { value: (empty) } }], timeout: Some(0ns)
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.405Z][TRACE][T1241][#65][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.405Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.405Z][ INFO][T1241][#65][··Socket] open fd 501
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.405Z][TRACE][T1241][#66][Setsockopt] Syscall { num = Setsockopt, fd = 11, level = 1, optname = 2, optval = 0x7f4deaa95e14, optlen = 4 }
[2021-10-20T05:37:54.405Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.405Z][DEBUG][T1241][#66][Setsockopt] setsockopt: fd: 11, level: 1, optname: 2, optval: 0x7f4deaa95e14, optlen: 4
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.406Z][ INFO][T1241][#66][Setsockopt] fd: 501, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.406Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.406Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.406Z][TRACE][T1241][#67][Getsockopt] Syscall { num = Getsockopt, fd = 11, level = 1, optname = 2, optval = 0x7f4deaa95e18, optlen = 0x7f4deaa95e1c }
[2021-10-20T05:37:54.406Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.406Z][DEBUG][T1241][#67][Getsockopt] getsockopt: fd: 11, level: 1, optname: 2, optval: 0x7f4deaa95e18, optlen: 0x7f4deaa95e1c
[2021-10-20T05:37:54.406Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.406Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.406Z][TRACE][T1241][#68][Getsockopt] Syscall { num = Getsockopt, fd = 11, level = 1, optname = 39, optval = 0x7f4deaa95e18, optlen = 0x7f4deaa95e1c }
[2021-10-20T05:37:54.406Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.406Z][DEBUG][T1241][#68][Getsockopt] getsockopt: fd: 11, level: 1, optname: 39, optval: 0x7f4deaa95e18, optlen: 0x7f4deaa95e1c
[2021-10-20T05:37:54.406Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.406Z][TRACE][T1241][#69][···Close] Syscall { num = Close, fd = 11 }
[2021-10-20T05:37:54.406Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.406Z][DEBUG][T1241][#69][···Close] close: fd: 11
[2021-10-20T05:37:54.406Z][ INFO][T0][#0] close fd 498
[2021-10-20T05:37:54.406Z][ INFO][T1241][#69][···Close] close fd 501
[2021-10-20T05:37:54.406Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.406Z][TRACE][T1241][#70][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.406Z][ INFO][T1241][#70][··Socket] open fd 498
[2021-10-20T05:37:54.406Z][TRACE][T1241][#71][Setsockopt] Syscall { num = Setsockopt, fd = 11, level = 1, optname = 2, optval = 0x7f4deaa95da0, optlen = 4 }
[2021-10-20T05:37:54.406Z][DEBUG][T1241][#71][Setsockopt] setsockopt: fd: 11, level: 1, optname: 2, optval: 0x7f4deaa95da0, optlen: 4
[2021-10-20T05:37:54.406Z][ INFO][T1241][#71][Setsockopt] fd: 498, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.406Z][TRACE][T1241][#72][Getsockopt] Syscall { num = Getsockopt, fd = 11, level = 1, optname = 2, optval = 0x7f4deaa95da0, optlen = 0x7f4deaa95da4 }
[2021-10-20T05:37:54.406Z][DEBUG][T1241][#72][Getsockopt] getsockopt: fd: 11, level: 1, optname: 2, optval: 0x7f4deaa95da0, optlen: 0x7f4deaa95da4
[2021-10-20T05:37:54.406Z][TRACE][T1241][#73][····Bind] Syscall { num = Bind, fd = 11, addr = 0x7f4deaa95db0, addr_len = 16 }
[2021-10-20T05:37:54.406Z][TRACE][T1241][#74][··Listen] Syscall { num = Listen, fd = 11, backlog = 10 }
[2021-10-20T05:37:54.406Z][TRACE][T1241][#75][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e14, path = 0x7f4de9402939, argv = 0x7f4deaa95dc0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.406Z][DEBUG][T1241][#75][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8806"], envp: [], fdop: []
[2021-10-20T05:37:54.406Z][DEBUG][T1241][#75][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.406Z][DEBUG][T1241][#75][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.410Z][DEBUG][T1241][#75][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.410Z][DEBUG][T1241][#75][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.410Z][ INFO][T1241][#75][SpawnMusl] Process created: elf = /bin/client, pid = 1247
[2021-10-20T05:37:54.410Z][TRACE][T1241][#76][··Accept] Syscall { num = Accept, fd = 11, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.410Z][DEBUG][T1247][#0] Thread #1247 is executed as task #1247
[2021-10-20T05:37:54.410Z][TRACE][T1247][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.410Z][DEBUG][T1247][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.410Z][TRACE][T1247][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.410Z][DEBUG][T1247][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.410Z][TRACE][T1247][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.410Z][DEBUG][T1247][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.410Z][ WARN][T1247][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.410Z][TRACE][T1247][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.410Z][DEBUG][T1247][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.410Z][ WARN][T1247][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.411Z][TRACE][T1247][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.411Z][ INFO][T1247][#5][··Socket] open fd 501
[2021-10-20T05:37:54.411Z][TRACE][T1247][#6][·Connect] Syscall { num = Connect, fd = 12, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] Accept success: 502
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, 502
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.411Z][TRACE][T1241][#77][···Close] Syscall { num = Close, fd = 11 }
[2021-10-20T05:37:54.411Z][DEBUG][T1241][#77][···Close] close: fd: 11
[2021-10-20T05:37:54.411Z][TRACE][T1241][#78][Getsockname] Syscall { num = Getsockname, fd = 12, addr = 0x7f4deaa95e20, addr_len = 0x7f4deaa95e18 }
[2021-10-20T05:37:54.411Z][TRACE][T1241][#79][Getpeername] Syscall { num = Getpeername, fd = 12, addr = 0x7f4deaa95de0, addr_len = 0x7f4deaa95dd8 }
[2021-10-20T05:37:54.411Z][TRACE][T1241][#80][Getsockopt] Syscall { num = Getsockopt, fd = 12, level = 1, optname = 28, optval = 0x7f4deaa95df0, optlen = 0x7f4deaa95ddc }
[2021-10-20T05:37:54.411Z][DEBUG][T1241][#80][Getsockopt] getsockopt: fd: 12, level: 1, optname: 28, optval: 0x7f4deaa95df0, optlen: 0x7f4deaa95ddc
[2021-10-20T05:37:54.411Z][TRACE][T1241][#81][···Wait4] Syscall { num = Wait4, pid = 1247, _exit_status = 0x7f4deaa95e1c }
[2021-10-20T05:37:54.411Z][TRACE][T1247][#7][··Sendto] Syscall { num = Sendto, fd = 12, base = 0x7f4defe01235, len = 13, flags = 0, addr = 0x0, addr_len = 0 }
[2021-10-20T05:37:54.411Z][TRACE][T1247][#8][···Close] Syscall { num = Close, fd = 12 }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.411Z][DEBUG][T1247][#8][···Close] close: fd: 12
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.411Z][ INFO][T1247][#8][···Close] cancel sent
[2021-10-20T05:37:54.411Z][TRACE][T1247][#9][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] close fd 501
[2021-10-20T05:37:54.411Z][DEBUG][T1247][#9][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.411Z][DEBUG][T1247][#9][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.411Z][DEBUG][T1241][#81][···Wait4] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.411Z][TRACE][T1241][#82][···Close] Syscall { num = Close, fd = 12 }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.411Z][DEBUG][T1241][#82][···Close] close: fd: 12
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][ INFO][T1241][#82][···Close] close fd 502
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.411Z][TRACE][T1241][#83][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][ INFO][T1241][#83][··Socket] open fd 501
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][TRACE][T1241][#84][Getsockname] Syscall { num = Getsockname, fd = 11, addr = 0x7f4deaa95e00, addr_len = 0x7f4deaa95df4 }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][TRACE][T1241][#85][Getpeername] Syscall { num = Getpeername, fd = 11, addr = 0x7f4deaa95e10, addr_len = 0x7f4deaa95df8 }
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][ERROR][T1241][#85][Getpeername] Error = ENOTCONN (#107, Unknown error): the socket is not connected [line = 259, file = crates/host-socket/src/stream/mod.rs]
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.411Z][TRACE][T1241][#86][Getsockopt] Syscall { num = Getsockopt, fd = 11, level = 1, optname = 28, optval = 0x7f4deaa95e20, optlen = 0x7f4deaa95dfc }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][DEBUG][T1241][#86][Getsockopt] getsockopt: fd: 11, level: 1, optname: 28, optval: 0x7f4deaa95e20, optlen: 0x7f4deaa95dfc
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][ERROR][T1241][#86][Getsockopt] Error = ENOTCONN (#107, Unknown error): the socket is not connected [line = 259, file = crates/host-socket/src/stream/mod.rs]
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][TRACE][T1241][#87][···Close] Syscall { num = Close, fd = 11 }
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][DEBUG][T1241][#87][···Close] close: fd: 11
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.411Z][ INFO][T1241][#87][···Close] close fd 501
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][TRACE][T1241][#88][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][ INFO][T1241][#88][··Socket] open fd 501
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][TRACE][T1241][#89][Shutdown] Syscall { num = Shutdown, fd = 11, how = 2 }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.411Z][DEBUG][T1241][#89][Shutdown] shutdown: fd: 11, how: 2
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][ERROR][T1241][#89][Shutdown] Error = ENOTCONN (#107, Unknown error): the socket is not connected [line = 303, file = crates/host-socket/src/stream/mod.rs]
[2021-10-20T05:37:54.412Z][ INFO][T0][#0] close fd 498
[2021-10-20T05:37:54.412Z][TRACE][T1241][#90][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.412Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.412Z][ INFO][T1241][#90][··Socket] open fd 498
[2021-10-20T05:37:54.412Z][TRACE][T1241][#91][Setsockopt] Syscall { num = Setsockopt, fd = 12, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 4 }
[2021-10-20T05:37:54.412Z][DEBUG][T1241][#91][Setsockopt] setsockopt: fd: 12, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 4
[2021-10-20T05:37:54.412Z][ INFO][T1241][#91][Setsockopt] fd: 498, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.412Z][TRACE][T1241][#92][Getsockopt] Syscall { num = Getsockopt, fd = 12, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 0x7f4deaa95db4 }
[2021-10-20T05:37:54.412Z][DEBUG][T1241][#92][Getsockopt] getsockopt: fd: 12, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 0x7f4deaa95db4
[2021-10-20T05:37:54.412Z][TRACE][T1241][#93][····Bind] Syscall { num = Bind, fd = 12, addr = 0x7f4deaa95dc0, addr_len = 16 }
[2021-10-20T05:37:54.412Z][TRACE][T1241][#94][··Listen] Syscall { num = Listen, fd = 12, backlog = 10 }
[2021-10-20T05:37:54.412Z][TRACE][T1241][#95][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e28, path = 0x7f4de9402939, argv = 0x7f4deaa95dd0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.412Z][DEBUG][T1241][#95][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8807"], envp: [], fdop: []
[2021-10-20T05:37:54.412Z][DEBUG][T1241][#95][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.412Z][DEBUG][T1241][#95][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.416Z][DEBUG][T1241][#95][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.416Z][DEBUG][T1241][#95][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.416Z][ INFO][T1241][#95][SpawnMusl] Process created: elf = /bin/client, pid = 1248
[2021-10-20T05:37:54.416Z][DEBUG][T1248][#0] Thread #1248 is executed as task #1248
[2021-10-20T05:37:54.416Z][TRACE][T1241][#96][··Accept] Syscall { num = Accept, fd = 12, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.416Z][TRACE][T1248][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.416Z][DEBUG][T1248][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.416Z][TRACE][T1248][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.416Z][DEBUG][T1248][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.416Z][TRACE][T1248][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.416Z][DEBUG][T1248][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.416Z][ WARN][T1248][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.416Z][TRACE][T1248][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.416Z][DEBUG][T1248][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.416Z][ WARN][T1248][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.416Z][TRACE][T1248][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.416Z][ INFO][T1248][#5][··Socket] open fd 502
[2021-10-20T05:37:54.416Z][TRACE][T1248][#6][·Connect] Syscall { num = Connect, fd = 13, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.416Z][ INFO][T0][#0] Accept success: 503
[2021-10-20T05:37:54.416Z][ INFO][T0][#0] io-uring normal complete, 503
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.417Z][TRACE][T1241][#97][···Close] Syscall { num = Close, fd = 12 }
[2021-10-20T05:37:54.417Z][DEBUG][T1241][#97][···Close] close: fd: 12
[2021-10-20T05:37:54.417Z][TRACE][T1241][#98][Shutdown] Syscall { num = Shutdown, fd = 13, how = 2 }
[2021-10-20T05:37:54.417Z][DEBUG][T1241][#98][Shutdown] shutdown: fd: 13, how: 2
[2021-10-20T05:37:54.417Z][TRACE][T1248][#7][··Sendto] Syscall { num = Sendto, fd = 13, base = 0x7f4defe01235, len = 13, flags = 0, addr = 0x0, addr_len = 0 }
[2021-10-20T05:37:54.417Z][TRACE][T1241][#99][···Wait4] Syscall { num = Wait4, pid = 1248, _exit_status = 0x7f4deaa95e2c }
[2021-10-20T05:37:54.417Z][TRACE][T1248][#8][···Close] Syscall { num = Close, fd = 13 }
[2021-10-20T05:37:54.417Z][DEBUG][T1248][#8][···Close] close: fd: 13
[2021-10-20T05:37:54.417Z][ INFO][T1248][#8][···Close] cancel sent
[2021-10-20T05:37:54.417Z][TRACE][T1248][#9][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.417Z][DEBUG][T1248][#9][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.417Z][DEBUG][T1248][#9][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.417Z][DEBUG][T1241][#99][···Wait4] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][TRACE][T1241][#100][···Close] Syscall { num = Close, fd = 13 }
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][DEBUG][T1241][#100][···Close] close: fd: 13
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][ INFO][T1241][#100][···Close] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][TRACE][T1241][#101][··Writev] Syscall { num = Writev, fd = 1, iov = 0x7f4deaa95dd0, count = 2 }
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][DEBUG][T1241][#101][··Writev] writev: fd: 1
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
func test_send_recv - [OK]
func test_sendmsg_recvmsg - [OK]
func test_sendmsg_recvmsg_connectionless - [OK]
func test_poll - [OK]
func test_poll_events_unchanged - [OK]
func test_sockopt - [OK]
[socket with bind] address: 127.0.0.1
[socket with bind] port: 8806
Peer address: 127.0.0.1
Peer port: 34916
func test_getname - [OK]
[socket without bind] address: 0.0.0.0
[socket without bind] port: 0
func test_getname_without_bind - [OK]
func test_shutdown - [OK]
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][TRACE][T1241][#102][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][DEBUG][T1241][#102][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][DEBUG][T1241][#102][ExitGroup] futex_wake_bitset addr: 0x7f4de9c95364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][ INFO] close fd 494
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][ INFO] close fd 495
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] close fd 503
[2021-10-20T05:37:54.417Z][ INFO] close fd 496
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] close fd 502
[2021-10-20T05:37:54.417Z][ INFO] close fd 499
[2021-10-20T05:37:54.417Z][ INFO] close fd 500
[2021-10-20T05:37:54.417Z][ INFO] close fd 501
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -2
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] close fd 493
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.418Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.418Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.418Z][ INFO][T0][#0] close fd 497
[2021-10-20T05:37:54.418Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.418Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.418Z][ INFO][T0][#0] close fd 26
[2021-10-20T05:37:54.418Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.418Z][ INFO][T0][#0] io-uring cancel complete, 0
PASS
RUN TEST => server
[2021-10-20T05:37:54.491Z][TRACE] env_checked from env untrusted: []
[2021-10-20T05:37:54.492Z][TRACE] env_merged = ["OCCLUM=yes", "STABLE=yes", "OVERRIDE=N"] (default env and untrusted env)
[2021-10-20T05:37:54.492Z][DEBUG] lookup_inode: cwd: "/", path: "/bin/server"
[2021-10-20T05:37:54.492Z][DEBUG] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.509Z][DEBUG] allocated rsrv addr is 0x7f4de93cf000, len is 0x6896000
[2021-10-20T05:37:54.510Z][ INFO] Process created: elf = /bin/server, pid = 1249
[2021-10-20T05:37:54.510Z][DEBUG][T1249][#0] Thread #1249 is executed as task #1249
[2021-10-20T05:37:54.510Z][TRACE][T1249][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4de9c94d88 }
[2021-10-20T05:37:54.510Z][DEBUG][T1249][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4de9c94d88
[2021-10-20T05:37:54.510Z][TRACE][T1249][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4de9c95364 }
[2021-10-20T05:37:54.510Z][DEBUG][T1249][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4de9c95364
[2021-10-20T05:37:54.510Z][TRACE][T1249][#3][Mprotect] Syscall { num = Mprotect, addr = 139972611477504, len = 4096, prot = 1 }
[2021-10-20T05:37:54.510Z][DEBUG][T1249][#3][Mprotect] mprotect: addr: 0x7f4de9c91000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.510Z][ WARN][T1249][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.510Z][TRACE][T1249][#4][Mprotect] Syscall { num = Mprotect, addr = 139972604604416, len = 4096, prot = 1 }
[2021-10-20T05:37:54.510Z][DEBUG][T1249][#4][Mprotect] mprotect: addr: 0x7f4de9603000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.510Z][ WARN][T1249][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.510Z][TRACE][T1249][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.511Z][ INFO][T1249][#5][··Socket] open fd 26
[2021-10-20T05:37:54.511Z][TRACE][T1249][#6][Setsockopt] Syscall { num = Setsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 4 }
[2021-10-20T05:37:54.511Z][DEBUG][T1249][#6][Setsockopt] setsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 4
[2021-10-20T05:37:54.511Z][ INFO][T1249][#6][Setsockopt] fd: 26, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.511Z][TRACE][T1249][#7][Getsockopt] Syscall { num = Getsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 0x7f4deaa95db4 }
[2021-10-20T05:37:54.511Z][DEBUG][T1249][#7][Getsockopt] getsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 0x7f4deaa95db4
[2021-10-20T05:37:54.511Z][TRACE][T1249][#8][····Bind] Syscall { num = Bind, fd = 3, addr = 0x7f4deaa95dc0, addr_len = 16 }
[2021-10-20T05:37:54.511Z][TRACE][T1249][#9][··Listen] Syscall { num = Listen, fd = 3, backlog = 10 }
[2021-10-20T05:37:54.511Z][TRACE][T1249][#10][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e28, path = 0x7f4de9402939, argv = 0x7f4deaa95dd0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.511Z][DEBUG][T1249][#10][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8800"], envp: [], fdop: []
[2021-10-20T05:37:54.511Z][DEBUG][T1249][#10][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.511Z][DEBUG][T1249][#10][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.515Z][DEBUG][T1249][#10][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.515Z][DEBUG][T1249][#10][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.515Z][ INFO][T1249][#10][SpawnMusl] Process created: elf = /bin/client, pid = 1250
[2021-10-20T05:37:54.515Z][TRACE][T1249][#11][··Accept] Syscall { num = Accept, fd = 3, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.515Z][DEBUG][T1250][#0] Thread #1250 is executed as task #1250
[2021-10-20T05:37:54.515Z][TRACE][T1250][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.515Z][DEBUG][T1250][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.515Z][TRACE][T1250][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.515Z][DEBUG][T1250][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.515Z][TRACE][T1250][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.515Z][DEBUG][T1250][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.515Z][ WARN][T1250][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.516Z][TRACE][T1250][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.516Z][DEBUG][T1250][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.516Z][ WARN][T1250][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.516Z][TRACE][T1250][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.516Z][ INFO][T1250][#5][··Socket] open fd 496
[2021-10-20T05:37:54.516Z][TRACE][T1250][#6][·Connect] Syscall { num = Connect, fd = 4, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] Accept success: 497
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, 497
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.516Z][TRACE][T1249][#12][···Close] Syscall { num = Close, fd = 3 }
[2021-10-20T05:37:54.516Z][DEBUG][T1249][#12][···Close] close: fd: 3
[2021-10-20T05:37:54.516Z][TRACE][T1249][#13][···Write] Syscall { num = Write, fd = 4, buf = 0x7f4de9402953, size = 26 }
[2021-10-20T05:37:54.516Z][DEBUG][T1249][#13][···Write] write: fd: 4
[2021-10-20T05:37:54.516Z][TRACE][T1250][#7][····Read] Syscall { num = Read, fd = 4, buf = 0x7f4df1495de0, size = 100 }
[2021-10-20T05:37:54.516Z][TRACE][T1249][#14][····Read] Syscall { num = Read, fd = 4, buf = 0x7f4deaa95df0, size = 4 }
[2021-10-20T05:37:54.516Z][DEBUG][T1250][#7][····Read] read: fd: 4
[2021-10-20T05:37:54.516Z][DEBUG][T1249][#14][····Read] read: fd: 4
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.516Z][TRACE][T1250][#8][···Write] Syscall { num = Write, fd = 4, buf = 0x7f4defe01231, size = 4 }
[2021-10-20T05:37:54.516Z][DEBUG][T1250][#8][···Write] write: fd: 4
[2021-10-20T05:37:54.516Z][TRACE][T1250][#9][···Close] Syscall { num = Close, fd = 4 }
[2021-10-20T05:37:54.516Z][DEBUG][T1250][#9][···Close] close: fd: 4
[2021-10-20T05:37:54.516Z][ INFO][T1250][#9][···Close] cancel sent
[2021-10-20T05:37:54.516Z][TRACE][T1250][#10][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.516Z][DEBUG][T1250][#10][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.516Z][DEBUG][T1250][#10][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.516Z][DEBUG][T1249][#14][····Read] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] close fd 496
[2021-10-20T05:37:54.516Z][TRACE][T1249][#15][···Wait4] Syscall { num = Wait4, pid = 1250, _exit_status = 0x7f4deaa95e2c }
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.516Z][ERROR][T1249][#16] Error = EINVAL (#22, Invalid argument): Invalid system call number (16) [line = 674, file = src/entry/syscall.rs]
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.516Z][TRACE][T1249][#17][··Writev] Syscall { num = Writev, fd = 1, iov = 0x7f4deaa95a40, count = 2 }
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.516Z][DEBUG][T1249][#17][··Writev] writev: fd: 1
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring cancel complete, -114
func test_read_write - [OK]
[2021-10-20T05:37:54.516Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.516Z][TRACE][T1249][#18][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.516Z][ INFO][T1249][#18][··Socket] open fd 496
[2021-10-20T05:37:54.516Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.516Z][TRACE][T1249][#19][Setsockopt] Syscall { num = Setsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 4 }
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.516Z][DEBUG][T1249][#19][Setsockopt] setsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 4
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.516Z][ INFO][T1249][#19][Setsockopt] fd: 496, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.516Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.516Z][TRACE][T1249][#20][Getsockopt] Syscall { num = Getsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 0x7f4deaa95db4 }
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.516Z][DEBUG][T1249][#20][Getsockopt] getsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 0x7f4deaa95db4
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.516Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.516Z][TRACE][T1249][#21][····Bind] Syscall { num = Bind, fd = 3, addr = 0x7f4deaa95dc0, addr_len = 16 }
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.516Z][TRACE][T1249][#22][··Listen] Syscall { num = Listen, fd = 3, backlog = 10 }
[2021-10-20T05:37:54.516Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.516Z][TRACE][T1249][#23][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e2c, path = 0x7f4de9402939, argv = 0x7f4deaa95dd0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.517Z][DEBUG][T1249][#23][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8801"], envp: [], fdop: []
[2021-10-20T05:37:54.517Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.517Z][DEBUG][T1249][#23][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.517Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.517Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.517Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.517Z][DEBUG][T1249][#23][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.517Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.517Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.517Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.517Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.517Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.517Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.517Z][ INFO][T0][#0] close fd 26
[2021-10-20T05:37:54.517Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.521Z][DEBUG][T1249][#23][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.521Z][DEBUG][T1249][#23][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.521Z][ INFO][T1249][#23][SpawnMusl] Process created: elf = /bin/client, pid = 1251
[2021-10-20T05:37:54.521Z][TRACE][T1249][#24][··Accept] Syscall { num = Accept, fd = 3, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.521Z][DEBUG][T1251][#0] Thread #1251 is executed as task #1251
[2021-10-20T05:37:54.521Z][TRACE][T1251][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.521Z][DEBUG][T1251][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.521Z][TRACE][T1251][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.521Z][DEBUG][T1251][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.521Z][TRACE][T1251][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.521Z][DEBUG][T1251][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.521Z][ WARN][T1251][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.521Z][TRACE][T1251][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.521Z][DEBUG][T1251][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.521Z][ WARN][T1251][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.521Z][TRACE][T1251][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.521Z][ INFO][T1251][#5][··Socket] open fd 26
[2021-10-20T05:37:54.521Z][TRACE][T1251][#6][·Connect] Syscall { num = Connect, fd = 5, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.521Z][ INFO][T0][#0] Accept success: 499
[2021-10-20T05:37:54.521Z][ INFO][T0][#0] io-uring normal complete, 499
[2021-10-20T05:37:54.521Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.521Z][TRACE][T1249][#25][···Close] Syscall { num = Close, fd = 3 }
[2021-10-20T05:37:54.521Z][DEBUG][T1249][#25][···Close] close: fd: 3
[2021-10-20T05:37:54.521Z][TRACE][T1249][#26][···Write] Syscall { num = Write, fd = 5, buf = 0x7f4de9402953, size = 26 }
[2021-10-20T05:37:54.521Z][DEBUG][T1249][#26][···Write] write: fd: 5
[2021-10-20T05:37:54.521Z][TRACE][T1249][#27][····Read] Syscall { num = Read, fd = 5, buf = 0x7f4deaa95df0, size = 4 }
[2021-10-20T05:37:54.521Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.521Z][DEBUG][T1249][#27][····Read] read: fd: 5
[2021-10-20T05:37:54.521Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.521Z][TRACE][T1251][#7][····Read] Syscall { num = Read, fd = 5, buf = 0x7f4df1495de0, size = 100 }
[2021-10-20T05:37:54.522Z][DEBUG][T1251][#7][····Read] read: fd: 5
[2021-10-20T05:37:54.522Z][TRACE][T1251][#8][···Write] Syscall { num = Write, fd = 5, buf = 0x7f4defe01231, size = 4 }
[2021-10-20T05:37:54.522Z][DEBUG][T1251][#8][···Write] write: fd: 5
[2021-10-20T05:37:54.522Z][TRACE][T1251][#9][··Sendto] Syscall { num = Sendto, fd = 5, base = 0x7f4df1495de0, len = 26, flags = 0, addr = 0x0, addr_len = 0 }
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.522Z][TRACE][T1251][#10][···Close] Syscall { num = Close, fd = 5 }
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.522Z][DEBUG][T1251][#10][···Close] close: fd: 5
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.522Z][ INFO][T1251][#10][···Close] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] close fd 26
[2021-10-20T05:37:54.522Z][TRACE][T1251][#11][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.522Z][DEBUG][T1251][#11][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.522Z][DEBUG][T1251][#11][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.522Z][DEBUG][T1249][#27][····Read] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.522Z][TRACE][T1249][#28][Recvfrom] Syscall { num = Recvfrom, fd = 5, base = 0x7f4deaa95df0, len = 32, flags = 0, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.522Z][TRACE][T1249][#29][···Wait4] Syscall { num = Wait4, pid = 1251, _exit_status = 0x7f4deaa95e0c }
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.522Z][TRACE][T1249][#30][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.522Z][ INFO][T1249][#30][··Socket] open fd 26
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][TRACE][T1249][#31][Setsockopt] Syscall { num = Setsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 4 }
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][DEBUG][T1249][#31][Setsockopt] setsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 4
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.522Z][ INFO][T1249][#31][Setsockopt] fd: 26, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][TRACE][T1249][#32][Getsockopt] Syscall { num = Getsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 0x7f4deaa95db4 }
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.522Z][DEBUG][T1249][#32][Getsockopt] getsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 0x7f4deaa95db4
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][TRACE][T1249][#33][····Bind] Syscall { num = Bind, fd = 3, addr = 0x7f4deaa95dc0, addr_len = 16 }
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.522Z][TRACE][T1249][#34][··Listen] Syscall { num = Listen, fd = 3, backlog = 10 }
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][TRACE][T1249][#35][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e2c, path = 0x7f4de9402939, argv = 0x7f4deaa95dd0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.522Z][DEBUG][T1249][#35][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8802"], envp: [], fdop: []
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][DEBUG][T1249][#35][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][DEBUG][T1249][#35][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] close fd 496
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.526Z][DEBUG][T1249][#35][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.526Z][DEBUG][T1249][#35][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.527Z][ INFO][T1249][#35][SpawnMusl] Process created: elf = /bin/client, pid = 1252
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#0] Thread #1252 is executed as task #1252
[2021-10-20T05:37:54.527Z][TRACE][T1249][#36][··Accept] Syscall { num = Accept, fd = 3, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.527Z][TRACE][T1252][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.527Z][TRACE][T1252][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.527Z][TRACE][T1252][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.527Z][ WARN][T1252][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.527Z][TRACE][T1252][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.527Z][ WARN][T1252][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.527Z][TRACE][T1252][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.527Z][ INFO][T1252][#5][··Socket] open fd 496
[2021-10-20T05:37:54.527Z][TRACE][T1252][#6][·Connect] Syscall { num = Connect, fd = 6, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] Accept success: 500
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, 500
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.527Z][TRACE][T1249][#37][···Close] Syscall { num = Close, fd = 3 }
[2021-10-20T05:37:54.527Z][DEBUG][T1249][#37][···Close] close: fd: 3
[2021-10-20T05:37:54.527Z][TRACE][T1249][#38][···Write] Syscall { num = Write, fd = 6, buf = 0x7f4de9402953, size = 26 }
[2021-10-20T05:37:54.527Z][DEBUG][T1249][#38][···Write] write: fd: 6
[2021-10-20T05:37:54.527Z][TRACE][T1252][#7][····Read] Syscall { num = Read, fd = 6, buf = 0x7f4df1495de0, size = 100 }
[2021-10-20T05:37:54.527Z][TRACE][T1249][#39][····Read] Syscall { num = Read, fd = 6, buf = 0x7f4deaa95df0, size = 4 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#7][····Read] read: fd: 6
[2021-10-20T05:37:54.527Z][DEBUG][T1249][#39][····Read] read: fd: 6
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.527Z][TRACE][T1252][#8][···Write] Syscall { num = Write, fd = 6, buf = 0x7f4defe01231, size = 4 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#8][···Write] write: fd: 6
[2021-10-20T05:37:54.527Z][TRACE][T1252][#9][·Sendmsg] Syscall { num = Sendmsg, fd = 6, msg_ptr = 0x7f4df1495908, flags = 0 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#9][·Sendmsg] sendmsg: fd: 6, msg: 0x7f4df1495908, flags: 0x0
[2021-10-20T05:37:54.527Z][TRACE][T1252][#10][·Sendmsg] Syscall { num = Sendmsg, fd = 6, msg_ptr = 0x7f4df1495908, flags = 0 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#10][·Sendmsg] sendmsg: fd: 6, msg: 0x7f4df1495908, flags: 0x0
[2021-10-20T05:37:54.527Z][TRACE][T1252][#11][···Close] Syscall { num = Close, fd = 6 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#11][···Close] close: fd: 6
[2021-10-20T05:37:54.527Z][ INFO][T1252][#11][···Close] cancel sent
[2021-10-20T05:37:54.527Z][TRACE][T1252][#12][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#12][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#12][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.527Z][DEBUG][T1249][#39][····Read] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.527Z][TRACE][T1249][#40][·Recvmsg] Syscall { num = Recvmsg, fd = 6, msg_mut_ptr = 0x7f4deaa95d08, flags = 0 }
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.527Z][DEBUG][T1249][#40][·Recvmsg] recvmsg: fd: 6, msg: 0x7f4deaa95d08, flags: 0x0
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] close fd 496
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.527Z][TRACE][T1249][#41][·Recvmsg] Syscall { num = Recvmsg, fd = 6, msg_mut_ptr = 0x7f4deaa95d08, flags = 0 }
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.528Z][DEBUG][T1249][#41][·Recvmsg] recvmsg: fd: 6, msg: 0x7f4deaa95d08, flags: 0x0
[2021-10-20T05:37:54.528Z][TRACE][T1249][#42][···Wait4] Syscall { num = Wait4, pid = 1252, _exit_status = 0x7f4deaa95e0c }
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.528Z][TRACE][T1249][#43][Socketpair] Syscall { num = Socketpair, domain = 1, socket_type = 1, protocol = 0, sv = 0x7f4deaa95de0 }
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][DEBUG][T1249][#43][Socketpair] socketpair: (3, 7)
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.528Z][TRACE][T1249][#44][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95ddc, path = 0x7f4de9402939, argv = 0x7f4deaa95df0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][DEBUG][T1249][#44][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "NULL", "8803", "7"], envp: [], fdop: []
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][DEBUG][T1249][#44][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][DEBUG][T1249][#44][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] close fd 26
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.532Z][DEBUG][T1249][#44][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.532Z][DEBUG][T1249][#44][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.532Z][ INFO][T1249][#44][SpawnMusl] Process created: elf = /bin/client, pid = 1253
[2021-10-20T05:37:54.532Z][TRACE][T1249][#45][··Socket] Syscall { num = Socket, domain = 2, socket_type = 2, protocol = 0 }
[2021-10-20T05:37:54.532Z][ INFO][T1249][#45][··Socket] open fd 26
[2021-10-20T05:37:54.533Z][TRACE][T1249][#46][····Bind] Syscall { num = Bind, fd = 8, addr = 0x7f4deaa95d40, addr_len = 16 }
[2021-10-20T05:37:54.533Z][TRACE][T1249][#47][·Recvmsg] Syscall { num = Recvmsg, fd = 8, msg_mut_ptr = 0x7f4deaa958f8, flags = 0 }
[2021-10-20T05:37:54.533Z][DEBUG][T1249][#47][·Recvmsg] recvmsg: fd: 8, msg: 0x7f4deaa958f8, flags: 0x0
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#0] Thread #1253 is executed as task #1253
[2021-10-20T05:37:54.533Z][TRACE][T1253][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.533Z][TRACE][T1253][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.533Z][TRACE][T1253][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.533Z][ WARN][T1253][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.533Z][TRACE][T1253][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.533Z][ WARN][T1253][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.533Z][TRACE][T1253][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 2, protocol = 0 }
[2021-10-20T05:37:54.533Z][ INFO][T1253][#5][··Socket] open fd 502
[2021-10-20T05:37:54.533Z][TRACE][T1253][#6][·Sendmsg] Syscall { num = Sendmsg, fd = 8, msg_ptr = 0x7f4df14958e8, flags = 0 }
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#6][·Sendmsg] sendmsg: fd: 8, msg: 0x7f4df14958e8, flags: 0x0
[2021-10-20T05:37:54.533Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.533Z][TRACE][T1253][#7][····Read] Syscall { num = Read, fd = 7, buf = 0x7f4df1495dd0, size = 4 }
[2021-10-20T05:37:54.533Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#7][····Read] read: fd: 7
[2021-10-20T05:37:54.533Z][TRACE][T1249][#48][···Write] Syscall { num = Write, fd = 3, buf = 0x7f4de94029b0, size = 4 }
[2021-10-20T05:37:54.533Z][DEBUG][T1249][#48][···Write] write: fd: 3
[2021-10-20T05:37:54.533Z][TRACE][T1249][#49][···Wait4] Syscall { num = Wait4, pid = 1253, _exit_status = 0x7f4deaa95dbc }
[2021-10-20T05:37:54.533Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.533Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.533Z][TRACE][T1253][#8][···Close] Syscall { num = Close, fd = 0 }
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#8][···Close] close: fd: 0
[2021-10-20T05:37:54.533Z][TRACE][T1253][#9][ExitGroup] Syscall { num = ExitGroup, exit_status = 13 }
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#9][ExitGroup] exit_group: 13
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#9][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.533Z][ INFO][T1249][#49][···Wait4] cancel sent
[2021-10-20T05:37:54.533Z][ INFO][T0][#0] close fd 502
[2021-10-20T05:37:54.533Z][DEBUG][T1249][#49][···Wait4] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.533Z][TRACE][T1249][#50][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.533Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.533Z][ INFO][T1249][#50][··Socket] open fd 502
[2021-10-20T05:37:54.533Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.533Z][TRACE][T1249][#51][Setsockopt] Syscall { num = Setsockopt, fd = 9, level = 1, optname = 2, optval = 0x7f4deaa95ba0, optlen = 4 }
[2021-10-20T05:37:54.533Z][DEBUG][T1249][#51][Setsockopt] setsockopt: fd: 9, level: 1, optname: 2, optval: 0x7f4deaa95ba0, optlen: 4
[2021-10-20T05:37:54.533Z][ INFO][T1249][#51][Setsockopt] fd: 502, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.533Z][TRACE][T1249][#52][Getsockopt] Syscall { num = Getsockopt, fd = 9, level = 1, optname = 2, optval = 0x7f4deaa95ba0, optlen = 0x7f4deaa95ba4 }
[2021-10-20T05:37:54.533Z][DEBUG][T1249][#52][Getsockopt] getsockopt: fd: 9, level: 1, optname: 2, optval: 0x7f4deaa95ba0, optlen: 0x7f4deaa95ba4
[2021-10-20T05:37:54.533Z][TRACE][T1249][#53][····Bind] Syscall { num = Bind, fd = 9, addr = 0x7f4deaa95bb0, addr_len = 16 }
[2021-10-20T05:37:54.533Z][TRACE][T1249][#54][··Listen] Syscall { num = Listen, fd = 9, backlog = 10 }
[2021-10-20T05:37:54.533Z][TRACE][T1249][#55][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95c14, path = 0x7f4de9402939, argv = 0x7f4deaa95bc0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.533Z][DEBUG][T1249][#55][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8805"], envp: [], fdop: []
[2021-10-20T05:37:54.533Z][DEBUG][T1249][#55][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.533Z][DEBUG][T1249][#55][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.537Z][DEBUG][T1249][#55][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.537Z][DEBUG][T1249][#55][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.538Z][ INFO][T1249][#55][SpawnMusl] Process created: elf = /bin/client, pid = 1254
[2021-10-20T05:37:54.538Z][DEBUG][T1254][#0] Thread #1254 is executed as task #1254
[2021-10-20T05:37:54.538Z][TRACE][T1249][#56][··Accept] Syscall { num = Accept, fd = 9, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.538Z][TRACE][T1254][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.538Z][DEBUG][T1254][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.538Z][TRACE][T1254][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.538Z][DEBUG][T1254][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.538Z][TRACE][T1254][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.538Z][DEBUG][T1254][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.538Z][ WARN][T1254][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.538Z][TRACE][T1254][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.538Z][DEBUG][T1254][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.538Z][ WARN][T1254][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.538Z][TRACE][T1254][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.538Z][ INFO][T1254][#5][··Socket] open fd 503
[2021-10-20T05:37:54.538Z][TRACE][T1254][#6][·Connect] Syscall { num = Connect, fd = 10, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] Accept success: 504
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] io-uring normal complete, 504
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.538Z][TRACE][T1249][#57][···Close] Syscall { num = Close, fd = 9 }
[2021-10-20T05:37:54.538Z][DEBUG][T1249][#57][···Close] close: fd: 9
[2021-10-20T05:37:54.538Z][TRACE][T1249][#58][····Poll] Syscall { num = Poll, fds = 0x7f4deaa95c18, nfds = 1, timeout = -1 }
[2021-10-20T05:37:54.538Z][TRACE][T1254][#7][··Sendto] Syscall { num = Sendto, fd = 10, base = 0x7f4defe01235, len = 13, flags = 0, addr = 0x0, addr_len = 0 }
[2021-10-20T05:37:54.538Z][DEBUG][T1249][#58][····Poll] poll: poll_fds: [PollFd { fd: Some(10), events: IN, revents: Cell { value: (empty) } }], timeout: None
[2021-10-20T05:37:54.538Z][TRACE][T1254][#8][···Close] Syscall { num = Close, fd = 10 }
[2021-10-20T05:37:54.538Z][DEBUG][T1254][#8][···Close] close: fd: 10
[2021-10-20T05:37:54.538Z][ INFO][T1254][#8][···Close] cancel sent
[2021-10-20T05:37:54.538Z][TRACE][T1254][#9][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.538Z][DEBUG][T1254][#9][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.538Z][DEBUG][T1254][#9][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.538Z][DEBUG][T1249][#58][····Poll] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] close fd 503
[2021-10-20T05:37:54.538Z][TRACE][T1249][#59][····Read] Syscall { num = Read, fd = 10, buf = 0x7f4deaa95c20, size = 512 }
[2021-10-20T05:37:54.538Z][DEBUG][T1249][#59][····Read] read: fd: 10
[2021-10-20T05:37:54.538Z][TRACE][T1249][#60][···Wait4] Syscall { num = Wait4, pid = 1254, _exit_status = 0x7f4deaa95c20 }
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.539Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.539Z][TRACE][T1249][#61][···Close] Syscall { num = Close, fd = 10 }
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#61][···Close] close: fd: 10
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.539Z][ INFO][T1249][#61][···Close] close fd 504
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.539Z][TRACE][T1249][#62][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][ INFO][T1249][#62][··Socket] open fd 503
[2021-10-20T05:37:54.539Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.539Z][TRACE][T1249][#63][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.539Z][ INFO][T1249][#63][··Socket] open fd 504
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][TRACE][T1249][#64][····Poll] Syscall { num = Poll, fds = 0x7f4deaa95e10, nfds = 2, timeout = 0 }
[2021-10-20T05:37:54.539Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#64][····Poll] poll: poll_fds: [PollFd { fd: Some(9), events: IN, revents: Cell { value: (empty) } }, PollFd { fd: Some(10), events: IN, revents: Cell { value: (empty) } }], timeout: Some(0ns)
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][TRACE][T1249][#65][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.539Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.539Z][ INFO][T1249][#65][··Socket] open fd 505
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.539Z][TRACE][T1249][#66][Setsockopt] Syscall { num = Setsockopt, fd = 11, level = 1, optname = 2, optval = 0x7f4deaa95e14, optlen = 4 }
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#66][Setsockopt] setsockopt: fd: 11, level: 1, optname: 2, optval: 0x7f4deaa95e14, optlen: 4
[2021-10-20T05:37:54.539Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.539Z][ INFO][T1249][#66][Setsockopt] fd: 505, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][TRACE][T1249][#67][Getsockopt] Syscall { num = Getsockopt, fd = 11, level = 1, optname = 2, optval = 0x7f4deaa95e18, optlen = 0x7f4deaa95e1c }
[2021-10-20T05:37:54.539Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#67][Getsockopt] getsockopt: fd: 11, level: 1, optname: 2, optval: 0x7f4deaa95e18, optlen: 0x7f4deaa95e1c
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][TRACE][T1249][#68][Getsockopt] Syscall { num = Getsockopt, fd = 11, level = 1, optname = 39, optval = 0x7f4deaa95e18, optlen = 0x7f4deaa95e1c }
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#68][Getsockopt] getsockopt: fd: 11, level: 1, optname: 39, optval: 0x7f4deaa95e18, optlen: 0x7f4deaa95e1c
[2021-10-20T05:37:54.539Z][TRACE][T1249][#69][···Close] Syscall { num = Close, fd = 11 }
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#69][···Close] close: fd: 11
[2021-10-20T05:37:54.539Z][ INFO][T1249][#69][···Close] close fd 505
[2021-10-20T05:37:54.539Z][TRACE][T1249][#70][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.539Z][ INFO][T1249][#70][··Socket] open fd 505
[2021-10-20T05:37:54.539Z][TRACE][T1249][#71][Setsockopt] Syscall { num = Setsockopt, fd = 11, level = 1, optname = 2, optval = 0x7f4deaa95da0, optlen = 4 }
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#71][Setsockopt] setsockopt: fd: 11, level: 1, optname: 2, optval: 0x7f4deaa95da0, optlen: 4
[2021-10-20T05:37:54.539Z][ INFO][T1249][#71][Setsockopt] fd: 505, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.539Z][TRACE][T1249][#72][Getsockopt] Syscall { num = Getsockopt, fd = 11, level = 1, optname = 2, optval = 0x7f4deaa95da0, optlen = 0x7f4deaa95da4 }
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#72][Getsockopt] getsockopt: fd: 11, level: 1, optname: 2, optval: 0x7f4deaa95da0, optlen: 0x7f4deaa95da4
[2021-10-20T05:37:54.539Z][TRACE][T1249][#73][····Bind] Syscall { num = Bind, fd = 11, addr = 0x7f4deaa95db0, addr_len = 16 }
[2021-10-20T05:37:54.539Z][TRACE][T1249][#74][··Listen] Syscall { num = Listen, fd = 11, backlog = 10 }
[2021-10-20T05:37:54.539Z][TRACE][T1249][#75][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e14, path = 0x7f4de9402939, argv = 0x7f4deaa95dc0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#75][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8806"], envp: [], fdop: []
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#75][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#75][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.543Z][DEBUG][T1249][#75][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.543Z][DEBUG][T1249][#75][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.544Z][ INFO][T1249][#75][SpawnMusl] Process created: elf = /bin/client, pid = 1255
[2021-10-20T05:37:54.544Z][TRACE][T1249][#76][··Accept] Syscall { num = Accept, fd = 11, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.544Z][DEBUG][T1255][#0] Thread #1255 is executed as task #1255
[2021-10-20T05:37:54.544Z][TRACE][T1255][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.544Z][DEBUG][T1255][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.544Z][TRACE][T1255][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.544Z][DEBUG][T1255][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.544Z][TRACE][T1255][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.544Z][DEBUG][T1255][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.544Z][ WARN][T1255][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.544Z][TRACE][T1255][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.544Z][DEBUG][T1255][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.544Z][ WARN][T1255][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.544Z][TRACE][T1255][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.544Z][ INFO][T1255][#5][··Socket] open fd 506
[2021-10-20T05:37:54.544Z][TRACE][T1255][#6][·Connect] Syscall { num = Connect, fd = 12, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] Accept success: 507
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, 507
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.544Z][TRACE][T1249][#77][···Close] Syscall { num = Close, fd = 11 }
[2021-10-20T05:37:54.544Z][DEBUG][T1249][#77][···Close] close: fd: 11
[2021-10-20T05:37:54.544Z][TRACE][T1249][#78][Getsockname] Syscall { num = Getsockname, fd = 12, addr = 0x7f4deaa95e20, addr_len = 0x7f4deaa95e18 }
[2021-10-20T05:37:54.544Z][TRACE][T1249][#79][Getpeername] Syscall { num = Getpeername, fd = 12, addr = 0x7f4deaa95de0, addr_len = 0x7f4deaa95dd8 }
[2021-10-20T05:37:54.544Z][TRACE][T1249][#80][Getsockopt] Syscall { num = Getsockopt, fd = 12, level = 1, optname = 28, optval = 0x7f4deaa95df0, optlen = 0x7f4deaa95ddc }
[2021-10-20T05:37:54.544Z][DEBUG][T1249][#80][Getsockopt] getsockopt: fd: 12, level: 1, optname: 28, optval: 0x7f4deaa95df0, optlen: 0x7f4deaa95ddc
[2021-10-20T05:37:54.544Z][TRACE][T1249][#81][···Wait4] Syscall { num = Wait4, pid = 1255, _exit_status = 0x7f4deaa95e1c }
[2021-10-20T05:37:54.544Z][TRACE][T1255][#7][··Sendto] Syscall { num = Sendto, fd = 12, base = 0x7f4defe01235, len = 13, flags = 0, addr = 0x0, addr_len = 0 }
[2021-10-20T05:37:54.544Z][TRACE][T1255][#8][···Close] Syscall { num = Close, fd = 12 }
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.544Z][DEBUG][T1255][#8][···Close] close: fd: 12
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.544Z][ INFO][T1255][#8][···Close] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] close fd 506
[2021-10-20T05:37:54.544Z][TRACE][T1255][#9][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.544Z][DEBUG][T1255][#9][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.544Z][DEBUG][T1255][#9][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.544Z][DEBUG][T1249][#81][···Wait4] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.544Z][TRACE][T1249][#82][···Close] Syscall { num = Close, fd = 12 }
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.544Z][DEBUG][T1249][#82][···Close] close: fd: 12
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.544Z][ INFO][T1249][#82][···Close] close fd 507
[2021-10-20T05:37:54.544Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.544Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.544Z][TRACE][T1249][#83][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO][T1249][#83][··Socket] open fd 506
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][TRACE][T1249][#84][Getsockname] Syscall { num = Getsockname, fd = 11, addr = 0x7f4deaa95e00, addr_len = 0x7f4deaa95df4 }
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.545Z][TRACE][T1249][#85][Getpeername] Syscall { num = Getpeername, fd = 11, addr = 0x7f4deaa95e10, addr_len = 0x7f4deaa95df8 }
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ERROR][T1249][#85][Getpeername] Error = ENOTCONN (#107, Unknown error): the socket is not connected [line = 259, file = crates/host-socket/src/stream/mod.rs]
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.545Z][TRACE][T1249][#86][Getsockopt] Syscall { num = Getsockopt, fd = 11, level = 1, optname = 28, optval = 0x7f4deaa95e20, optlen = 0x7f4deaa95dfc }
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#86][Getsockopt] getsockopt: fd: 11, level: 1, optname: 28, optval: 0x7f4deaa95e20, optlen: 0x7f4deaa95dfc
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.545Z][ERROR][T1249][#86][Getsockopt] Error = ENOTCONN (#107, Unknown error): the socket is not connected [line = 259, file = crates/host-socket/src/stream/mod.rs]
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.545Z][TRACE][T1249][#87][···Close] Syscall { num = Close, fd = 11 }
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#87][···Close] close: fd: 11
[2021-10-20T05:37:54.545Z][ INFO][T1249][#87][···Close] close fd 506
[2021-10-20T05:37:54.545Z][TRACE][T1249][#88][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.545Z][ INFO][T1249][#88][··Socket] open fd 506
[2021-10-20T05:37:54.545Z][TRACE][T1249][#89][Shutdown] Syscall { num = Shutdown, fd = 11, how = 2 }
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#89][Shutdown] shutdown: fd: 11, how: 2
[2021-10-20T05:37:54.545Z][ERROR][T1249][#89][Shutdown] Error = ENOTCONN (#107, Unknown error): the socket is not connected [line = 303, file = crates/host-socket/src/stream/mod.rs]
[2021-10-20T05:37:54.545Z][TRACE][T1249][#90][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.545Z][ INFO][T1249][#90][··Socket] open fd 507
[2021-10-20T05:37:54.545Z][TRACE][T1249][#91][Setsockopt] Syscall { num = Setsockopt, fd = 12, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 4 }
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#91][Setsockopt] setsockopt: fd: 12, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 4
[2021-10-20T05:37:54.545Z][ INFO][T1249][#91][Setsockopt] fd: 507, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.545Z][TRACE][T1249][#92][Getsockopt] Syscall { num = Getsockopt, fd = 12, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 0x7f4deaa95db4 }
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#92][Getsockopt] getsockopt: fd: 12, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 0x7f4deaa95db4
[2021-10-20T05:37:54.545Z][TRACE][T1249][#93][····Bind] Syscall { num = Bind, fd = 12, addr = 0x7f4deaa95dc0, addr_len = 16 }
[2021-10-20T05:37:54.545Z][ERROR][T1249][#93][····Bind] Error = EADDRINUSE (#98, Unknown error): libc error [line = 13, file = crates/host-socket/src/common/operation.rs]
[2021-10-20T05:37:54.545Z][TRACE][T1249][#94][···Close] Syscall { num = Close, fd = 12 }
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#94][···Close] close: fd: 12
[2021-10-20T05:37:54.545Z][ INFO][T1249][#94][···Close] close fd 507
[2021-10-20T05:37:54.545Z][TRACE][T1249][#95][Shutdown] Syscall { num = Shutdown, fd = -1, how = 2 }
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#95][Shutdown] shutdown: fd: -1, how: 2
[2021-10-20T05:37:54.545Z][ERROR][T1249][#95][Shutdown] Error = EBADF (#9, Bad file number): Invalid file descriptor [line = 100, file = src/fs/file_table.rs]
[2021-10-20T05:37:54.545Z][TRACE][T1249][#96][··Writev] Syscall { num = Writev, fd = 1, iov = 0x7f4deaa95dd0, count = 2 }
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#96][··Writev] writev: fd: 1
func test_send_recv - [OK]
func test_sendmsg_recvmsg - [OK]
func test_sendmsg_recvmsg_connectionless - [OK]
func test_poll - [OK]
func test_poll_events_unchanged - [OK]
func test_sockopt - [OK]
[socket with bind] address: 127.0.0.1
[socket with bind] port: 8806
Peer address: 127.0.0.1
Peer port: 34928
func test_getname - [OK]
[socket without bind] address: 0.0.0.0
[socket without bind] port: 0
func test_getname_without_bind - [OK]
ERROR:bind socket failed in func connect_with_child at line 49 of file main.c
ERROR:failed to shutdown in func test_shutdown at line 504 of file main.c
func test_shutdown - [ERR]
[2021-10-20T05:37:54.545Z][TRACE][T1249][#97][ExitGroup] Syscall { num = ExitGroup, exit_status = -1 }
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#97][ExitGroup] exit_group: -1
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#97][ExitGroup] futex_wake_bitset addr: 0x7f4de9c95364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.545Z][ INFO] cancel sent
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO] close fd 497
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] close fd 496
[2021-10-20T05:37:54.545Z][ INFO] close fd 499
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.545Z][ INFO] close fd 500
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO] cancel sent
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] close fd 502
[2021-10-20T05:37:54.545Z][ INFO] cancel sent
[2021-10-20T05:37:54.545Z][ INFO] close fd 503
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ INFO] close fd 504
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO] close fd 506
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] close fd 505
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] close fd 498
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] close fd 501
[2021-10-20T05:37:54.546Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.546Z][ INFO][T0][#0] io-uring cancel complete, -2
[2021-10-20T05:37:54.546Z][ INFO][T0][#0] close fd 26
[2021-10-20T05:37:54.546Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.546Z][ INFO][T0][#0] io-uring cancel complete, 0
Error: 65280
../test_common.mk:74: recipe for target 'test' failed
make[4]: *** [test] Error 1
FAILED
server is running.
/root/docker/ngo/test
server stopped.
[2021-10-20T05:37:54.697Z][ WARN] HostFS: sync is unimplemented
[2021-10-20T05:37:54.697Z][ WARN] HostFS: sync is unimplemented
Since NGO has shifted to an architecture that schedules threads by itself, the implementation inherently needs to determine the number of CPU cores on which these threads can be scheduled.
So there are a few design decisions regarding with CPU cores that we need to make:
Adding some config entries to Occlum.json is a natural choice. But the number of CPU cores available and to use is most likely to be determined at runtime, instead of at the enclave build time. And letting the untrusted runtime to give the exact number of CPU cores to use seems to be harmless. So we should not "hardcode" the number of CPU cores in Occlum.json.
Nevertheless, I think it makes sense to add two optional config entries of min_cpu_cores
and max_cpu_cores
so that we can put some constraints on the untrusted, runtime-given input of CPU core count.
Container runtimes like Docker and Kata face a similar problem. Let's see how they solve the problem.
The default behavior of Docker is to give a Docker container all the available CPU cores in a cgroup. This is a rational choice as processes inside a Docker container is no difference from those outside from the perspective of scheduling.
Docker did allow the users to decide the number of CPU cores. See --cpus
and --cpuset-cpus
options of docker run
command.
Implementation wise, Kata is more like a VM. As such, the number of vCPUs of a VM must be specified. There is a global config file where the default number of vCPUs can be specified. Also like Docker, the number of vCPUs can be specified in a per-container manner using command line options.
Add three config entries to Occlum.json
:
{
"resource_limits": {
"min_num_of_cpus": 1,
"max_num_of_cpus": 128,
}
}
And remove the config entry of max_num_of_threads
.
And a command-line option of --cpus
. So the user can run
occlum start --cpus 4
or
occlum run --cpus 4
The arc_new_cyclic
feature has been stablized in Rust. 1.58. Since we are using recently new nightly version, I think we should already have this feature.
This enables creating self-referencing Arc
object.
use std::sync::{Arc, Weak};
struct Foo {
me: Weak<Foo>,
}
impl Foo {
/// Construct a reference counted Foo.
fn new() -> Arc<Self> {
Arc::new_cyclic(|me| Foo {
me: me.clone(),
})
}
/// Return a reference counted pointer to Self.
fn me(&self) -> Arc<Self> {
self.me.upgrade()
}
}
Since this pattern is so common, NGO even adds a dedicated crate, new-self-ref-arc
for exactly this purpose. We should remove the crate and use new_cyclic
instead.
Anyone interested in taking this refactoring task?
The feature “sgx” and "auto_run" should be conflict features.
If Occlum links async-file with sgx feature, it will crash at thread '<unnamed>' panicked at 'The sgx thread policy must be Bound!', /root/testtt/deps/rust-sgx-sdk/sgx_tstd/src/thread/mod.rs:92:13
Use Occlum configuration in yaml format
Current Occlum/NGO use the json format configuration file Occlum.json
which is not friendly to users.
Because json file neither support adding comment, nor pasing OS environments directly.
Yaml format could support both above, making the Occlum configuration more friendly and easy to use for users.
Yaml format can support adding comment and pasing OS environments directly which makes the Occlum configuration more friendly and easy to use for users.
With the the new introduced yaml format Occlum configuration file, nothing changed for the whole occlum build process but with minor changes described below.
occlum new
or occlum init
, there is a default Occlum.yaml
(with comments in line) in the occlum_instance instead of the old Occlum.json
file.yq
to modify the configuration items in Occlum.yaml
.occlum build
, one extra step added in the building process which is converting the Occlum.yaml
to internal Occlum.json
at first, then all the building keeps the same with the internal Occlum.json
. That is to say, in the Occlum internal building/booting process, json format configuration file is still used. But users don't and shouldn't touch them.This new yaml way described provides much better user experience, and keeps the same flow internally which introduces no changes in LibOS but minor changes in building.
Most demos should be updated to adapt to the new yaml configuration.
For NGO, I think it is acceptable since no NGO formal release till now.
We can still support old json way by adding compatibility check as below:
(although I doubt if it is necessary for NGO).
Occlum.json
in occlum_instance, then just use it instead of creating new Occlum.yaml
.page-cache
is a new designed and implemented crate and will be added into NGO.
Page Cache provides cache mechanism for block devices. Similar to Linux Buffer Cache, the goal of our page cache is to minimize disk I/O by storing data (page/block granularity) in physical memory that would otherwise require disk access.
In NGO, Page Cache caches read/write data between Async FS and Block Device. It also utilizes Rust asynchronous programming to gain better performance.
Please refer to:
Design doc: #238
Async Filesystem: #265
page-cache
mainly provides LRU-strategy struct PageCache
and Usage-wrapper struct CachedDisk
for users (filesystems).
Public types:
PageCache<K: PageKey, A: PageAlloc>
: Manage the cached pages for a domain of key (e.g., block IDs). Mainly use LruCache
.
PageState
: Indicate the state of a cached page.
PageHandle<K: PageKey, A: PageAlloc>
: The handle to a cached page acquired from the page cache. Further operations to the page (like change the state or read/write content) must call lock()
to get corresponding PageHandleGuard
.
FixedSizePageAlloc
: A page allocator with fixed total size.
CachedDisk<A: PageAlloc>
: A virtual disk with a backing disk and a page cache. Benefit filesystems to access page cache just like accessing the disk. Define a CachedDiskFlusher: PageCacheFlusher
for the inner page cache.
Private types:
Page<A: PageAlloc>
: A block of memory (same size as BLOCK_SIZE
) obtained from an allocator which implements PageAlloc
.
PageEvictor<K: PageKey, A: PageAlloc>
: Spawn a task to flush and evict pages of all instances of PageCache<K, A>
when the memory of A
is low.
Trait:
PageAlloc
: A trait for a page allocator that can monitor the amount of free memory.
PageCacheFlusher
: Allow the owner (CachedDisk
or filesystem) of a page cache to specify user-specific I/O logic to flush the dirty pages of a page cache.
PageKey
: A trait to define domain of key for page cache.
See cargo doc of page-cache
.
AFS+PageCache
beats SEFS
on an average of 110.9%.
The result of seq-write
is outstanding thanks to the batch write-back optimization during CachedDisk
's flush()
.
CachedDisk
's read()
.BlockDevice
for CachedDisk
.pthread case hangs when running glibc test in simulation mode. It is not always happening but can still be easily reproduced if running for within 10 times.
Steps to reproduce the behavior:
All tests can pass.
2022-02-16T11:18:36.748Z][TRACE][C:1][T39][#5][···Futex] ret = 0x1
[2022-02-16T11:18:36.749Z][ERROR][C:1][T39][#6] Error = ENOSYS (#38, Function not implemented): Invalid system call number (28) [line = 726, file = src/entry/syscall.rs]
[2022-02-16T11:18:36.749Z][TRACE][C:1][T39][#7][····Exit] Syscall { num = Exit, exit_status = 0 }
[2022-02-16T11:18:36.749Z][DEBUG][C:1][T39][#7][····Exit] exit: 0
[2022-02-16T11:18:36.749Z][DEBUG][C:1][T39][#7][····Exit] futex_wake_bitset addr: 0x7fff9fddb9d0, max_count: 1, bitset: 0xffffffff
[2022-02-16T11:18:36.749Z][DEBUG][C:1][T39][#7][····Exit] wake the rubust_list: 0x7fff9fddb9e0
[2022-02-16T11:18:36.749Z][DEBUG][C:1][T39][#7][····Exit] futex_wake_bitset addr: 0x7fff751703f0, max_count: 1, bitset: 0xffffffff
[2022-02-16T11:18:36.749Z][TRACE][C:1][T39][#7][····Exit] ret = 0x0
[2022-02-16T11:18:36.749Z][TRACE][C:1][T41][#4][···Futex] ret = 0x0
[2022-02-16T11:18:36.749Z][TRACE][C:1][T41][#5][···Futex] Syscall { num = Futex, futex_addr = 0x7fff9f3ffc80, futex_op = 129, futex_val = 1, timeout = 0, futex_new_addr = 0x0, bitset = 2690502023 }
[2022-02-16T11:18:36.750Z][DEBUG][C:1][T41][#5][···Futex] futex_wake_bitset addr: 0x7fff9f3ffc80, max_count: 1, bitset: 0xffffffff
[2022-02-16T11:18:36.750Z][TRACE][C:1][T41][#5][···Futex] ret = 0x0
[2022-02-16T11:18:36.751Z][ERROR][C:1][T41][#6] Error = ENOSYS (#38, Function not implemented): Invalid system call number (28) [line = 726, file = src/entry/syscall.rs]
[2022-02-16T11:18:36.751Z][TRACE][C:1][T41][#7][····Exit] Syscall { num = Exit, exit_status = 0 }
[2022-02-16T11:18:36.751Z][DEBUG][C:1][T41][#7][····Exit] exit: 0
[2022-02-16T11:18:36.751Z][DEBUG][C:1][T41][#7][····Exit] futex_wake_bitset addr: 0x7fffa05dd9d0, max_count: 1, bitset: 0xffffffff
[2022-02-16T11:18:36.751Z][DEBUG][C:1][T41][#7][····Exit] wake the rubust_list: 0x7fffa05dd9e0
[2022-02-16T11:18:36.751Z][DEBUG][C:1][T41][#7][····Exit] futex_wake_bitset addr: 0x7fff751703f0, max_count: 1, bitset: 0xffffffff
[2022-02-16T11:18:36.751Z][TRACE][C:1][T41][#7][····Exit] ret = 0x0
[2022-02-16T11:18:37.012Z][DEBUG][C:0][T32][#88] handle interrupt
[2022-02-16T11:18:37.012Z][DEBUG][C:0][T40][#0] Thread #40 is executed as task #40
[2022-02-16T11:18:37.012Z][TRACE][C:0][T40][#1][SetRobustList] Syscall { num = SetRobustList, list_head_ptr = 0x7fffa01dc9e0, len = 24 }
[2022-02-16T11:18:37.012Z][DEBUG][C:0][T40][#1][SetRobustList] set_robust_list: list_head_ptr: 0x7fffa01dc9e0, len: 24
[2022-02-16T11:18:37.012Z][TRACE][C:0][T40][#1][SetRobustList] ret = 0x0
[2022-02-16T11:18:37.012Z][TRACE][C:0][T40][#2][···Futex] Syscall { num = Futex, futex_addr = 0x7fff9f3ffc80, futex_op = 128, futex_val = 2, timeout = 0, futex_new_addr = 0x7fff9f3ffc80, bitset = 2686303623 }
[2022-02-16T11:18:37.012Z][DEBUG][C:0][T40][#2][···Futex] futex_wait_bitset addr: 0x7fff9f3ffc80, val: 2, timeout: None, bitset: 0xffffffff
[2022-02-16T11:18:37.012Z][TRACE][C:0][T32][#89][···Futex] Syscall { num = Futex, futex_addr = 0x7fff9f3ffc80, futex_op = 128, futex_val = 2, timeout = 0, futex_new_addr = 0x7fff9f3ffc80, bitset = 2671770800 }
[2022-02-16T11:18:37.012Z][DEBUG][C:0][T32][#89][···Futex] futex_wait_bitset addr: 0x7fff9f3ffc80, val: 2, timeout: None, bitset: 0xffffffff
[2022-02-16T11:18:46.621Z][DEBUG][C:0] Timer Wheel: timeout
[2022-02-16T11:18:46.621Z][DEBUG][C:0] Timer Wheel: will sleep 10s
[2022-02-16T11:18:56.621Z][DEBUG][C:0] Timer Wheel: timeout
[2022-02-16T11:18:56.621Z][DEBUG][C:0] Timer Wheel: will sleep 10s
[2022-02-16T11:19:06.621Z][DEBUG][C:0] Timer Wheel: timeout
[2022-02-16T11:19:06.621Z][DEBUG][C:0] Timer Wheel: will sleep 10s
Then the timer sleeps forever.
Running pthread musl test with all other variables the same can't reproduce this behavior in 100 times.
Running pthread glibc test in hardware mode with all other variables the same can't reproduce this behavior in 100 times.
Not sure if this is related to libc or SGX mode.
In this document, we propose to develop a crate named page-cache
that implements page caches, a common OS mechanism that is key to the I/O performance of file systems.
The crate is intended to provide the ability to retrieve, insert, update,and evict cached pages so file system developers can utilize it to accelerate block I/O. To do so, a file system should perform all I/O through the page cache. For a write, data are first written to the page cache, and later flush the dirty pages in the page cache to the disk. For a read, an attempt to retrieve the data from the page cache should be made first. If the attempt fails, then the file system should load the data from the disk and insert a new entry to the page cache. This is known as the write-back cache policy.
The page cache mechanism allows multiple file system users. Each mounted file system can create and manage its own instance of page cache. A group of page caches owned by different file systems can share a common pool of memory pages.
The page cache is designed to achieve the following desirable properties.
unsafe
code as well as possible.The proposed design differs greatly from the one in Linux for two reasons.
The crate provides the public traits below.
GlobalAllocExt
is a trait for global memory allocators that can monitor its free memory.PageCacheFlusher
allows the owner (most likely a file system) of a page cache to specify user-specific I/O logic to flush the dirty pages of a pageas well as the public types below:
PageCache<A: GlobalAllocExt>
manages the cached pages for a domain of key (e.g., block IDs).Page<A: GlobalAllocExt>
is a 4KB-sized block of memory obtained from an allocator.PageHandle<A: GlobalAllocExt>
is the handle to a cached page acquired from a page cache.PageState
tells the state of a cached page.The internal types:
PageEvictor<A: GlobalAllocExt>
spawns a task to flush and evict pages of all instances of PageCache<A>
when the memory of A
is low.CachedDisk
To showcase the usage of this crate, we implement CachedDisk
, which uses PageCache
to accelerate the access to a backing block device.
use core::sync::atomic::{AtomicBool, Ordering};
use core::sync::Arc;
use async_io::event::{Events, Poller};
use async_rt::mutex::RwLock as AsyncRwLock;
use async_rt::wait::{Waiter, WaiterQueue};
use block_device::{BlockDevice, BlockId, BLOCK_SIZE};
use page_cache::{GlobalAllocExt, Page, PageCache, PageCacheFlusher, PageHandle, PageState};
/// A virtual disk with a backing disk and a page cache.
///
/// Thanks to the page cache, accessing a disk through
/// `CachedDisk` is expected to be faster than
/// accessing the disk directly.
///
/// `CachedDisk` exhibits the write-back strategy: writes
/// are first cached in memory, and later flushed to the
/// backing disk. The flush is either triggered by an
/// explicit flush operation or performed by a background
/// flusher task.
///
/// The memory allocator for the page cache is specified
/// by the generic parameter `A` of `CachedDisk<A>`.
pub struct CachedDisk<A>(Arc<Inner<A>>);
struct Inner<A> {
disk: Box<dyn BlockDevice>,
cache: PageCache<BlockId, A>,
flusher_wq: WaiterQueue,
// This read-write lock is used to control the concurrent
// writers and flushers. A writer acquires the read lock,
// permitting multiple writers, but no flusher. A flusher
// acquires the write lock to forbid any other flushers
// and writers. This policy is important to implement
// the semantic of the flush operation correctly.
arw_lock: AsyncRwLock,
// Whether CachedDisk is droppedd
is_dropped: AtomicBool,
}
impl<A> Drop for CachedDisk<A> {
fn drop(&mut self) {
self.0.is_dropped.store(true, Ordering::Relaxed);
self.0.flusher_wq.flusher_wq.wake_all();
}
}
impl<A: Allocator> CachedDisk<A> {
const AUTO_FLUSH_PERIOD: Duration = Duration::from_secs(5);
/// Create a new `CachedDisk`.
pub fn new(disk: Box<dyn BlockDevice>) -> Result<Self> {
let flusher = Arc::new(CachedDiskFlusher::new());
let cache = PageCache::new(flusher.clone())?;
let flusher_wq = WaiterQueue::new();
let arc_inner = Arc::new(Inner {
disk,
cache,
flusher_wq,
arw_lock: AsyncRwLock::new(),
is_dropped: AtomicBool::new(false),
});
let new_self = Self(arc_inner);
flusher.set_disk(new_self.0.clone());
new_self.spawn_flusher_task()?;
Ok(new_self)
}
/// Spawn a flusher task.
///
/// The task flusher dirty pages in the page cache periodically.
/// This flusher is not to be confused with `PageCacheFlusher`,
/// the latter of which flushes dirty pages and evict pages to
/// release memory when the free memory is low.
fn spawn_flusher_task(&self) -> Result<()> {
// Spawn the flusher task
let this = self.0.clone();
async_rt::task::spawn(async move || {
let mut waiter = Waiter::new();
this.flusher_wq.enqueue(&mut waiter);
loop {
// If CacheDisk is dropped, then the flusher task should exit
if this.is_dropped.load(Ordering::Relaxed) {
break;
}
// Wait until being notified or timeout
let mut timeout = AUTO_FLUSH_PERIOD;
let _ = waiter.wait_timeout(Some(&mut timeout)).await;
// Do flush
let _ = this.flush().await;
}
this.flusher_wq.dequeue(&mut waiter);
});
}
/// Read blocks starting from `from_bid` into the given buffer.
///
/// The length of buffer must be a multiple of BLOCK_SIZE. On
/// success, the number of bytes read is returned.
pub async fn read(&self, from_bid: BlockId, buf: &mut [u8]) -> Result<usize> {
self.0.read(from_bid, buf).await
}
/// Read blocks starting from `from_bid` into the given buffer.
///
/// The length of buffer must be a multiple of BLOCK_SIZE. On
/// success, the number of bytes written in returned.
pub async fn write(&self, from_bid: BlockId, buf: &[u8]) -> Result<usize> {
self.0.write(from_bid, buf).await
}
/// Flush all changes onto the backing disk.
pub async fn flush(&self) -> Result<()> {
self.0.flush().await;
Ok(())
}
}
impl<A: GlobalAllocExt> Inner<A> {
pub async fn read(&self, from_bid: BlockId, buf: &mut [u8]) -> Result<usize> {
let num_blocks = self.check_rw_args(from_bid, buf)?;
for (i, this_bid) in (from_bid..from_bid + num_blocks).enumerate() {
let page_handle = self.acquire_page(this_bid).await?;
let mut page_guard = page_handle.lock();
// Ensure the page is ready for read
loop {
match page_guard.state() {
// The page is ready for read
PageState::UpToDate | PageState::Dirty | PageState::Flushing => {
break;
}
// The page is not initialized. So we need to
// read it from the disk.
PageState::Uninit => {
page_guard.set_state(PageState::Fetching);
Self::clear_page_events(&page_handle);
let page_ptr = page_guard.as_ptr();
drop(page_guard);
let page_slice =
unsafe { slice::from_raw_parts_mut(page_ptr.as_ptr(), BLOCK_SIZE) };
// TODO: handle error
self.read_page(this_bid, page_slice).await.unwrap();
Self::notify_page_events(&page_handle, Events::IN);
let page_guard = page_handle.lock();
debug_assert!(page_guard.state() == Page::Fetching);
page_guard.set_state(Page::UpToDate);
break;
}
// The page is being fetched. We just try again
// later to see if it is ready.
PageState::Fetching => {
drop(page_guard);
Self::wait_page_events(&page_handle, Events::IN).await;
page_guard = page_handle.lock();
}
}
}
let dst_buf = &mut buf[i * BLOCK_SIZE..(i + 1) * BLOCK_SIZE];
let src_buf = page_guard.page().as_slice();
dst_buf.copy_from_slice(src_buf);
drop(page_guard);
self.cache.release_page(page_handle);
}
Ok(num_blocks * BLOCK_SIZE)
}
pub async fn write(&self, from_bid: BlockId, bufs: &[u8]) -> Result<usize> {
let num_blocks = self.check_rw_args(from_bid, buf)?;
let _ = self.arw_lock.read().await;
for (i, this_bid) in (from_bid..from_bid + num_blocks).enumerate() {
let page_handle = self.acquire_page(this_bid).await?;
let mut page_guard = page_handle.lock();
// Ensure the page is ready for write
loop {
match page_guard.state() {
// The page is ready for write
PageState::UpToDate | PageState::Dirty | PageState::Uninit => {
break;
}
// The page is being fetched. We just try again
// later to see if it is ready.
PageState::Fetching | PageState::Flushing => {
drop(page_guard);
Self::wait_page_events(&page_handle, Events::IN | Events::OUT).await;
page_guard = page_handle.lock();
}
}
}
let dst_buf = page_guard.page().as_slice_mut();
let src_buf = &buf[i * BLOCK_SIZE..(i + 1) * BLOCK_SIZE];
dst_buf.copy_from_slice(src_buf);
page_guard.set_state(PageState::Dirty);
drop(page_guard);
self.cache.release_page(page_handle);
}
Ok(num_blocks * BLOCK_SIZE)
}
pub async fn flush(&self) -> Result<usize> {
let mut total_pages = 0;
let _ = self.arw_lock().write().await;
const BATCH_SIZE: usize = 128;
let mut flush_pages = Vec::with_capacity(BATCH_SIZE);
loop {
let num_pages = self.cache.flush_dirty(&mut flush_pages);
if num_pages == 0 {
break;
}
for page_handle in flush_pages {
let page_guard = page_handle.lock();
debug_assert!(page_guard.state() == PageState::Flushing);
Self::clear_page_events(&page_handle);
let block_id = page_handle.key();
let page_ptr = page_guard.page().as_ptr();
drop(page_guard);
let page_buf = unsafe { slice::from_raw_parts(page_ptr, BLOCK_SIZE) };
// TODO: handle error
self.write_page(block_id, page_buf).await.unwrap();
Self::notify_page_events(&page_handle, Events::OUT);
let mut page_guard = page_handle.lock();
page_guard.set_state(PageState::UpToDate);
drop(page_guard);
self.cache.release(page_handle);
}
total_pages += num_pages;
}
self.disk.flush().await?;
// At this point, we can be certain that all writes
// have been persisted to the disk because
// 1) There are no concurrent writers;
// 2) There are no concurrent flushers;
// 3) All dirty pages have been cleared;
// 4) The underlying disk is also flushed.
Ok(total_pages)
}
/// Check if the arguments for a read or write is valid. If so,
/// return the number of blocks to read or write. Otherwise,
/// return an error.
fn check_rw_args(&self, from_bid: BlockId, buf: &mut [u8]) -> Result<usize> {
debug_assert!(buf.len() % BLOCK_SIZE == 0);
if from_bid >= self.disk.total_blocks() {
return Ok(0);
}
let max_blocks = self.disk.total_blocks() - from_bid;
let num_blocks = buf.len() / BLOCK_SIZE;
num_blocks.min(max_blocks)
}
async fn acquire_page(&self, bid: BlockId) -> Result<PageHandle> {
loop {
self.cache.acquire(block_id);
}
}
async fn read_page(&self, block_id: BlockId, buf: &mut [u8]) -> Result<()> {
use block_device::BlockDeviceExt;
let offset = block_id * BLOCK_SIZE;
self.disk.read(offset, buf)
}
async fn write_page(&self, block_id: BlockId, buf: &[u8]) -> Result<()> {
use block_device::BlockDeviceExt;
let offset = block_id * BLOCK_SIZE;
self.disk.write(offset, buf)
}
fn clear_page_events(page_handle: &PageHandle<A>) {
page_handle.pollee().reset_events();
}
fn notify_page_events(page_handle: &PageHandle<A>, events: Events) {
page_handle.pollee().add_events(events)
}
async fn wait_page_events(page_handle: &PageHandle<A>, events: Events) {
let mut poller = Poller::new();
if page_handle
.pollee()
.poll(events, Some(&mut poller))
.is_empty()
{
poller.wait().await;
}
}
}
struct CachedDiskFlusher<A> {
// this == CachedDisk
this_opt: Mutex<Option<Arc<Inner<A>>>>,
}
impl<A: GlobalAllocExt> CachedDiskFlusher<A> {
pub fn new() -> Self {
Self {
this_opt: Mutex::new(None),
}
}
pub fn set_disk(&self, this: Arc<Inner<A>>) {
*self.this_opt.lock() = Some(this);
}
fn this_opt(&self) -> Option<Arc<Inner<A>>> {
self.this_opt.lock().map(|arc_inner| arc_inner.clone())
}
}
impl<A: GlobalAllocExt> PageCacheFlusher for CachedDiskFlusher<A> {
async fn flush(&self) -> Result<usize> {
let this = match self.this_opt()
Some(this) => this,
None => return Ok(()),
};
this.flush().await
}
}
Given the complexity of the page cache mechanism, a design can hardly be justified until a non-trivial amount of code is written. In this spirit, we provide a high-fidelity Rust code to show what the crate looks like. But be aware: it is by no means complete or correct, even in grammar. It is just a good starting point. Also, there is also a per-file page cache that is complement to this reference implementation.
use alloc::{Layout};
pub use alloc::GlobalAlloc;
/// A global memory allocator that can monitor the amount
/// of free memory.
///
/// It is recommended to implement the trait with zero-sized
/// types.
///
/// ```
/// pub struct MyAlloc; // a zero-sized, singleton allocator
///
/// impl GlobalAllocExt for MyAlloc { /* ... */ }
/// impl GlobalAlloc for MyAlloc { /* ... */ }
/// ```
///
/// This way, embedding the allocator into other types
/// (e.g., `Page<MyAlloc>`) imposes no memory overhead.
pub trait GlobalAllocExt: GlobalAlloc {
fn register_low_memory_callback(&self, f: impl Fn());
fn is_memory_low(&self) -> bool;
}
use alloc::{Layout, NonNull};
use core::marker::PhantomData;
use crate::GlobalAllocExt;
/// A page obtained from an allocator.
pub struct Page<A> {
ptr: NonNull<u8>,
allocator: A,
}
impl<A: GlobalAllocExt> Page<A> {
pub fn alloc_from(allocator: A) -> Option<Self> {
let ptr = allocator.alloc(Self::layout())?;
Self {
ptr,
allocator,
}
}
pub fn as_slice(&self) -> &[u8] {
todo!("trivial")
}
pub fn as_slice_mut(&mut self) -> &mut [u8] {
todo!("trivial")
}
pub const fn size() -> usize {
4096
}
pub const fn align() -> usize {
4096
}
pub const fn layout() -> Layout {
unsafe { Layout::from_size_align_unchecked(Self::size(), Self::align()) }
}
}
impl<A: GlobalAllocExt> Drop for Page<A> {
fn drop(&mut self) {
unsafe { self.allocator.dealloc(self.ptr.as_ptr(), Self::layout()) }
}
}
/// Page state.
pub enum PageState {
Uninit,
UpToDate,
Dirty,
Fetching,
Flushing,
}
use crate::{Page, GlobalAllocExt};
/// Page handle.
#[derive(Clone)]
pub struct PageHandle<K, A>(Arc<Inner<K, A>>);
struct Inner<K, A> {
key: K,
pollee: Pollee,
state_and_page: Mutex<(PageState, Page)>,
}
impl<K: Into<u64>, A: GlobalAllocExt> PageHandle<K, A> {
pub(crate) fn new(key: K) -> Self {
todo!("trivial")
}
pub fn key(&self) -> &K {
&self.key
}
pub fn pollee(&self) -> &Pollee {
&self.pollee
}
pub fn lock(&'a self) -> PageHandleGuard<'a, A> {
PageHandleGuard(self.0.state_and_page.lock())
}
}
pub struct PageHandleGuard<'a, A>(MutexGuard<'a, (PageState, Page<A>)>);
impl<'a, A> PageHandleGuard<'a, A> {
pub fn state(&self) -> PageState {
self.0.0
}
pub fn set_state(&mut self, new_state: PageState) {
fn allow_state_transition(curr_state: PageState, new_state: PageState) -> bool {
todo!("trivial")
}
debug_assert!(allow_state_transition(self.state(), new_state));
*self.0.0 = new_state;
}
pub fn as_slice(&self) -> &[u8] {
self.0.1.as_slice()
}
pub fn as_slice_mut(&mut self) -> &mut [u8] {
self.0.1.as_slice_mut()
}
}
/// Page cache.
pub struct PageCache<K, A>(Arc<PageCacheInner<K, A>>);
pub(crate) struct PageCacheInner<K, A> {
pollee: Pollee,
flusher: Box<dyn PageCacheFlusher>,
// more...
}
/// Page cache flusher.
///
/// A page cache must be equiped with a user-given
/// flusher `F: PageCacheFlusher`so that when
/// the memory is low, the page cache mechanism
/// can automatically flush dirty pages and
/// subsequently evict pages.
///
/// This trait has only one method.
#[async_trait]
pub trait PageCacheFlusher: Send + Sync {
/// Flush the dirty pages in a page cache.
///
/// If success, then the return value is
/// the number of dirty pages that are flushed.
async fn flush(&self) -> Result<usize>;
}
impl<K: Into<u64>, A: GlobalAllocExt> PageCache<K, A> {
/// Create a page cache.
pub fn new<F>(flusher: F) -> Self
where
F: Deref<PageCacheFlusher>,
{
let new_self = Self(Arc::new(PageCacheInner::new(flusher)));
PageEvictor::<A>::register(&new_self);
new_self
}
/// Acquire the page that corresponds to the key.
///
/// Returns `None` if there are no available pages.
/// In this case, the user can use the
/// `poll` method to wait for the readiness of the
/// page cache.
pub fn acquire(&self, key: &K) -> Option<PageHandle<K, A>> {
todo!()
}
/// Release the page.
///
/// All page handles obtained via the `acquire` method
/// must be returned via the `release` method.
pub fn release(&self, page_handle: PageHandle<K, A>) {
todo!()
}
/// Pop a number of dirty pages and switch their state to
/// "flushing".
///
/// The handles of dirty pages are pushed into the given `Vec`.
/// As most `Vec::capacity` number of dirty pages can be pushed
/// into the `Vec`.
pub fn flush_dirty(&self, dirty: &mut Vec<PageHandle<K, A>>) -> usize {
todo!()
}
/// Poll the readiness events on a page cache.
///
/// The only interesting event is `Events::OUT`, which
/// indicates that the page cache has evictable pages or
/// the underlying page allocator has free space.
///
/// This method is typically used after a failed attempt to
/// acquire pages. In such situations, one needs to wait
/// for the page cache to be ready for acquiring new pages.
///
/// ```
/// # async fn foo<A: PageAlloc>(page_cache: &PageCache<u64, A>) {
/// let addr = 1234;
/// let page = loop {
/// if Some(page) = page_cache.acquire(addr) {
/// break page;
/// }
///
/// let mut poller = Poller::new();
/// let events = page_cache.poll(Events::OUT, Some(&mut poller));
/// if !events.is_empty() {
/// continue;
/// }
///
/// poller.wait().await;
/// }
/// # }
/// ```
pub fn poll(&self, poller: Option<&mut Poller>) -> Events {
self.0.poll(poller)
}
}
impl<A: GlobalAllocExt> PageCacheInner<A> {
pub fn poll(&self, poller: Option<&mut Poller>) -> Events {
self.pollee.poll(Events::OUT, poller)
}
/// Evict a number of pages.
///
/// The page cache uses a pseudo-LRU strategy to select
/// the victim pages.
pub(crate) fn evict(&self, max_evicted: usize) {
todo!()
}
pub(crate) async fn flush(&self) {
let nflush = self.flusher.flush().await;
if nflush > 0 {
self.pollee.add_events(Events::OUT);
}
}
}
impl<A> Drop for PageCache<A> {
fn drop(&mut self) {
PageEvictor::<A>::unregister(&self.0);
}
}
use typemap::ShareCloneMap as TypeMap;
/// Page evictor.
///
/// Page caches (`PageCache<A>`) using the same memory allocator
/// (`A: GlobalAllocExt`) shares a common page evictor, which flushes
/// dirty pages and evict pages for the page caches when
/// the memory allocator's free memory is low.
pub(crate) struct PageEvictor<A>;
impl<A: GlobalAllocExt> PageEvictor {
/// Register a page cache.
///
/// This is called in the constructor of a page
/// cache instance.
pub fn register(page_cache: &PageCache<A>) {
let evictor_task = Self::task_singleton();
evictor_task.register(page_cache.0.clone())
}
/// Unregister a page cache.
pub fn unregister(page_cache: &PageCache<A>) {
let evictor_task = Self::task_singleton();
evictor_task.unregister(&page_cache.0)
}
fn task_singleton() -> Arc<EvictorTaskInner<A>> {
lazy_static! {
static ref EVICTOR_TASKS: Mutex<TypeMap> = Mutex::new(TypeMap::new());
}
let mut tasks = EVICTOR_TASKS.lock();
let task = tasks
.entry::<EvictorTask<A>>()
.or_insert_with(|| EvictorTask::new());
task.0.clone()
}
}
struct EvictorTask<A>(Arc<EvictorTaskInner>);
struct EvictorTaskInner {
caches: Mutex<Vec<Arc<PageCacheInner<A>>>>,
wq: WaiterQueue,
}
impl<A: GlobalAllocExt> EvictorTask<A> {
pub fn new() -> Self {
let new_self = {
let inner = EvictorTaskInner {
caches: Mutex::new(Vec::new()),
wq: WaiterQueue::new(),
};
Self(Arc::new(inner))
};
let this = new_self.0.clone();
A::register_low_memory_callback(move || {
this.wq.wake_all();
});
let this = new_self.0.clone();
async_rt::task::spawn(async move || {
this.task_main().await;
});
new_self
}
}
impl<A: GlobalAllocExt> EvictorTaskInner<A> {
async fn task_main(&self) {
let mut waiter = Waiter::new();
self.wq.enqueue(&mut waiter);
while self.is_dropped() {
waiter.reset();
while A::is_memory_low() {
self.evict_pages().await;
}
waiter.wait().await;
}
self.wq.dequeue(&mut waiter);
}
async fn evict_pages(&self) {
// Flush all page caches
self.for_each_page_cache_async(async |page_cache| {
page_cache.flush().await;
})
.await;
// Evict pages to free memory
const BATCH_SIZE: usize = 2048;
while A::is_memory_low() {
let mut total_evicted = 0;
self.for_each_page_cache(|page_cache| {
total_evicted += page_cache.evict(BATCH_SIZE);
});
if total_evicted == 0 {
break;
}
}
}
async fn for_each_page_cache_async<F, Fut>(f: F)
where
F: Fn(&PageCache) -> Fut,
Fut: Future<Output = ()>,
{
todo!("do not hold mutex while executing async code!")
}
fn for_each_page_cache<F>(f: F)
where
F: Fn(&PageCache),
{
todo!("load balance betwen the page caches so that
pages are evenly evicted")
}
}
When doing stress test, e.g., TESTS=server STRESS_TEST_TIMES=500 make test
, the test might failed after hundreds of tests.
The error is bind failed (address in use), which is because of the old socket that listening in the port isn't closed.
To close a listening socket, we first cancel all ongoing accept io-uring request, however, the request seems lost when doing stress test. e.g., we try to cancel 10 requests, but only 9 requests were canceled, which left one request to lose.
When I add log to locate this bug, I find it's hard to reproduce the bug if I add many logs in io-uring operation.
I thought it's might because of the third crate io-uring
crate, since our io-uring
crate is outdated.
And I try to update the io-uring
crate (The interface of io-uring crate changed a lot), and then I meet more bugs...... (The code is in https://github.com/ShuochengWang/io-uring/tree/sgx and https://github.com/ShuochengWang/ngo/tree/dev-network9)
The log of this bug:
PASS
RUN TEST => server
[2021-10-20T05:37:54.358Z][TRACE] env_checked from env untrusted: []
[2021-10-20T05:37:54.358Z][TRACE] env_merged = ["OCCLUM=yes", "STABLE=yes", "OVERRIDE=N"] (default env and untrusted env)
[2021-10-20T05:37:54.358Z][DEBUG] lookup_inode: cwd: "/", path: "/bin/server"
[2021-10-20T05:37:54.359Z][DEBUG] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.376Z][DEBUG] allocated rsrv addr is 0x7f4de93cf000, len is 0x6896000
[2021-10-20T05:37:54.377Z][ INFO] Process created: elf = /bin/server, pid = 1241
[2021-10-20T05:37:54.377Z][DEBUG][T1241][#0] Thread #1241 is executed as task #1241
[2021-10-20T05:37:54.377Z][TRACE][T1241][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4de9c94d88 }
[2021-10-20T05:37:54.377Z][DEBUG][T1241][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4de9c94d88
[2021-10-20T05:37:54.377Z][TRACE][T1241][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4de9c95364 }
[2021-10-20T05:37:54.377Z][DEBUG][T1241][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4de9c95364
[2021-10-20T05:37:54.377Z][TRACE][T1241][#3][Mprotect] Syscall { num = Mprotect, addr = 139972611477504, len = 4096, prot = 1 }
[2021-10-20T05:37:54.377Z][DEBUG][T1241][#3][Mprotect] mprotect: addr: 0x7f4de9c91000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.377Z][ WARN][T1241][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.377Z][TRACE][T1241][#4][Mprotect] Syscall { num = Mprotect, addr = 139972604604416, len = 4096, prot = 1 }
[2021-10-20T05:37:54.377Z][DEBUG][T1241][#4][Mprotect] mprotect: addr: 0x7f4de9603000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.377Z][ WARN][T1241][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.377Z][TRACE][T1241][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.378Z][ INFO][T1241][#5][··Socket] open fd 26
[2021-10-20T05:37:54.378Z][TRACE][T1241][#6][Setsockopt] Syscall { num = Setsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 4 }
[2021-10-20T05:37:54.378Z][DEBUG][T1241][#6][Setsockopt] setsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 4
[2021-10-20T05:37:54.378Z][ INFO][T1241][#6][Setsockopt] fd: 26, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.378Z][TRACE][T1241][#7][Getsockopt] Syscall { num = Getsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 0x7f4deaa95db4 }
[2021-10-20T05:37:54.378Z][DEBUG][T1241][#7][Getsockopt] getsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 0x7f4deaa95db4
[2021-10-20T05:37:54.378Z][TRACE][T1241][#8][····Bind] Syscall { num = Bind, fd = 3, addr = 0x7f4deaa95dc0, addr_len = 16 }
[2021-10-20T05:37:54.378Z][TRACE][T1241][#9][··Listen] Syscall { num = Listen, fd = 3, backlog = 10 }
[2021-10-20T05:37:54.378Z][TRACE][T1241][#10][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e28, path = 0x7f4de9402939, argv = 0x7f4deaa95dd0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.378Z][DEBUG][T1241][#10][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8800"], envp: [], fdop: []
[2021-10-20T05:37:54.378Z][DEBUG][T1241][#10][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.378Z][DEBUG][T1241][#10][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.382Z][DEBUG][T1241][#10][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.382Z][DEBUG][T1241][#10][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.382Z][ INFO][T1241][#10][SpawnMusl] Process created: elf = /bin/client, pid = 1242
[2021-10-20T05:37:54.382Z][TRACE][T1241][#11][··Accept] Syscall { num = Accept, fd = 3, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.382Z][DEBUG][T1242][#0] Thread #1242 is executed as task #1242
[2021-10-20T05:37:54.382Z][TRACE][T1242][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.382Z][DEBUG][T1242][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.382Z][TRACE][T1242][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.382Z][DEBUG][T1242][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.382Z][TRACE][T1242][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.382Z][DEBUG][T1242][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.382Z][ WARN][T1242][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.382Z][TRACE][T1242][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.382Z][DEBUG][T1242][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.382Z][ WARN][T1242][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.383Z][TRACE][T1242][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.383Z][ INFO][T1242][#5][··Socket] open fd 493
[2021-10-20T05:37:54.383Z][TRACE][T1242][#6][·Connect] Syscall { num = Connect, fd = 4, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] Accept success: 494
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, 494
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.383Z][TRACE][T1241][#12][···Close] Syscall { num = Close, fd = 3 }
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#12][···Close] close: fd: 3
[2021-10-20T05:37:54.383Z][TRACE][T1241][#13][···Write] Syscall { num = Write, fd = 4, buf = 0x7f4de9402953, size = 26 }
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#13][···Write] write: fd: 4
[2021-10-20T05:37:54.383Z][TRACE][T1242][#7][····Read] Syscall { num = Read, fd = 4, buf = 0x7f4df1495de0, size = 100 }
[2021-10-20T05:37:54.383Z][TRACE][T1241][#14][····Read] Syscall { num = Read, fd = 4, buf = 0x7f4deaa95df0, size = 4 }
[2021-10-20T05:37:54.383Z][DEBUG][T1242][#7][····Read] read: fd: 4
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#14][····Read] read: fd: 4
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.383Z][TRACE][T1242][#8][···Write] Syscall { num = Write, fd = 4, buf = 0x7f4defe01231, size = 4 }
[2021-10-20T05:37:54.383Z][DEBUG][T1242][#8][···Write] write: fd: 4
[2021-10-20T05:37:54.383Z][TRACE][T1242][#9][···Close] Syscall { num = Close, fd = 4 }
[2021-10-20T05:37:54.383Z][DEBUG][T1242][#9][···Close] close: fd: 4
[2021-10-20T05:37:54.383Z][ INFO][T1242][#9][···Close] cancel sent
[2021-10-20T05:37:54.383Z][TRACE][T1242][#10][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.383Z][DEBUG][T1242][#10][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.383Z][DEBUG][T1242][#10][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#14][····Read] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] close fd 493
[2021-10-20T05:37:54.383Z][TRACE][T1241][#15][···Wait4] Syscall { num = Wait4, pid = 1242, _exit_status = 0x7f4deaa95e2c }
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.383Z][ INFO][T1241][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.383Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.383Z][ERROR][T1241][#16] Error = EINVAL (#22, Invalid argument): Invalid system call number (16) [line = 674, file = src/entry/syscall.rs]
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.383Z][TRACE][T1241][#17][··Writev] Syscall { num = Writev, fd = 1, iov = 0x7f4deaa95a40, count = 2 }
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#17][··Writev] writev: fd: 1
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, -114
func test_read_write - [OK]
[2021-10-20T05:37:54.383Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.383Z][TRACE][T1241][#18][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.383Z][ INFO][T1241][#18][··Socket] open fd 493
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.383Z][TRACE][T1241][#19][Setsockopt] Syscall { num = Setsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 4 }
[2021-10-20T05:37:54.383Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#19][Setsockopt] setsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 4
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.383Z][ INFO][T1241][#19][Setsockopt] fd: 493, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.383Z][TRACE][T1241][#20][Getsockopt] Syscall { num = Getsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 0x7f4deaa95db4 }
[2021-10-20T05:37:54.383Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#20][Getsockopt] getsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 0x7f4deaa95db4
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.383Z][TRACE][T1241][#21][····Bind] Syscall { num = Bind, fd = 3, addr = 0x7f4deaa95dc0, addr_len = 16 }
[2021-10-20T05:37:54.383Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.383Z][TRACE][T1241][#22][··Listen] Syscall { num = Listen, fd = 3, backlog = 10 }
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.383Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.383Z][TRACE][T1241][#23][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e2c, path = 0x7f4de9402939, argv = 0x7f4deaa95dd0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.383Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#23][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8801"], envp: [], fdop: []
[2021-10-20T05:37:54.383Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.383Z][DEBUG][T1241][#23][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.384Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.384Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.384Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.384Z][DEBUG][T1241][#23][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.384Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.384Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.384Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.384Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.384Z][ INFO][T0][#0] close fd 26
[2021-10-20T05:37:54.384Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.388Z][DEBUG][T1241][#23][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.388Z][DEBUG][T1241][#23][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.388Z][ INFO][T1241][#23][SpawnMusl] Process created: elf = /bin/client, pid = 1243
[2021-10-20T05:37:54.388Z][TRACE][T1241][#24][··Accept] Syscall { num = Accept, fd = 3, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.388Z][DEBUG][T1243][#0] Thread #1243 is executed as task #1243
[2021-10-20T05:37:54.388Z][TRACE][T1243][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.388Z][DEBUG][T1243][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.388Z][TRACE][T1243][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.388Z][DEBUG][T1243][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.388Z][TRACE][T1243][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.388Z][DEBUG][T1243][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.388Z][ WARN][T1243][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.388Z][TRACE][T1243][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.388Z][DEBUG][T1243][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.388Z][ WARN][T1243][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.388Z][TRACE][T1243][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.388Z][ INFO][T1243][#5][··Socket] open fd 26
[2021-10-20T05:37:54.388Z][TRACE][T1243][#6][·Connect] Syscall { num = Connect, fd = 5, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.388Z][ INFO][T0][#0] Accept success: 495
[2021-10-20T05:37:54.388Z][ INFO][T0][#0] io-uring normal complete, 495
[2021-10-20T05:37:54.388Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.388Z][TRACE][T1241][#25][···Close] Syscall { num = Close, fd = 3 }
[2021-10-20T05:37:54.388Z][DEBUG][T1241][#25][···Close] close: fd: 3
[2021-10-20T05:37:54.388Z][TRACE][T1241][#26][···Write] Syscall { num = Write, fd = 5, buf = 0x7f4de9402953, size = 26 }
[2021-10-20T05:37:54.388Z][DEBUG][T1241][#26][···Write] write: fd: 5
[2021-10-20T05:37:54.388Z][TRACE][T1241][#27][····Read] Syscall { num = Read, fd = 5, buf = 0x7f4deaa95df0, size = 4 }
[2021-10-20T05:37:54.388Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.388Z][DEBUG][T1241][#27][····Read] read: fd: 5
[2021-10-20T05:37:54.388Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.388Z][TRACE][T1243][#7][····Read] Syscall { num = Read, fd = 5, buf = 0x7f4df1495de0, size = 100 }
[2021-10-20T05:37:54.388Z][DEBUG][T1243][#7][····Read] read: fd: 5
[2021-10-20T05:37:54.388Z][TRACE][T1243][#8][···Write] Syscall { num = Write, fd = 5, buf = 0x7f4defe01231, size = 4 }
[2021-10-20T05:37:54.388Z][DEBUG][T1243][#8][···Write] write: fd: 5
[2021-10-20T05:37:54.389Z][TRACE][T1243][#9][··Sendto] Syscall { num = Sendto, fd = 5, base = 0x7f4df1495de0, len = 26, flags = 0, addr = 0x0, addr_len = 0 }
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.389Z][TRACE][T1243][#10][···Close] Syscall { num = Close, fd = 5 }
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.389Z][DEBUG][T1243][#10][···Close] close: fd: 5
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.389Z][ INFO][T1243][#10][···Close] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] close fd 26
[2021-10-20T05:37:54.389Z][TRACE][T1243][#11][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.389Z][DEBUG][T1243][#11][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.389Z][DEBUG][T1243][#11][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.389Z][DEBUG][T1241][#27][····Read] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.389Z][TRACE][T1241][#28][Recvfrom] Syscall { num = Recvfrom, fd = 5, base = 0x7f4deaa95df0, len = 32, flags = 0, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.389Z][TRACE][T1241][#29][···Wait4] Syscall { num = Wait4, pid = 1243, _exit_status = 0x7f4deaa95e0c }
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.389Z][ INFO][T1241][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.389Z][TRACE][T1241][#30][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.389Z][ INFO][T1241][#30][··Socket] open fd 26
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][TRACE][T1241][#31][Setsockopt] Syscall { num = Setsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 4 }
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.389Z][DEBUG][T1241][#31][Setsockopt] setsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 4
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][ INFO][T1241][#31][Setsockopt] fd: 26, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][TRACE][T1241][#32][Getsockopt] Syscall { num = Getsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 0x7f4deaa95db4 }
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.389Z][DEBUG][T1241][#32][Getsockopt] getsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 0x7f4deaa95db4
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][TRACE][T1241][#33][····Bind] Syscall { num = Bind, fd = 3, addr = 0x7f4deaa95dc0, addr_len = 16 }
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][TRACE][T1241][#34][··Listen] Syscall { num = Listen, fd = 3, backlog = 10 }
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][TRACE][T1241][#35][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e2c, path = 0x7f4de9402939, argv = 0x7f4deaa95dd0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][DEBUG][T1241][#35][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8802"], envp: [], fdop: []
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.389Z][DEBUG][T1241][#35][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.389Z][DEBUG][T1241][#35][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.389Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] close fd 493
[2021-10-20T05:37:54.389Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.393Z][DEBUG][T1241][#35][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.393Z][DEBUG][T1241][#35][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.394Z][ INFO][T1241][#35][SpawnMusl] Process created: elf = /bin/client, pid = 1244
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#0] Thread #1244 is executed as task #1244
[2021-10-20T05:37:54.394Z][TRACE][T1241][#36][··Accept] Syscall { num = Accept, fd = 3, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.394Z][TRACE][T1244][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.394Z][TRACE][T1244][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.394Z][TRACE][T1244][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.394Z][ WARN][T1244][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.394Z][TRACE][T1244][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.394Z][ WARN][T1244][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.394Z][TRACE][T1244][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.394Z][ INFO][T1244][#5][··Socket] open fd 493
[2021-10-20T05:37:54.394Z][TRACE][T1244][#6][·Connect] Syscall { num = Connect, fd = 6, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] Accept success: 496
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 496
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.394Z][TRACE][T1241][#37][···Close] Syscall { num = Close, fd = 3 }
[2021-10-20T05:37:54.394Z][DEBUG][T1241][#37][···Close] close: fd: 3
[2021-10-20T05:37:54.394Z][TRACE][T1241][#38][···Write] Syscall { num = Write, fd = 6, buf = 0x7f4de9402953, size = 26 }
[2021-10-20T05:37:54.394Z][TRACE][T1244][#7][····Read] Syscall { num = Read, fd = 6, buf = 0x7f4df1495de0, size = 100 }
[2021-10-20T05:37:54.394Z][DEBUG][T1241][#38][···Write] write: fd: 6
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#7][····Read] read: fd: 6
[2021-10-20T05:37:54.394Z][TRACE][T1241][#39][····Read] Syscall { num = Read, fd = 6, buf = 0x7f4deaa95df0, size = 4 }
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.394Z][DEBUG][T1241][#39][····Read] read: fd: 6
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.394Z][TRACE][T1244][#8][···Write] Syscall { num = Write, fd = 6, buf = 0x7f4defe01231, size = 4 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#8][···Write] write: fd: 6
[2021-10-20T05:37:54.394Z][TRACE][T1244][#9][·Sendmsg] Syscall { num = Sendmsg, fd = 6, msg_ptr = 0x7f4df1495908, flags = 0 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#9][·Sendmsg] sendmsg: fd: 6, msg: 0x7f4df1495908, flags: 0x0
[2021-10-20T05:37:54.394Z][TRACE][T1244][#10][·Sendmsg] Syscall { num = Sendmsg, fd = 6, msg_ptr = 0x7f4df1495908, flags = 0 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#10][·Sendmsg] sendmsg: fd: 6, msg: 0x7f4df1495908, flags: 0x0
[2021-10-20T05:37:54.394Z][TRACE][T1244][#11][···Close] Syscall { num = Close, fd = 6 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#11][···Close] close: fd: 6
[2021-10-20T05:37:54.394Z][ INFO][T1244][#11][···Close] cancel sent
[2021-10-20T05:37:54.394Z][TRACE][T1244][#12][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#12][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.394Z][DEBUG][T1244][#12][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.394Z][DEBUG][T1241][#39][····Read] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.394Z][TRACE][T1241][#40][·Recvmsg] Syscall { num = Recvmsg, fd = 6, msg_mut_ptr = 0x7f4deaa95d08, flags = 0 }
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] close fd 493
[2021-10-20T05:37:54.394Z][DEBUG][T1241][#40][·Recvmsg] recvmsg: fd: 6, msg: 0x7f4deaa95d08, flags: 0x0
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.394Z][TRACE][T1241][#41][·Recvmsg] Syscall { num = Recvmsg, fd = 6, msg_mut_ptr = 0x7f4deaa95d08, flags = 0 }
[2021-10-20T05:37:54.394Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.394Z][DEBUG][T1241][#41][·Recvmsg] recvmsg: fd: 6, msg: 0x7f4deaa95d08, flags: 0x0
[2021-10-20T05:37:54.394Z][TRACE][T1241][#42][···Wait4] Syscall { num = Wait4, pid = 1244, _exit_status = 0x7f4deaa95e0c }
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.394Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.395Z][ INFO][T1241][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.395Z][TRACE][T1241][#43][Socketpair] Syscall { num = Socketpair, domain = 1, socket_type = 1, protocol = 0, sv = 0x7f4deaa95de0 }
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.395Z][DEBUG][T1241][#43][Socketpair] socketpair: (3, 7)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][TRACE][T1241][#44][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95ddc, path = 0x7f4de9402939, argv = 0x7f4deaa95df0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][DEBUG][T1241][#44][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "NULL", "8803", "7"], envp: [], fdop: []
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.395Z][DEBUG][T1241][#44][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.395Z][DEBUG][T1241][#44][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.395Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] close fd 26
[2021-10-20T05:37:54.395Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.399Z][DEBUG][T1241][#44][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.399Z][DEBUG][T1241][#44][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.399Z][ INFO][T1241][#44][SpawnMusl] Process created: elf = /bin/client, pid = 1245
[2021-10-20T05:37:54.399Z][TRACE][T1241][#45][··Socket] Syscall { num = Socket, domain = 2, socket_type = 2, protocol = 0 }
[2021-10-20T05:37:54.399Z][ INFO][T1241][#45][··Socket] open fd 26
[2021-10-20T05:37:54.399Z][TRACE][T1241][#46][····Bind] Syscall { num = Bind, fd = 8, addr = 0x7f4deaa95d40, addr_len = 16 }
[2021-10-20T05:37:54.399Z][TRACE][T1241][#47][·Recvmsg] Syscall { num = Recvmsg, fd = 8, msg_mut_ptr = 0x7f4deaa958f8, flags = 0 }
[2021-10-20T05:37:54.399Z][DEBUG][T1241][#47][·Recvmsg] recvmsg: fd: 8, msg: 0x7f4deaa958f8, flags: 0x0
[2021-10-20T05:37:54.399Z][DEBUG][T1245][#0] Thread #1245 is executed as task #1245
[2021-10-20T05:37:54.399Z][TRACE][T1245][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.399Z][DEBUG][T1245][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.399Z][TRACE][T1245][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.399Z][DEBUG][T1245][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.399Z][TRACE][T1245][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.399Z][DEBUG][T1245][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.399Z][ WARN][T1245][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.399Z][TRACE][T1245][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.399Z][DEBUG][T1245][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.399Z][ WARN][T1245][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.399Z][TRACE][T1245][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 2, protocol = 0 }
[2021-10-20T05:37:54.400Z][ INFO][T1245][#5][··Socket] open fd 498
[2021-10-20T05:37:54.400Z][TRACE][T1245][#6][·Sendmsg] Syscall { num = Sendmsg, fd = 8, msg_ptr = 0x7f4df14958e8, flags = 0 }
[2021-10-20T05:37:54.400Z][DEBUG][T1245][#6][·Sendmsg] sendmsg: fd: 8, msg: 0x7f4df14958e8, flags: 0x0
[2021-10-20T05:37:54.400Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.400Z][TRACE][T1245][#7][····Read] Syscall { num = Read, fd = 7, buf = 0x7f4df1495dd0, size = 4 }
[2021-10-20T05:37:54.400Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.400Z][DEBUG][T1245][#7][····Read] read: fd: 7
[2021-10-20T05:37:54.400Z][TRACE][T1241][#48][···Write] Syscall { num = Write, fd = 3, buf = 0x7f4de94029b0, size = 4 }
[2021-10-20T05:37:54.400Z][DEBUG][T1241][#48][···Write] write: fd: 3
[2021-10-20T05:37:54.400Z][TRACE][T1241][#49][···Wait4] Syscall { num = Wait4, pid = 1245, _exit_status = 0x7f4deaa95dbc }
[2021-10-20T05:37:54.400Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.400Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.400Z][TRACE][T1245][#8][···Close] Syscall { num = Close, fd = 0 }
[2021-10-20T05:37:54.400Z][DEBUG][T1245][#8][···Close] close: fd: 0
[2021-10-20T05:37:54.400Z][TRACE][T1245][#9][ExitGroup] Syscall { num = ExitGroup, exit_status = 13 }
[2021-10-20T05:37:54.400Z][DEBUG][T1245][#9][ExitGroup] exit_group: 13
[2021-10-20T05:37:54.400Z][DEBUG][T1245][#9][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.400Z][ INFO][T1241][#49][···Wait4] cancel sent
[2021-10-20T05:37:54.400Z][ INFO][T0][#0] close fd 498
[2021-10-20T05:37:54.400Z][DEBUG][T1241][#49][···Wait4] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.400Z][TRACE][T1241][#50][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.400Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.400Z][ INFO][T1241][#50][··Socket] open fd 498
[2021-10-20T05:37:54.400Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.400Z][TRACE][T1241][#51][Setsockopt] Syscall { num = Setsockopt, fd = 9, level = 1, optname = 2, optval = 0x7f4deaa95ba0, optlen = 4 }
[2021-10-20T05:37:54.400Z][DEBUG][T1241][#51][Setsockopt] setsockopt: fd: 9, level: 1, optname: 2, optval: 0x7f4deaa95ba0, optlen: 4
[2021-10-20T05:37:54.400Z][ INFO][T1241][#51][Setsockopt] fd: 498, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.400Z][TRACE][T1241][#52][Getsockopt] Syscall { num = Getsockopt, fd = 9, level = 1, optname = 2, optval = 0x7f4deaa95ba0, optlen = 0x7f4deaa95ba4 }
[2021-10-20T05:37:54.400Z][DEBUG][T1241][#52][Getsockopt] getsockopt: fd: 9, level: 1, optname: 2, optval: 0x7f4deaa95ba0, optlen: 0x7f4deaa95ba4
[2021-10-20T05:37:54.400Z][TRACE][T1241][#53][····Bind] Syscall { num = Bind, fd = 9, addr = 0x7f4deaa95bb0, addr_len = 16 }
[2021-10-20T05:37:54.400Z][TRACE][T1241][#54][··Listen] Syscall { num = Listen, fd = 9, backlog = 10 }
[2021-10-20T05:37:54.400Z][TRACE][T1241][#55][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95c14, path = 0x7f4de9402939, argv = 0x7f4deaa95bc0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.400Z][DEBUG][T1241][#55][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8805"], envp: [], fdop: []
[2021-10-20T05:37:54.400Z][DEBUG][T1241][#55][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.400Z][DEBUG][T1241][#55][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.404Z][DEBUG][T1241][#55][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.404Z][DEBUG][T1241][#55][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.404Z][ INFO][T1241][#55][SpawnMusl] Process created: elf = /bin/client, pid = 1246
[2021-10-20T05:37:54.404Z][DEBUG][T1246][#0] Thread #1246 is executed as task #1246
[2021-10-20T05:37:54.404Z][TRACE][T1241][#56][··Accept] Syscall { num = Accept, fd = 9, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.404Z][TRACE][T1246][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.405Z][DEBUG][T1246][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.405Z][TRACE][T1246][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.405Z][DEBUG][T1246][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.405Z][TRACE][T1246][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.405Z][DEBUG][T1246][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.405Z][ WARN][T1246][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.405Z][TRACE][T1246][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.405Z][DEBUG][T1246][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.405Z][ WARN][T1246][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.405Z][TRACE][T1246][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.405Z][ INFO][T1246][#5][··Socket] open fd 499
[2021-10-20T05:37:54.405Z][TRACE][T1246][#6][·Connect] Syscall { num = Connect, fd = 10, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] Accept success: 500
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, 500
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.405Z][TRACE][T1241][#57][···Close] Syscall { num = Close, fd = 9 }
[2021-10-20T05:37:54.405Z][DEBUG][T1241][#57][···Close] close: fd: 9
[2021-10-20T05:37:54.405Z][TRACE][T1241][#58][····Poll] Syscall { num = Poll, fds = 0x7f4deaa95c18, nfds = 1, timeout = -1 }
[2021-10-20T05:37:54.405Z][TRACE][T1246][#7][··Sendto] Syscall { num = Sendto, fd = 10, base = 0x7f4defe01235, len = 13, flags = 0, addr = 0x0, addr_len = 0 }
[2021-10-20T05:37:54.405Z][DEBUG][T1241][#58][····Poll] poll: poll_fds: [PollFd { fd: Some(10), events: IN, revents: Cell { value: (empty) } }], timeout: None
[2021-10-20T05:37:54.405Z][TRACE][T1246][#8][···Close] Syscall { num = Close, fd = 10 }
[2021-10-20T05:37:54.405Z][DEBUG][T1246][#8][···Close] close: fd: 10
[2021-10-20T05:37:54.405Z][ INFO][T1246][#8][···Close] cancel sent
[2021-10-20T05:37:54.405Z][TRACE][T1246][#9][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.405Z][DEBUG][T1246][#9][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.405Z][DEBUG][T1246][#9][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.405Z][DEBUG][T1241][#58][····Poll] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] close fd 499
[2021-10-20T05:37:54.405Z][TRACE][T1241][#59][····Read] Syscall { num = Read, fd = 10, buf = 0x7f4deaa95c20, size = 512 }
[2021-10-20T05:37:54.405Z][DEBUG][T1241][#59][····Read] read: fd: 10
[2021-10-20T05:37:54.405Z][TRACE][T1241][#60][···Wait4] Syscall { num = Wait4, pid = 1246, _exit_status = 0x7f4deaa95c20 }
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.405Z][ INFO][T1241][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.405Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.405Z][TRACE][T1241][#61][···Close] Syscall { num = Close, fd = 10 }
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.405Z][DEBUG][T1241][#61][···Close] close: fd: 10
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.405Z][ INFO][T1241][#61][···Close] close fd 500
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.405Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.405Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.405Z][TRACE][T1241][#62][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.405Z][ INFO][T1241][#62][··Socket] open fd 499
[2021-10-20T05:37:54.405Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.405Z][TRACE][T1241][#63][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.405Z][ INFO][T1241][#63][··Socket] open fd 500
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.405Z][TRACE][T1241][#64][····Poll] Syscall { num = Poll, fds = 0x7f4deaa95e10, nfds = 2, timeout = 0 }
[2021-10-20T05:37:54.405Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.405Z][DEBUG][T1241][#64][····Poll] poll: poll_fds: [PollFd { fd: Some(9), events: IN, revents: Cell { value: (empty) } }, PollFd { fd: Some(10), events: IN, revents: Cell { value: (empty) } }], timeout: Some(0ns)
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.405Z][TRACE][T1241][#65][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.405Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.405Z][ INFO][T1241][#65][··Socket] open fd 501
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.405Z][TRACE][T1241][#66][Setsockopt] Syscall { num = Setsockopt, fd = 11, level = 1, optname = 2, optval = 0x7f4deaa95e14, optlen = 4 }
[2021-10-20T05:37:54.405Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.405Z][DEBUG][T1241][#66][Setsockopt] setsockopt: fd: 11, level: 1, optname: 2, optval: 0x7f4deaa95e14, optlen: 4
[2021-10-20T05:37:54.405Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.406Z][ INFO][T1241][#66][Setsockopt] fd: 501, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.406Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.406Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.406Z][TRACE][T1241][#67][Getsockopt] Syscall { num = Getsockopt, fd = 11, level = 1, optname = 2, optval = 0x7f4deaa95e18, optlen = 0x7f4deaa95e1c }
[2021-10-20T05:37:54.406Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.406Z][DEBUG][T1241][#67][Getsockopt] getsockopt: fd: 11, level: 1, optname: 2, optval: 0x7f4deaa95e18, optlen: 0x7f4deaa95e1c
[2021-10-20T05:37:54.406Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.406Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.406Z][TRACE][T1241][#68][Getsockopt] Syscall { num = Getsockopt, fd = 11, level = 1, optname = 39, optval = 0x7f4deaa95e18, optlen = 0x7f4deaa95e1c }
[2021-10-20T05:37:54.406Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.406Z][DEBUG][T1241][#68][Getsockopt] getsockopt: fd: 11, level: 1, optname: 39, optval: 0x7f4deaa95e18, optlen: 0x7f4deaa95e1c
[2021-10-20T05:37:54.406Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.406Z][TRACE][T1241][#69][···Close] Syscall { num = Close, fd = 11 }
[2021-10-20T05:37:54.406Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.406Z][DEBUG][T1241][#69][···Close] close: fd: 11
[2021-10-20T05:37:54.406Z][ INFO][T0][#0] close fd 498
[2021-10-20T05:37:54.406Z][ INFO][T1241][#69][···Close] close fd 501
[2021-10-20T05:37:54.406Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.406Z][TRACE][T1241][#70][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.406Z][ INFO][T1241][#70][··Socket] open fd 498
[2021-10-20T05:37:54.406Z][TRACE][T1241][#71][Setsockopt] Syscall { num = Setsockopt, fd = 11, level = 1, optname = 2, optval = 0x7f4deaa95da0, optlen = 4 }
[2021-10-20T05:37:54.406Z][DEBUG][T1241][#71][Setsockopt] setsockopt: fd: 11, level: 1, optname: 2, optval: 0x7f4deaa95da0, optlen: 4
[2021-10-20T05:37:54.406Z][ INFO][T1241][#71][Setsockopt] fd: 498, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.406Z][TRACE][T1241][#72][Getsockopt] Syscall { num = Getsockopt, fd = 11, level = 1, optname = 2, optval = 0x7f4deaa95da0, optlen = 0x7f4deaa95da4 }
[2021-10-20T05:37:54.406Z][DEBUG][T1241][#72][Getsockopt] getsockopt: fd: 11, level: 1, optname: 2, optval: 0x7f4deaa95da0, optlen: 0x7f4deaa95da4
[2021-10-20T05:37:54.406Z][TRACE][T1241][#73][····Bind] Syscall { num = Bind, fd = 11, addr = 0x7f4deaa95db0, addr_len = 16 }
[2021-10-20T05:37:54.406Z][TRACE][T1241][#74][··Listen] Syscall { num = Listen, fd = 11, backlog = 10 }
[2021-10-20T05:37:54.406Z][TRACE][T1241][#75][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e14, path = 0x7f4de9402939, argv = 0x7f4deaa95dc0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.406Z][DEBUG][T1241][#75][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8806"], envp: [], fdop: []
[2021-10-20T05:37:54.406Z][DEBUG][T1241][#75][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.406Z][DEBUG][T1241][#75][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.410Z][DEBUG][T1241][#75][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.410Z][DEBUG][T1241][#75][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.410Z][ INFO][T1241][#75][SpawnMusl] Process created: elf = /bin/client, pid = 1247
[2021-10-20T05:37:54.410Z][TRACE][T1241][#76][··Accept] Syscall { num = Accept, fd = 11, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.410Z][DEBUG][T1247][#0] Thread #1247 is executed as task #1247
[2021-10-20T05:37:54.410Z][TRACE][T1247][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.410Z][DEBUG][T1247][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.410Z][TRACE][T1247][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.410Z][DEBUG][T1247][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.410Z][TRACE][T1247][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.410Z][DEBUG][T1247][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.410Z][ WARN][T1247][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.410Z][TRACE][T1247][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.410Z][DEBUG][T1247][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.410Z][ WARN][T1247][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.411Z][TRACE][T1247][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.411Z][ INFO][T1247][#5][··Socket] open fd 501
[2021-10-20T05:37:54.411Z][TRACE][T1247][#6][·Connect] Syscall { num = Connect, fd = 12, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] Accept success: 502
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, 502
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.411Z][TRACE][T1241][#77][···Close] Syscall { num = Close, fd = 11 }
[2021-10-20T05:37:54.411Z][DEBUG][T1241][#77][···Close] close: fd: 11
[2021-10-20T05:37:54.411Z][TRACE][T1241][#78][Getsockname] Syscall { num = Getsockname, fd = 12, addr = 0x7f4deaa95e20, addr_len = 0x7f4deaa95e18 }
[2021-10-20T05:37:54.411Z][TRACE][T1241][#79][Getpeername] Syscall { num = Getpeername, fd = 12, addr = 0x7f4deaa95de0, addr_len = 0x7f4deaa95dd8 }
[2021-10-20T05:37:54.411Z][TRACE][T1241][#80][Getsockopt] Syscall { num = Getsockopt, fd = 12, level = 1, optname = 28, optval = 0x7f4deaa95df0, optlen = 0x7f4deaa95ddc }
[2021-10-20T05:37:54.411Z][DEBUG][T1241][#80][Getsockopt] getsockopt: fd: 12, level: 1, optname: 28, optval: 0x7f4deaa95df0, optlen: 0x7f4deaa95ddc
[2021-10-20T05:37:54.411Z][TRACE][T1241][#81][···Wait4] Syscall { num = Wait4, pid = 1247, _exit_status = 0x7f4deaa95e1c }
[2021-10-20T05:37:54.411Z][TRACE][T1247][#7][··Sendto] Syscall { num = Sendto, fd = 12, base = 0x7f4defe01235, len = 13, flags = 0, addr = 0x0, addr_len = 0 }
[2021-10-20T05:37:54.411Z][TRACE][T1247][#8][···Close] Syscall { num = Close, fd = 12 }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.411Z][DEBUG][T1247][#8][···Close] close: fd: 12
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.411Z][ INFO][T1247][#8][···Close] cancel sent
[2021-10-20T05:37:54.411Z][TRACE][T1247][#9][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] close fd 501
[2021-10-20T05:37:54.411Z][DEBUG][T1247][#9][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.411Z][DEBUG][T1247][#9][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.411Z][ INFO][T1241][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.411Z][DEBUG][T1241][#81][···Wait4] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.411Z][TRACE][T1241][#82][···Close] Syscall { num = Close, fd = 12 }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.411Z][DEBUG][T1241][#82][···Close] close: fd: 12
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][ INFO][T1241][#82][···Close] close fd 502
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.411Z][TRACE][T1241][#83][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][ INFO][T1241][#83][··Socket] open fd 501
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][TRACE][T1241][#84][Getsockname] Syscall { num = Getsockname, fd = 11, addr = 0x7f4deaa95e00, addr_len = 0x7f4deaa95df4 }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][TRACE][T1241][#85][Getpeername] Syscall { num = Getpeername, fd = 11, addr = 0x7f4deaa95e10, addr_len = 0x7f4deaa95df8 }
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][ERROR][T1241][#85][Getpeername] Error = ENOTCONN (#107, Unknown error): the socket is not connected [line = 259, file = crates/host-socket/src/stream/mod.rs]
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.411Z][TRACE][T1241][#86][Getsockopt] Syscall { num = Getsockopt, fd = 11, level = 1, optname = 28, optval = 0x7f4deaa95e20, optlen = 0x7f4deaa95dfc }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][DEBUG][T1241][#86][Getsockopt] getsockopt: fd: 11, level: 1, optname: 28, optval: 0x7f4deaa95e20, optlen: 0x7f4deaa95dfc
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][ERROR][T1241][#86][Getsockopt] Error = ENOTCONN (#107, Unknown error): the socket is not connected [line = 259, file = crates/host-socket/src/stream/mod.rs]
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][TRACE][T1241][#87][···Close] Syscall { num = Close, fd = 11 }
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][DEBUG][T1241][#87][···Close] close: fd: 11
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.411Z][ INFO][T1241][#87][···Close] close fd 501
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][TRACE][T1241][#88][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][ INFO][T1241][#88][··Socket] open fd 501
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][TRACE][T1241][#89][Shutdown] Syscall { num = Shutdown, fd = 11, how = 2 }
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.411Z][DEBUG][T1241][#89][Shutdown] shutdown: fd: 11, how: 2
[2021-10-20T05:37:54.411Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.411Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.411Z][ERROR][T1241][#89][Shutdown] Error = ENOTCONN (#107, Unknown error): the socket is not connected [line = 303, file = crates/host-socket/src/stream/mod.rs]
[2021-10-20T05:37:54.412Z][ INFO][T0][#0] close fd 498
[2021-10-20T05:37:54.412Z][TRACE][T1241][#90][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.412Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.412Z][ INFO][T1241][#90][··Socket] open fd 498
[2021-10-20T05:37:54.412Z][TRACE][T1241][#91][Setsockopt] Syscall { num = Setsockopt, fd = 12, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 4 }
[2021-10-20T05:37:54.412Z][DEBUG][T1241][#91][Setsockopt] setsockopt: fd: 12, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 4
[2021-10-20T05:37:54.412Z][ INFO][T1241][#91][Setsockopt] fd: 498, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.412Z][TRACE][T1241][#92][Getsockopt] Syscall { num = Getsockopt, fd = 12, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 0x7f4deaa95db4 }
[2021-10-20T05:37:54.412Z][DEBUG][T1241][#92][Getsockopt] getsockopt: fd: 12, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 0x7f4deaa95db4
[2021-10-20T05:37:54.412Z][TRACE][T1241][#93][····Bind] Syscall { num = Bind, fd = 12, addr = 0x7f4deaa95dc0, addr_len = 16 }
[2021-10-20T05:37:54.412Z][TRACE][T1241][#94][··Listen] Syscall { num = Listen, fd = 12, backlog = 10 }
[2021-10-20T05:37:54.412Z][TRACE][T1241][#95][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e28, path = 0x7f4de9402939, argv = 0x7f4deaa95dd0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.412Z][DEBUG][T1241][#95][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8807"], envp: [], fdop: []
[2021-10-20T05:37:54.412Z][DEBUG][T1241][#95][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.412Z][DEBUG][T1241][#95][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.416Z][DEBUG][T1241][#95][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.416Z][DEBUG][T1241][#95][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.416Z][ INFO][T1241][#95][SpawnMusl] Process created: elf = /bin/client, pid = 1248
[2021-10-20T05:37:54.416Z][DEBUG][T1248][#0] Thread #1248 is executed as task #1248
[2021-10-20T05:37:54.416Z][TRACE][T1241][#96][··Accept] Syscall { num = Accept, fd = 12, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.416Z][TRACE][T1248][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.416Z][DEBUG][T1248][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.416Z][TRACE][T1248][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.416Z][DEBUG][T1248][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.416Z][TRACE][T1248][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.416Z][DEBUG][T1248][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.416Z][ WARN][T1248][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.416Z][TRACE][T1248][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.416Z][DEBUG][T1248][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.416Z][ WARN][T1248][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.416Z][TRACE][T1248][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.416Z][ INFO][T1248][#5][··Socket] open fd 502
[2021-10-20T05:37:54.416Z][TRACE][T1248][#6][·Connect] Syscall { num = Connect, fd = 13, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.416Z][ INFO][T0][#0] Accept success: 503
[2021-10-20T05:37:54.416Z][ INFO][T0][#0] io-uring normal complete, 503
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.417Z][TRACE][T1241][#97][···Close] Syscall { num = Close, fd = 12 }
[2021-10-20T05:37:54.417Z][DEBUG][T1241][#97][···Close] close: fd: 12
[2021-10-20T05:37:54.417Z][TRACE][T1241][#98][Shutdown] Syscall { num = Shutdown, fd = 13, how = 2 }
[2021-10-20T05:37:54.417Z][DEBUG][T1241][#98][Shutdown] shutdown: fd: 13, how: 2
[2021-10-20T05:37:54.417Z][TRACE][T1248][#7][··Sendto] Syscall { num = Sendto, fd = 13, base = 0x7f4defe01235, len = 13, flags = 0, addr = 0x0, addr_len = 0 }
[2021-10-20T05:37:54.417Z][TRACE][T1241][#99][···Wait4] Syscall { num = Wait4, pid = 1248, _exit_status = 0x7f4deaa95e2c }
[2021-10-20T05:37:54.417Z][TRACE][T1248][#8][···Close] Syscall { num = Close, fd = 13 }
[2021-10-20T05:37:54.417Z][DEBUG][T1248][#8][···Close] close: fd: 13
[2021-10-20T05:37:54.417Z][ INFO][T1248][#8][···Close] cancel sent
[2021-10-20T05:37:54.417Z][TRACE][T1248][#9][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.417Z][DEBUG][T1248][#9][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.417Z][DEBUG][T1248][#9][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.417Z][DEBUG][T1241][#99][···Wait4] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][TRACE][T1241][#100][···Close] Syscall { num = Close, fd = 13 }
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][DEBUG][T1241][#100][···Close] close: fd: 13
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][ INFO][T1241][#100][···Close] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][TRACE][T1241][#101][··Writev] Syscall { num = Writev, fd = 1, iov = 0x7f4deaa95dd0, count = 2 }
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][DEBUG][T1241][#101][··Writev] writev: fd: 1
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
func test_send_recv - [OK]
func test_sendmsg_recvmsg - [OK]
func test_sendmsg_recvmsg_connectionless - [OK]
func test_poll - [OK]
func test_poll_events_unchanged - [OK]
func test_sockopt - [OK]
[socket with bind] address: 127.0.0.1
[socket with bind] port: 8806
Peer address: 127.0.0.1
Peer port: 34916
func test_getname - [OK]
[socket without bind] address: 0.0.0.0
[socket without bind] port: 0
func test_getname_without_bind - [OK]
func test_shutdown - [OK]
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][TRACE][T1241][#102][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][DEBUG][T1241][#102][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][DEBUG][T1241][#102][ExitGroup] futex_wake_bitset addr: 0x7f4de9c95364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][ INFO] close fd 494
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.417Z][ INFO] close fd 495
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] close fd 503
[2021-10-20T05:37:54.417Z][ INFO] close fd 496
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO] cancel sent
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] close fd 502
[2021-10-20T05:37:54.417Z][ INFO] close fd 499
[2021-10-20T05:37:54.417Z][ INFO] close fd 500
[2021-10-20T05:37:54.417Z][ INFO] close fd 501
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -2
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] close fd 493
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.417Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.417Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.418Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.418Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.418Z][ INFO][T0][#0] close fd 497
[2021-10-20T05:37:54.418Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.418Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.418Z][ INFO][T0][#0] close fd 26
[2021-10-20T05:37:54.418Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.418Z][ INFO][T0][#0] io-uring cancel complete, 0
PASS
RUN TEST => server
[2021-10-20T05:37:54.491Z][TRACE] env_checked from env untrusted: []
[2021-10-20T05:37:54.492Z][TRACE] env_merged = ["OCCLUM=yes", "STABLE=yes", "OVERRIDE=N"] (default env and untrusted env)
[2021-10-20T05:37:54.492Z][DEBUG] lookup_inode: cwd: "/", path: "/bin/server"
[2021-10-20T05:37:54.492Z][DEBUG] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.509Z][DEBUG] allocated rsrv addr is 0x7f4de93cf000, len is 0x6896000
[2021-10-20T05:37:54.510Z][ INFO] Process created: elf = /bin/server, pid = 1249
[2021-10-20T05:37:54.510Z][DEBUG][T1249][#0] Thread #1249 is executed as task #1249
[2021-10-20T05:37:54.510Z][TRACE][T1249][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4de9c94d88 }
[2021-10-20T05:37:54.510Z][DEBUG][T1249][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4de9c94d88
[2021-10-20T05:37:54.510Z][TRACE][T1249][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4de9c95364 }
[2021-10-20T05:37:54.510Z][DEBUG][T1249][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4de9c95364
[2021-10-20T05:37:54.510Z][TRACE][T1249][#3][Mprotect] Syscall { num = Mprotect, addr = 139972611477504, len = 4096, prot = 1 }
[2021-10-20T05:37:54.510Z][DEBUG][T1249][#3][Mprotect] mprotect: addr: 0x7f4de9c91000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.510Z][ WARN][T1249][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.510Z][TRACE][T1249][#4][Mprotect] Syscall { num = Mprotect, addr = 139972604604416, len = 4096, prot = 1 }
[2021-10-20T05:37:54.510Z][DEBUG][T1249][#4][Mprotect] mprotect: addr: 0x7f4de9603000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.510Z][ WARN][T1249][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.510Z][TRACE][T1249][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.511Z][ INFO][T1249][#5][··Socket] open fd 26
[2021-10-20T05:37:54.511Z][TRACE][T1249][#6][Setsockopt] Syscall { num = Setsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 4 }
[2021-10-20T05:37:54.511Z][DEBUG][T1249][#6][Setsockopt] setsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 4
[2021-10-20T05:37:54.511Z][ INFO][T1249][#6][Setsockopt] fd: 26, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.511Z][TRACE][T1249][#7][Getsockopt] Syscall { num = Getsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 0x7f4deaa95db4 }
[2021-10-20T05:37:54.511Z][DEBUG][T1249][#7][Getsockopt] getsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 0x7f4deaa95db4
[2021-10-20T05:37:54.511Z][TRACE][T1249][#8][····Bind] Syscall { num = Bind, fd = 3, addr = 0x7f4deaa95dc0, addr_len = 16 }
[2021-10-20T05:37:54.511Z][TRACE][T1249][#9][··Listen] Syscall { num = Listen, fd = 3, backlog = 10 }
[2021-10-20T05:37:54.511Z][TRACE][T1249][#10][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e28, path = 0x7f4de9402939, argv = 0x7f4deaa95dd0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.511Z][DEBUG][T1249][#10][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8800"], envp: [], fdop: []
[2021-10-20T05:37:54.511Z][DEBUG][T1249][#10][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.511Z][DEBUG][T1249][#10][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.515Z][DEBUG][T1249][#10][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.515Z][DEBUG][T1249][#10][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.515Z][ INFO][T1249][#10][SpawnMusl] Process created: elf = /bin/client, pid = 1250
[2021-10-20T05:37:54.515Z][TRACE][T1249][#11][··Accept] Syscall { num = Accept, fd = 3, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.515Z][DEBUG][T1250][#0] Thread #1250 is executed as task #1250
[2021-10-20T05:37:54.515Z][TRACE][T1250][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.515Z][DEBUG][T1250][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.515Z][TRACE][T1250][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.515Z][DEBUG][T1250][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.515Z][TRACE][T1250][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.515Z][DEBUG][T1250][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.515Z][ WARN][T1250][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.516Z][TRACE][T1250][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.516Z][DEBUG][T1250][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.516Z][ WARN][T1250][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.516Z][TRACE][T1250][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.516Z][ INFO][T1250][#5][··Socket] open fd 496
[2021-10-20T05:37:54.516Z][TRACE][T1250][#6][·Connect] Syscall { num = Connect, fd = 4, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] Accept success: 497
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, 497
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.516Z][TRACE][T1249][#12][···Close] Syscall { num = Close, fd = 3 }
[2021-10-20T05:37:54.516Z][DEBUG][T1249][#12][···Close] close: fd: 3
[2021-10-20T05:37:54.516Z][TRACE][T1249][#13][···Write] Syscall { num = Write, fd = 4, buf = 0x7f4de9402953, size = 26 }
[2021-10-20T05:37:54.516Z][DEBUG][T1249][#13][···Write] write: fd: 4
[2021-10-20T05:37:54.516Z][TRACE][T1250][#7][····Read] Syscall { num = Read, fd = 4, buf = 0x7f4df1495de0, size = 100 }
[2021-10-20T05:37:54.516Z][TRACE][T1249][#14][····Read] Syscall { num = Read, fd = 4, buf = 0x7f4deaa95df0, size = 4 }
[2021-10-20T05:37:54.516Z][DEBUG][T1250][#7][····Read] read: fd: 4
[2021-10-20T05:37:54.516Z][DEBUG][T1249][#14][····Read] read: fd: 4
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.516Z][TRACE][T1250][#8][···Write] Syscall { num = Write, fd = 4, buf = 0x7f4defe01231, size = 4 }
[2021-10-20T05:37:54.516Z][DEBUG][T1250][#8][···Write] write: fd: 4
[2021-10-20T05:37:54.516Z][TRACE][T1250][#9][···Close] Syscall { num = Close, fd = 4 }
[2021-10-20T05:37:54.516Z][DEBUG][T1250][#9][···Close] close: fd: 4
[2021-10-20T05:37:54.516Z][ INFO][T1250][#9][···Close] cancel sent
[2021-10-20T05:37:54.516Z][TRACE][T1250][#10][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.516Z][DEBUG][T1250][#10][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.516Z][DEBUG][T1250][#10][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.516Z][DEBUG][T1249][#14][····Read] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] close fd 496
[2021-10-20T05:37:54.516Z][TRACE][T1249][#15][···Wait4] Syscall { num = Wait4, pid = 1250, _exit_status = 0x7f4deaa95e2c }
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.516Z][ INFO][T1249][#15][···Wait4] cancel sent
[2021-10-20T05:37:54.516Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.516Z][ERROR][T1249][#16] Error = EINVAL (#22, Invalid argument): Invalid system call number (16) [line = 674, file = src/entry/syscall.rs]
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.516Z][TRACE][T1249][#17][··Writev] Syscall { num = Writev, fd = 1, iov = 0x7f4deaa95a40, count = 2 }
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.516Z][DEBUG][T1249][#17][··Writev] writev: fd: 1
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring cancel complete, -114
func test_read_write - [OK]
[2021-10-20T05:37:54.516Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.516Z][TRACE][T1249][#18][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.516Z][ INFO][T1249][#18][··Socket] open fd 496
[2021-10-20T05:37:54.516Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.516Z][TRACE][T1249][#19][Setsockopt] Syscall { num = Setsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 4 }
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.516Z][DEBUG][T1249][#19][Setsockopt] setsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 4
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.516Z][ INFO][T1249][#19][Setsockopt] fd: 496, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.516Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.516Z][TRACE][T1249][#20][Getsockopt] Syscall { num = Getsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 0x7f4deaa95db4 }
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.516Z][DEBUG][T1249][#20][Getsockopt] getsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 0x7f4deaa95db4
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.516Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.516Z][TRACE][T1249][#21][····Bind] Syscall { num = Bind, fd = 3, addr = 0x7f4deaa95dc0, addr_len = 16 }
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.516Z][TRACE][T1249][#22][··Listen] Syscall { num = Listen, fd = 3, backlog = 10 }
[2021-10-20T05:37:54.516Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.516Z][TRACE][T1249][#23][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e2c, path = 0x7f4de9402939, argv = 0x7f4deaa95dd0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.516Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.517Z][DEBUG][T1249][#23][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8801"], envp: [], fdop: []
[2021-10-20T05:37:54.517Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.517Z][DEBUG][T1249][#23][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.517Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.517Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.517Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.517Z][DEBUG][T1249][#23][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.517Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.517Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.517Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.517Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.517Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.517Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.517Z][ INFO][T0][#0] close fd 26
[2021-10-20T05:37:54.517Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.521Z][DEBUG][T1249][#23][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.521Z][DEBUG][T1249][#23][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.521Z][ INFO][T1249][#23][SpawnMusl] Process created: elf = /bin/client, pid = 1251
[2021-10-20T05:37:54.521Z][TRACE][T1249][#24][··Accept] Syscall { num = Accept, fd = 3, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.521Z][DEBUG][T1251][#0] Thread #1251 is executed as task #1251
[2021-10-20T05:37:54.521Z][TRACE][T1251][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.521Z][DEBUG][T1251][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.521Z][TRACE][T1251][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.521Z][DEBUG][T1251][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.521Z][TRACE][T1251][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.521Z][DEBUG][T1251][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.521Z][ WARN][T1251][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.521Z][TRACE][T1251][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.521Z][DEBUG][T1251][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.521Z][ WARN][T1251][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.521Z][TRACE][T1251][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.521Z][ INFO][T1251][#5][··Socket] open fd 26
[2021-10-20T05:37:54.521Z][TRACE][T1251][#6][·Connect] Syscall { num = Connect, fd = 5, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.521Z][ INFO][T0][#0] Accept success: 499
[2021-10-20T05:37:54.521Z][ INFO][T0][#0] io-uring normal complete, 499
[2021-10-20T05:37:54.521Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.521Z][TRACE][T1249][#25][···Close] Syscall { num = Close, fd = 3 }
[2021-10-20T05:37:54.521Z][DEBUG][T1249][#25][···Close] close: fd: 3
[2021-10-20T05:37:54.521Z][TRACE][T1249][#26][···Write] Syscall { num = Write, fd = 5, buf = 0x7f4de9402953, size = 26 }
[2021-10-20T05:37:54.521Z][DEBUG][T1249][#26][···Write] write: fd: 5
[2021-10-20T05:37:54.521Z][TRACE][T1249][#27][····Read] Syscall { num = Read, fd = 5, buf = 0x7f4deaa95df0, size = 4 }
[2021-10-20T05:37:54.521Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.521Z][DEBUG][T1249][#27][····Read] read: fd: 5
[2021-10-20T05:37:54.521Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.521Z][TRACE][T1251][#7][····Read] Syscall { num = Read, fd = 5, buf = 0x7f4df1495de0, size = 100 }
[2021-10-20T05:37:54.522Z][DEBUG][T1251][#7][····Read] read: fd: 5
[2021-10-20T05:37:54.522Z][TRACE][T1251][#8][···Write] Syscall { num = Write, fd = 5, buf = 0x7f4defe01231, size = 4 }
[2021-10-20T05:37:54.522Z][DEBUG][T1251][#8][···Write] write: fd: 5
[2021-10-20T05:37:54.522Z][TRACE][T1251][#9][··Sendto] Syscall { num = Sendto, fd = 5, base = 0x7f4df1495de0, len = 26, flags = 0, addr = 0x0, addr_len = 0 }
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.522Z][TRACE][T1251][#10][···Close] Syscall { num = Close, fd = 5 }
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.522Z][DEBUG][T1251][#10][···Close] close: fd: 5
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.522Z][ INFO][T1251][#10][···Close] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] close fd 26
[2021-10-20T05:37:54.522Z][TRACE][T1251][#11][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.522Z][DEBUG][T1251][#11][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.522Z][DEBUG][T1251][#11][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.522Z][DEBUG][T1249][#27][····Read] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.522Z][TRACE][T1249][#28][Recvfrom] Syscall { num = Recvfrom, fd = 5, base = 0x7f4deaa95df0, len = 32, flags = 0, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.522Z][TRACE][T1249][#29][···Wait4] Syscall { num = Wait4, pid = 1251, _exit_status = 0x7f4deaa95e0c }
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.522Z][ INFO][T1249][#29][···Wait4] cancel sent
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.522Z][TRACE][T1249][#30][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.522Z][ INFO][T1249][#30][··Socket] open fd 26
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][TRACE][T1249][#31][Setsockopt] Syscall { num = Setsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 4 }
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][DEBUG][T1249][#31][Setsockopt] setsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 4
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.522Z][ INFO][T1249][#31][Setsockopt] fd: 26, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][TRACE][T1249][#32][Getsockopt] Syscall { num = Getsockopt, fd = 3, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 0x7f4deaa95db4 }
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.522Z][DEBUG][T1249][#32][Getsockopt] getsockopt: fd: 3, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 0x7f4deaa95db4
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][TRACE][T1249][#33][····Bind] Syscall { num = Bind, fd = 3, addr = 0x7f4deaa95dc0, addr_len = 16 }
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.522Z][TRACE][T1249][#34][··Listen] Syscall { num = Listen, fd = 3, backlog = 10 }
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][TRACE][T1249][#35][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e2c, path = 0x7f4de9402939, argv = 0x7f4deaa95dd0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.522Z][DEBUG][T1249][#35][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8802"], envp: [], fdop: []
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][DEBUG][T1249][#35][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][DEBUG][T1249][#35][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.522Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] close fd 496
[2021-10-20T05:37:54.522Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.526Z][DEBUG][T1249][#35][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.526Z][DEBUG][T1249][#35][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.527Z][ INFO][T1249][#35][SpawnMusl] Process created: elf = /bin/client, pid = 1252
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#0] Thread #1252 is executed as task #1252
[2021-10-20T05:37:54.527Z][TRACE][T1249][#36][··Accept] Syscall { num = Accept, fd = 3, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.527Z][TRACE][T1252][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.527Z][TRACE][T1252][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.527Z][TRACE][T1252][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.527Z][ WARN][T1252][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.527Z][TRACE][T1252][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.527Z][ WARN][T1252][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.527Z][TRACE][T1252][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.527Z][ INFO][T1252][#5][··Socket] open fd 496
[2021-10-20T05:37:54.527Z][TRACE][T1252][#6][·Connect] Syscall { num = Connect, fd = 6, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] Accept success: 500
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, 500
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.527Z][TRACE][T1249][#37][···Close] Syscall { num = Close, fd = 3 }
[2021-10-20T05:37:54.527Z][DEBUG][T1249][#37][···Close] close: fd: 3
[2021-10-20T05:37:54.527Z][TRACE][T1249][#38][···Write] Syscall { num = Write, fd = 6, buf = 0x7f4de9402953, size = 26 }
[2021-10-20T05:37:54.527Z][DEBUG][T1249][#38][···Write] write: fd: 6
[2021-10-20T05:37:54.527Z][TRACE][T1252][#7][····Read] Syscall { num = Read, fd = 6, buf = 0x7f4df1495de0, size = 100 }
[2021-10-20T05:37:54.527Z][TRACE][T1249][#39][····Read] Syscall { num = Read, fd = 6, buf = 0x7f4deaa95df0, size = 4 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#7][····Read] read: fd: 6
[2021-10-20T05:37:54.527Z][DEBUG][T1249][#39][····Read] read: fd: 6
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.527Z][TRACE][T1252][#8][···Write] Syscall { num = Write, fd = 6, buf = 0x7f4defe01231, size = 4 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#8][···Write] write: fd: 6
[2021-10-20T05:37:54.527Z][TRACE][T1252][#9][·Sendmsg] Syscall { num = Sendmsg, fd = 6, msg_ptr = 0x7f4df1495908, flags = 0 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#9][·Sendmsg] sendmsg: fd: 6, msg: 0x7f4df1495908, flags: 0x0
[2021-10-20T05:37:54.527Z][TRACE][T1252][#10][·Sendmsg] Syscall { num = Sendmsg, fd = 6, msg_ptr = 0x7f4df1495908, flags = 0 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#10][·Sendmsg] sendmsg: fd: 6, msg: 0x7f4df1495908, flags: 0x0
[2021-10-20T05:37:54.527Z][TRACE][T1252][#11][···Close] Syscall { num = Close, fd = 6 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#11][···Close] close: fd: 6
[2021-10-20T05:37:54.527Z][ INFO][T1252][#11][···Close] cancel sent
[2021-10-20T05:37:54.527Z][TRACE][T1252][#12][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#12][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.527Z][DEBUG][T1252][#12][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.527Z][DEBUG][T1249][#39][····Read] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.527Z][TRACE][T1249][#40][·Recvmsg] Syscall { num = Recvmsg, fd = 6, msg_mut_ptr = 0x7f4deaa95d08, flags = 0 }
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.527Z][DEBUG][T1249][#40][·Recvmsg] recvmsg: fd: 6, msg: 0x7f4deaa95d08, flags: 0x0
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] close fd 496
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.527Z][ INFO][T0][#0] io-uring normal complete, 26
[2021-10-20T05:37:54.527Z][TRACE][T1249][#41][·Recvmsg] Syscall { num = Recvmsg, fd = 6, msg_mut_ptr = 0x7f4deaa95d08, flags = 0 }
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.528Z][DEBUG][T1249][#41][·Recvmsg] recvmsg: fd: 6, msg: 0x7f4deaa95d08, flags: 0x0
[2021-10-20T05:37:54.528Z][TRACE][T1249][#42][···Wait4] Syscall { num = Wait4, pid = 1252, _exit_status = 0x7f4deaa95e0c }
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.528Z][ INFO][T1249][#42][···Wait4] cancel sent
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.528Z][TRACE][T1249][#43][Socketpair] Syscall { num = Socketpair, domain = 1, socket_type = 1, protocol = 0, sv = 0x7f4deaa95de0 }
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][DEBUG][T1249][#43][Socketpair] socketpair: (3, 7)
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.528Z][TRACE][T1249][#44][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95ddc, path = 0x7f4de9402939, argv = 0x7f4deaa95df0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][DEBUG][T1249][#44][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "NULL", "8803", "7"], envp: [], fdop: []
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][DEBUG][T1249][#44][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][DEBUG][T1249][#44][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.528Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] close fd 26
[2021-10-20T05:37:54.528Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.532Z][DEBUG][T1249][#44][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.532Z][DEBUG][T1249][#44][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.532Z][ INFO][T1249][#44][SpawnMusl] Process created: elf = /bin/client, pid = 1253
[2021-10-20T05:37:54.532Z][TRACE][T1249][#45][··Socket] Syscall { num = Socket, domain = 2, socket_type = 2, protocol = 0 }
[2021-10-20T05:37:54.532Z][ INFO][T1249][#45][··Socket] open fd 26
[2021-10-20T05:37:54.533Z][TRACE][T1249][#46][····Bind] Syscall { num = Bind, fd = 8, addr = 0x7f4deaa95d40, addr_len = 16 }
[2021-10-20T05:37:54.533Z][TRACE][T1249][#47][·Recvmsg] Syscall { num = Recvmsg, fd = 8, msg_mut_ptr = 0x7f4deaa958f8, flags = 0 }
[2021-10-20T05:37:54.533Z][DEBUG][T1249][#47][·Recvmsg] recvmsg: fd: 8, msg: 0x7f4deaa958f8, flags: 0x0
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#0] Thread #1253 is executed as task #1253
[2021-10-20T05:37:54.533Z][TRACE][T1253][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.533Z][TRACE][T1253][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.533Z][TRACE][T1253][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.533Z][ WARN][T1253][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.533Z][TRACE][T1253][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.533Z][ WARN][T1253][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.533Z][TRACE][T1253][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 2, protocol = 0 }
[2021-10-20T05:37:54.533Z][ INFO][T1253][#5][··Socket] open fd 502
[2021-10-20T05:37:54.533Z][TRACE][T1253][#6][·Sendmsg] Syscall { num = Sendmsg, fd = 8, msg_ptr = 0x7f4df14958e8, flags = 0 }
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#6][·Sendmsg] sendmsg: fd: 8, msg: 0x7f4df14958e8, flags: 0x0
[2021-10-20T05:37:54.533Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.533Z][TRACE][T1253][#7][····Read] Syscall { num = Read, fd = 7, buf = 0x7f4df1495dd0, size = 4 }
[2021-10-20T05:37:54.533Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#7][····Read] read: fd: 7
[2021-10-20T05:37:54.533Z][TRACE][T1249][#48][···Write] Syscall { num = Write, fd = 3, buf = 0x7f4de94029b0, size = 4 }
[2021-10-20T05:37:54.533Z][DEBUG][T1249][#48][···Write] write: fd: 3
[2021-10-20T05:37:54.533Z][TRACE][T1249][#49][···Wait4] Syscall { num = Wait4, pid = 1253, _exit_status = 0x7f4deaa95dbc }
[2021-10-20T05:37:54.533Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.533Z][ INFO][T0][#0] io-uring normal complete, 4
[2021-10-20T05:37:54.533Z][TRACE][T1253][#8][···Close] Syscall { num = Close, fd = 0 }
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#8][···Close] close: fd: 0
[2021-10-20T05:37:54.533Z][TRACE][T1253][#9][ExitGroup] Syscall { num = ExitGroup, exit_status = 13 }
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#9][ExitGroup] exit_group: 13
[2021-10-20T05:37:54.533Z][DEBUG][T1253][#9][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.533Z][ INFO][T1249][#49][···Wait4] cancel sent
[2021-10-20T05:37:54.533Z][ INFO][T0][#0] close fd 502
[2021-10-20T05:37:54.533Z][DEBUG][T1249][#49][···Wait4] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.533Z][TRACE][T1249][#50][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.533Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.533Z][ INFO][T1249][#50][··Socket] open fd 502
[2021-10-20T05:37:54.533Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.533Z][TRACE][T1249][#51][Setsockopt] Syscall { num = Setsockopt, fd = 9, level = 1, optname = 2, optval = 0x7f4deaa95ba0, optlen = 4 }
[2021-10-20T05:37:54.533Z][DEBUG][T1249][#51][Setsockopt] setsockopt: fd: 9, level: 1, optname: 2, optval: 0x7f4deaa95ba0, optlen: 4
[2021-10-20T05:37:54.533Z][ INFO][T1249][#51][Setsockopt] fd: 502, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.533Z][TRACE][T1249][#52][Getsockopt] Syscall { num = Getsockopt, fd = 9, level = 1, optname = 2, optval = 0x7f4deaa95ba0, optlen = 0x7f4deaa95ba4 }
[2021-10-20T05:37:54.533Z][DEBUG][T1249][#52][Getsockopt] getsockopt: fd: 9, level: 1, optname: 2, optval: 0x7f4deaa95ba0, optlen: 0x7f4deaa95ba4
[2021-10-20T05:37:54.533Z][TRACE][T1249][#53][····Bind] Syscall { num = Bind, fd = 9, addr = 0x7f4deaa95bb0, addr_len = 16 }
[2021-10-20T05:37:54.533Z][TRACE][T1249][#54][··Listen] Syscall { num = Listen, fd = 9, backlog = 10 }
[2021-10-20T05:37:54.533Z][TRACE][T1249][#55][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95c14, path = 0x7f4de9402939, argv = 0x7f4deaa95bc0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.533Z][DEBUG][T1249][#55][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8805"], envp: [], fdop: []
[2021-10-20T05:37:54.533Z][DEBUG][T1249][#55][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.533Z][DEBUG][T1249][#55][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.537Z][DEBUG][T1249][#55][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.537Z][DEBUG][T1249][#55][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.538Z][ INFO][T1249][#55][SpawnMusl] Process created: elf = /bin/client, pid = 1254
[2021-10-20T05:37:54.538Z][DEBUG][T1254][#0] Thread #1254 is executed as task #1254
[2021-10-20T05:37:54.538Z][TRACE][T1249][#56][··Accept] Syscall { num = Accept, fd = 9, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.538Z][TRACE][T1254][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.538Z][DEBUG][T1254][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.538Z][TRACE][T1254][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.538Z][DEBUG][T1254][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.538Z][TRACE][T1254][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.538Z][DEBUG][T1254][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.538Z][ WARN][T1254][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.538Z][TRACE][T1254][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.538Z][DEBUG][T1254][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.538Z][ WARN][T1254][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.538Z][TRACE][T1254][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.538Z][ INFO][T1254][#5][··Socket] open fd 503
[2021-10-20T05:37:54.538Z][TRACE][T1254][#6][·Connect] Syscall { num = Connect, fd = 10, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] Accept success: 504
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] io-uring normal complete, 504
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.538Z][TRACE][T1249][#57][···Close] Syscall { num = Close, fd = 9 }
[2021-10-20T05:37:54.538Z][DEBUG][T1249][#57][···Close] close: fd: 9
[2021-10-20T05:37:54.538Z][TRACE][T1249][#58][····Poll] Syscall { num = Poll, fds = 0x7f4deaa95c18, nfds = 1, timeout = -1 }
[2021-10-20T05:37:54.538Z][TRACE][T1254][#7][··Sendto] Syscall { num = Sendto, fd = 10, base = 0x7f4defe01235, len = 13, flags = 0, addr = 0x0, addr_len = 0 }
[2021-10-20T05:37:54.538Z][DEBUG][T1249][#58][····Poll] poll: poll_fds: [PollFd { fd: Some(10), events: IN, revents: Cell { value: (empty) } }], timeout: None
[2021-10-20T05:37:54.538Z][TRACE][T1254][#8][···Close] Syscall { num = Close, fd = 10 }
[2021-10-20T05:37:54.538Z][DEBUG][T1254][#8][···Close] close: fd: 10
[2021-10-20T05:37:54.538Z][ INFO][T1254][#8][···Close] cancel sent
[2021-10-20T05:37:54.538Z][TRACE][T1254][#9][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.538Z][DEBUG][T1254][#9][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.538Z][DEBUG][T1254][#9][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.538Z][DEBUG][T1249][#58][····Poll] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] close fd 503
[2021-10-20T05:37:54.538Z][TRACE][T1249][#59][····Read] Syscall { num = Read, fd = 10, buf = 0x7f4deaa95c20, size = 512 }
[2021-10-20T05:37:54.538Z][DEBUG][T1249][#59][····Read] read: fd: 10
[2021-10-20T05:37:54.538Z][TRACE][T1249][#60][···Wait4] Syscall { num = Wait4, pid = 1254, _exit_status = 0x7f4deaa95c20 }
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.538Z][ INFO][T1249][#60][···Wait4] cancel sent
[2021-10-20T05:37:54.539Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.539Z][TRACE][T1249][#61][···Close] Syscall { num = Close, fd = 10 }
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#61][···Close] close: fd: 10
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.539Z][ INFO][T1249][#61][···Close] close fd 504
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.539Z][TRACE][T1249][#62][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][ INFO][T1249][#62][··Socket] open fd 503
[2021-10-20T05:37:54.539Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.539Z][TRACE][T1249][#63][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.539Z][ INFO][T1249][#63][··Socket] open fd 504
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][TRACE][T1249][#64][····Poll] Syscall { num = Poll, fds = 0x7f4deaa95e10, nfds = 2, timeout = 0 }
[2021-10-20T05:37:54.539Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#64][····Poll] poll: poll_fds: [PollFd { fd: Some(9), events: IN, revents: Cell { value: (empty) } }, PollFd { fd: Some(10), events: IN, revents: Cell { value: (empty) } }], timeout: Some(0ns)
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][TRACE][T1249][#65][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.539Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.539Z][ INFO][T1249][#65][··Socket] open fd 505
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.539Z][TRACE][T1249][#66][Setsockopt] Syscall { num = Setsockopt, fd = 11, level = 1, optname = 2, optval = 0x7f4deaa95e14, optlen = 4 }
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#66][Setsockopt] setsockopt: fd: 11, level: 1, optname: 2, optval: 0x7f4deaa95e14, optlen: 4
[2021-10-20T05:37:54.539Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.539Z][ INFO][T1249][#66][Setsockopt] fd: 505, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][TRACE][T1249][#67][Getsockopt] Syscall { num = Getsockopt, fd = 11, level = 1, optname = 2, optval = 0x7f4deaa95e18, optlen = 0x7f4deaa95e1c }
[2021-10-20T05:37:54.539Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#67][Getsockopt] getsockopt: fd: 11, level: 1, optname: 2, optval: 0x7f4deaa95e18, optlen: 0x7f4deaa95e1c
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][TRACE][T1249][#68][Getsockopt] Syscall { num = Getsockopt, fd = 11, level = 1, optname = 39, optval = 0x7f4deaa95e18, optlen = 0x7f4deaa95e1c }
[2021-10-20T05:37:54.539Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#68][Getsockopt] getsockopt: fd: 11, level: 1, optname: 39, optval: 0x7f4deaa95e18, optlen: 0x7f4deaa95e1c
[2021-10-20T05:37:54.539Z][TRACE][T1249][#69][···Close] Syscall { num = Close, fd = 11 }
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#69][···Close] close: fd: 11
[2021-10-20T05:37:54.539Z][ INFO][T1249][#69][···Close] close fd 505
[2021-10-20T05:37:54.539Z][TRACE][T1249][#70][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.539Z][ INFO][T1249][#70][··Socket] open fd 505
[2021-10-20T05:37:54.539Z][TRACE][T1249][#71][Setsockopt] Syscall { num = Setsockopt, fd = 11, level = 1, optname = 2, optval = 0x7f4deaa95da0, optlen = 4 }
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#71][Setsockopt] setsockopt: fd: 11, level: 1, optname: 2, optval: 0x7f4deaa95da0, optlen: 4
[2021-10-20T05:37:54.539Z][ INFO][T1249][#71][Setsockopt] fd: 505, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.539Z][TRACE][T1249][#72][Getsockopt] Syscall { num = Getsockopt, fd = 11, level = 1, optname = 2, optval = 0x7f4deaa95da0, optlen = 0x7f4deaa95da4 }
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#72][Getsockopt] getsockopt: fd: 11, level: 1, optname: 2, optval: 0x7f4deaa95da0, optlen: 0x7f4deaa95da4
[2021-10-20T05:37:54.539Z][TRACE][T1249][#73][····Bind] Syscall { num = Bind, fd = 11, addr = 0x7f4deaa95db0, addr_len = 16 }
[2021-10-20T05:37:54.539Z][TRACE][T1249][#74][··Listen] Syscall { num = Listen, fd = 11, backlog = 10 }
[2021-10-20T05:37:54.539Z][TRACE][T1249][#75][SpawnMusl] Syscall { num = SpawnMusl, child_pid_ptr = 0x7f4deaa95e14, path = 0x7f4de9402939, argv = 0x7f4deaa95dc0, envp = 0x0, fdop_list = 0x0 }
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#75][SpawnMusl] spawn: path: "/bin/client", argv: ["client", "127.0.0.1", "8806"], envp: [], fdop: []
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#75][SpawnMusl] lookup_inode: cwd: "/", path: "/bin/client"
[2021-10-20T05:37:54.539Z][DEBUG][T1249][#75][SpawnMusl] lookup_inode: cwd: "/", path: "/lib/ld-musl-x86_64.so.1"
[2021-10-20T05:37:54.543Z][DEBUG][T1249][#75][SpawnMusl] new process: heap_size = 8388608, stack_size = 4194304, mmap_size = 83886080
[2021-10-20T05:37:54.543Z][DEBUG][T1249][#75][SpawnMusl] allocated rsrv addr is 0x7f4defc65000, len is 0x6896000
[2021-10-20T05:37:54.544Z][ INFO][T1249][#75][SpawnMusl] Process created: elf = /bin/client, pid = 1255
[2021-10-20T05:37:54.544Z][TRACE][T1249][#76][··Accept] Syscall { num = Accept, fd = 11, addr = 0x0, addr_len = 0x0 }
[2021-10-20T05:37:54.544Z][DEBUG][T1255][#0] Thread #1255 is executed as task #1255
[2021-10-20T05:37:54.544Z][TRACE][T1255][#1][ArchPrctl] Syscall { num = ArchPrctl, code = 4098, addr = 0x7f4df0694d88 }
[2021-10-20T05:37:54.544Z][DEBUG][T1255][#1][ArchPrctl] do_arch_prctl: code: ARCH_SET_FS, addr: 0x7f4df0694d88
[2021-10-20T05:37:54.544Z][TRACE][T1255][#2][SetTidAddress] Syscall { num = SetTidAddress, tidptr = 0x7f4df0695364 }
[2021-10-20T05:37:54.544Z][DEBUG][T1255][#2][SetTidAddress] set_tid_address: tidptr: 0x7f4df0695364
[2021-10-20T05:37:54.544Z][TRACE][T1255][#3][Mprotect] Syscall { num = Mprotect, addr = 139972722626560, len = 4096, prot = 1 }
[2021-10-20T05:37:54.544Z][DEBUG][T1255][#3][Mprotect] mprotect: addr: 0x7f4df0691000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.544Z][ WARN][T1255][#3][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.544Z][TRACE][T1255][#4][Mprotect] Syscall { num = Mprotect, addr = 139972715745280, len = 4096, prot = 1 }
[2021-10-20T05:37:54.544Z][DEBUG][T1255][#4][Mprotect] mprotect: addr: 0x7f4df0001000, size: 0x1000, perms: READ
[2021-10-20T05:37:54.544Z][ WARN][T1255][#4][Mprotect] Do not support mprotect memory outside the mmap region yet
[2021-10-20T05:37:54.544Z][TRACE][T1255][#5][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.544Z][ INFO][T1255][#5][··Socket] open fd 506
[2021-10-20T05:37:54.544Z][TRACE][T1255][#6][·Connect] Syscall { num = Connect, fd = 12, addr = 0x7f4df1495da0, addr_len = 16 }
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] Accept success: 507
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, 507
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.544Z][TRACE][T1249][#77][···Close] Syscall { num = Close, fd = 11 }
[2021-10-20T05:37:54.544Z][DEBUG][T1249][#77][···Close] close: fd: 11
[2021-10-20T05:37:54.544Z][TRACE][T1249][#78][Getsockname] Syscall { num = Getsockname, fd = 12, addr = 0x7f4deaa95e20, addr_len = 0x7f4deaa95e18 }
[2021-10-20T05:37:54.544Z][TRACE][T1249][#79][Getpeername] Syscall { num = Getpeername, fd = 12, addr = 0x7f4deaa95de0, addr_len = 0x7f4deaa95dd8 }
[2021-10-20T05:37:54.544Z][TRACE][T1249][#80][Getsockopt] Syscall { num = Getsockopt, fd = 12, level = 1, optname = 28, optval = 0x7f4deaa95df0, optlen = 0x7f4deaa95ddc }
[2021-10-20T05:37:54.544Z][DEBUG][T1249][#80][Getsockopt] getsockopt: fd: 12, level: 1, optname: 28, optval: 0x7f4deaa95df0, optlen: 0x7f4deaa95ddc
[2021-10-20T05:37:54.544Z][TRACE][T1249][#81][···Wait4] Syscall { num = Wait4, pid = 1255, _exit_status = 0x7f4deaa95e1c }
[2021-10-20T05:37:54.544Z][TRACE][T1255][#7][··Sendto] Syscall { num = Sendto, fd = 12, base = 0x7f4defe01235, len = 13, flags = 0, addr = 0x0, addr_len = 0 }
[2021-10-20T05:37:54.544Z][TRACE][T1255][#8][···Close] Syscall { num = Close, fd = 12 }
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.544Z][DEBUG][T1255][#8][···Close] close: fd: 12
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, 13
[2021-10-20T05:37:54.544Z][ INFO][T1255][#8][···Close] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] close fd 506
[2021-10-20T05:37:54.544Z][TRACE][T1255][#9][ExitGroup] Syscall { num = ExitGroup, exit_status = 0 }
[2021-10-20T05:37:54.544Z][DEBUG][T1255][#9][ExitGroup] exit_group: 0
[2021-10-20T05:37:54.544Z][DEBUG][T1255][#9][ExitGroup] futex_wake_bitset addr: 0x7f4df0695364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel IoHandle(IoToken { state: Submitted })
[2021-10-20T05:37:54.544Z][ INFO][T1249][#81][···Wait4] cancel sent
[2021-10-20T05:37:54.544Z][ERROR][T0][#0] Accept error: errno = ECANCELED (#125, Unknown error)
[2021-10-20T05:37:54.544Z][DEBUG][T1249][#81][···Wait4] Handle signal: signal: KernelSignal { num: SigNum (#17 = SIGCHLD) }, action: Dfl
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.544Z][TRACE][T1249][#82][···Close] Syscall { num = Close, fd = 12 }
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.544Z][DEBUG][T1249][#82][···Close] close: fd: 12
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.544Z][ INFO][T1249][#82][···Close] close fd 507
[2021-10-20T05:37:54.544Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.544Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.544Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.544Z][TRACE][T1249][#83][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO][T1249][#83][··Socket] open fd 506
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][TRACE][T1249][#84][Getsockname] Syscall { num = Getsockname, fd = 11, addr = 0x7f4deaa95e00, addr_len = 0x7f4deaa95df4 }
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.545Z][TRACE][T1249][#85][Getpeername] Syscall { num = Getpeername, fd = 11, addr = 0x7f4deaa95e10, addr_len = 0x7f4deaa95df8 }
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ERROR][T1249][#85][Getpeername] Error = ENOTCONN (#107, Unknown error): the socket is not connected [line = 259, file = crates/host-socket/src/stream/mod.rs]
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.545Z][TRACE][T1249][#86][Getsockopt] Syscall { num = Getsockopt, fd = 11, level = 1, optname = 28, optval = 0x7f4deaa95e20, optlen = 0x7f4deaa95dfc }
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#86][Getsockopt] getsockopt: fd: 11, level: 1, optname: 28, optval: 0x7f4deaa95e20, optlen: 0x7f4deaa95dfc
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.545Z][ERROR][T1249][#86][Getsockopt] Error = ENOTCONN (#107, Unknown error): the socket is not connected [line = 259, file = crates/host-socket/src/stream/mod.rs]
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.545Z][TRACE][T1249][#87][···Close] Syscall { num = Close, fd = 11 }
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring cancel complete, -114
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#87][···Close] close: fd: 11
[2021-10-20T05:37:54.545Z][ INFO][T1249][#87][···Close] close fd 506
[2021-10-20T05:37:54.545Z][TRACE][T1249][#88][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.545Z][ INFO][T1249][#88][··Socket] open fd 506
[2021-10-20T05:37:54.545Z][TRACE][T1249][#89][Shutdown] Syscall { num = Shutdown, fd = 11, how = 2 }
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#89][Shutdown] shutdown: fd: 11, how: 2
[2021-10-20T05:37:54.545Z][ERROR][T1249][#89][Shutdown] Error = ENOTCONN (#107, Unknown error): the socket is not connected [line = 303, file = crates/host-socket/src/stream/mod.rs]
[2021-10-20T05:37:54.545Z][TRACE][T1249][#90][··Socket] Syscall { num = Socket, domain = 2, socket_type = 1, protocol = 0 }
[2021-10-20T05:37:54.545Z][ INFO][T1249][#90][··Socket] open fd 507
[2021-10-20T05:37:54.545Z][TRACE][T1249][#91][Setsockopt] Syscall { num = Setsockopt, fd = 12, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 4 }
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#91][Setsockopt] setsockopt: fd: 12, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 4
[2021-10-20T05:37:54.545Z][ INFO][T1249][#91][Setsockopt] fd: 507, level: 1, optname: 2, optval: [1, 0, 0, 0]
[2021-10-20T05:37:54.545Z][TRACE][T1249][#92][Getsockopt] Syscall { num = Getsockopt, fd = 12, level = 1, optname = 2, optval = 0x7f4deaa95db0, optlen = 0x7f4deaa95db4 }
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#92][Getsockopt] getsockopt: fd: 12, level: 1, optname: 2, optval: 0x7f4deaa95db0, optlen: 0x7f4deaa95db4
[2021-10-20T05:37:54.545Z][TRACE][T1249][#93][····Bind] Syscall { num = Bind, fd = 12, addr = 0x7f4deaa95dc0, addr_len = 16 }
[2021-10-20T05:37:54.545Z][ERROR][T1249][#93][····Bind] Error = EADDRINUSE (#98, Unknown error): libc error [line = 13, file = crates/host-socket/src/common/operation.rs]
[2021-10-20T05:37:54.545Z][TRACE][T1249][#94][···Close] Syscall { num = Close, fd = 12 }
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#94][···Close] close: fd: 12
[2021-10-20T05:37:54.545Z][ INFO][T1249][#94][···Close] close fd 507
[2021-10-20T05:37:54.545Z][TRACE][T1249][#95][Shutdown] Syscall { num = Shutdown, fd = -1, how = 2 }
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#95][Shutdown] shutdown: fd: -1, how: 2
[2021-10-20T05:37:54.545Z][ERROR][T1249][#95][Shutdown] Error = EBADF (#9, Bad file number): Invalid file descriptor [line = 100, file = src/fs/file_table.rs]
[2021-10-20T05:37:54.545Z][TRACE][T1249][#96][··Writev] Syscall { num = Writev, fd = 1, iov = 0x7f4deaa95dd0, count = 2 }
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#96][··Writev] writev: fd: 1
func test_send_recv - [OK]
func test_sendmsg_recvmsg - [OK]
func test_sendmsg_recvmsg_connectionless - [OK]
func test_poll - [OK]
func test_poll_events_unchanged - [OK]
func test_sockopt - [OK]
[socket with bind] address: 127.0.0.1
[socket with bind] port: 8806
Peer address: 127.0.0.1
Peer port: 34928
func test_getname - [OK]
[socket without bind] address: 0.0.0.0
[socket without bind] port: 0
func test_getname_without_bind - [OK]
ERROR:bind socket failed in func connect_with_child at line 49 of file main.c
ERROR:failed to shutdown in func test_shutdown at line 504 of file main.c
func test_shutdown - [ERR]
[2021-10-20T05:37:54.545Z][TRACE][T1249][#97][ExitGroup] Syscall { num = ExitGroup, exit_status = -1 }
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#97][ExitGroup] exit_group: -1
[2021-10-20T05:37:54.545Z][DEBUG][T1249][#97][ExitGroup] futex_wake_bitset addr: 0x7f4de9c95364, max_count: 1, bitset: 0xffffffff
[2021-10-20T05:37:54.545Z][ INFO] cancel sent
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO] close fd 497
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] close fd 496
[2021-10-20T05:37:54.545Z][ INFO] close fd 499
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring cancel complete, 0
[2021-10-20T05:37:54.545Z][ INFO] close fd 500
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO] cancel sent
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] close fd 502
[2021-10-20T05:37:54.545Z][ INFO] cancel sent
[2021-10-20T05:37:54.545Z][ INFO] close fd 503
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ INFO] close fd 504
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO] close fd 506
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] close fd 505
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ERROR][T0][#0] Accept error: errno = EINTR (#4, Interrupted system call)
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] close fd 498
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] io-uring normal complete, -4
[2021-10-20T05:37:54.545Z][ INFO][T0][#0] close fd 501
[2021-10-20T05:37:54.546Z][ INFO][T0][#0] io-uring normal complete, 0
[2021-10-20T05:37:54.546Z][ INFO][T0][#0] io-uring cancel complete, -2
[2021-10-20T05:37:54.546Z][ INFO][T0][#0] close fd 26
[2021-10-20T05:37:54.546Z][ INFO][T0][#0] io-uring normal complete, -125
[2021-10-20T05:37:54.546Z][ INFO][T0][#0] io-uring cancel complete, 0
Error: 65280
../test_common.mk:74: recipe for target 'test' failed
make[4]: *** [test] Error 1
FAILED
server is running.
/root/docker/ngo/test
server stopped.
[2021-10-20T05:37:54.697Z][ WARN] HostFS: sync is unimplemented
[2021-10-20T05:37:54.697Z][ WARN] HostFS: sync is unimplemented
To avoid exiting enclaves when submitting I/O requests, we want to push requests into io_uring's submission queue (by memory copying, thus no enclave switching) and let the Linux kernel poll requests from the submission queue (also by memory copying, thus no enclave switching). The latter is enabled with io_uring's IORING_SETUP_SQPOLL flag.
The problem is that the current implementation does not use IORING_SETUP_SQPOLL
flag. This is because at the time when the code was written, Linux kernel's support for the submission queue polling was incomplete and buggy. So as a workaround, the implementation starts a separate OS thread that keeps invoking io_uring_enter
system call. The workaround fulfils our demands of switchless I/O but do so at the expense of wasting CPU cycles.
As Linux's io_uring implementation gets mature, IORING_SETUP_SQPOLL
flag now becomes fully supported since Linux kernel 5.11. And our development machine is installed with Linux kernel 5.11. So it is time for us to ditch the workaround and leverage IORING_SETUP_SQPOLL
flag. Specifically, we need to
tokio-rs/io-uring
crate has added support for IORING_SETUP_SQPOLL
.tokio-rs/io-uring
occlum/io-uring
in LibOS and other crates
IORING_SETUP_SQPOLL
flag when creating an io_uring instancesq_thread_idle
parameter to a proper value, e.g., 500 millisecondsNow we use start_enter_syscall_thread
to walkaround the limition of io-uring, see details in axboe/liburing#273
pub unsafe fn start_enter_syscall_thread(fd: c_int) {
use std::thread;
println!("start_enter_syscall_thread");
thread::spawn(move || loop {
syscall(
__NR_io_uring_enter as c_long,
fd as c_long,
1,
0,
0,
std::ptr::null() as *const c_void,
0,
);
});
}
And the arguments of __NR_io_uring_enter is:
io_uring_enter(fd, to_submit, min_complete, flags, sig, siglen)
start_enter_syscall_thread
in 5.11+ kernel versionmin_complete
to 1 in start_enter_syscall_thread
to save power (not tested yet)A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.