Giter VIP home page Giter VIP logo

ngo's Introduction

Occlum logo

All Contributors Essential Test SGX Hardware Mode Test Demo Test

NEWS: Our paper Occlum: Secure and Efficient Multitasking Inside a Single Enclave of Intel SGX has been accepted by ASPLOS'20. This research paper highlights the advantages of the single-address-space architecture adopted by Occlum and describes a novel in-enclave isolation mechanism that complements this approach. The paper can be found on ACM Digital Library and Arxiv.

Occlum is a memory-safe, multi-process library OS (LibOS) for Intel SGX. As a LibOS, it enables legacy applications to run on SGX with little or even no modifications of source code, thus protecting the confidentiality and integrity of user workloads transparently.

Occlum has the following salient features:

  • Efficient multitasking. Occlum offers light-weight LibOS processes: they are light-weight in the sense that all LibOS processes share the same SGX enclave. Compared to the heavy-weight, per-enclave LibOS processes, Occlum's light-weight LibOS processes is up to 1,000X faster on startup and 3X faster on IPC. In addition, Occlum offers an optional PKU (Protection Keys for Userspace) feature to isolate the Occlum userspace processes if needed.
  • Multiple file system support. Occlum supports various types of file systems, e.g., read-only hashed FS (for integrity protection), writable encrypted FS (for confidentiality protection), untrusted host FS (for convenient data exchange between the LibOS and the host OS).
  • Memory safety. Occlum is the first SGX LibOS written in a memory-safe programming language (Rust). Thus, Occlum is much less likely to contain low-level, memory-safety bugs and is more trustworthy to host security-critical applications.
  • Ease-of-use. Occlum provides user-friendly build and command-line tools. Running applications on Occlum inside SGX enclaves can be as simple as only typing several shell commands (see the next section).

Occlum Documentation

The official Occlum documentation can be found at https://occlum.readthedocs.io.

Some quick links are as below.

What is the Implementation Status?

Occlum is being actively developed. We now focus on implementing more system calls and additional features required in the production environment, including baremetal server and public cloud (Aliyun, Azure, ...) VM.

How about the Internal Working?

The high-level architecture of Occlum is summarized in the figure below:

Arch Overview

Why the Name?

The project name Occlum stems from the word Occlumency coined in Harry Potter series by J. K. Rowling. In Harry Potter and the Order of Phoenix, Occlumency is described as:

The magical defence of the mind against external penetration. An obscure branch of magic, but a highly useful one... Used properly, the power of Occlumency will help shield you from access or influence.

The same thing can be said for Occlum, not for the mind, but for the program:

The magical defence of the program against external penetration. An obscure branch of technology, but a highly useful one... Used properly, the power of Occlum will help shield your program from access or influence.

Of course, Occlum must be run on Intel x86 CPUs with SGX support to do its magic.

Contributors

Contributions of any kind are welcome! We will publish contributing guidelines and accept pull requests after the project gets more stable.

Thanks go to all these wonderful contributors to this project.

License

Occlum is released by Ant Financial under BSD License. See the copyright information here.

ngo's People

Contributors

allcontributors[bot] avatar bonjourz avatar clawseven avatar daan3601 avatar danintel avatar duanbing avatar guzongmin avatar haosanzi avatar hustliyilin avatar james-dong-security avatar jessehui avatar jiazhang0 avatar liqinggd avatar lucassong-mh avatar pangzi85480 avatar qzheng527 avatar shuochengwang avatar stevenjiang1110 avatar superajun-wsj avatar tatetian avatar uudiin avatar volcano0dr avatar wangrunji0408 avatar yourens avatar yuanwu2017 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

ngo's Issues

The design of the `page-cache` crate

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.

Overview

Design goals

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.

  • Concurrency. The page cache needs to synchronize the concurrent access from multiple readers, writers, or flushers to the same pages.
  • I/O free. The page cache should focus on managing cached pages, not performing I/O. It should be decoupled from the rest of the I/O stack, including file systems and block devices.
  • Memory safety. The users should be able to use the page caches with unsafe code as well as possible.

Differences from Linux

The proposed design differs greatly from the one in Linux for two reasons.

  • Written in Rust, this crate embraces some of the best practices in software engineering---like memory safety, abstraction, and modularity---that are valued more by the Rust community than the Linux kernel community.
  • This crate is intended for use in Occlum, which do not demand a page cache mechanism that is as general as the one in Linux. In particular, Linux's current page cache is a unification of the page cache (for file I/O) and the buffer cache (for block I/O) in Linux's early implementation. This crate is more like Linux's buffer cache.

API

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 page
    cache.

as 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.

Architecture

image

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.

Example: 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
    }
}

Reference implementation

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")
    }
}

Improve the scalability of SyncIoDisk

The SyncIoDisk in sgx-disk is not scalable on concurrency.

image

The problem is that there is a lock hold while doing I/O. This lock can be removed if using read_at and write_at API.

image

Steps to Enable Async-SFS + SwornDisk as the RootFS

  • 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.

[RFC] Extend the SGX untrusted allocator to support untrusted device memory

  • Feature Name: untrusted device memory
  • Start Date: 2022-08-22

Summary

Occlum gets the untrusted memory range and registers the untrusted memory range into the SGX untrusted allocator.

Motivation

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.

Guide-level explanation

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:

  1. insert a committed untrusted memory range into the allocator
  2. remove a range of memory from the allocator (If the range is added by the insert interface)

Below is one example:
When an application performs munmap with an untrusted memory address

  1. First, check whether the address is inside the enclave or an outside address.
  2. If the address is an outside address, query the Untrusted Allocator to confirm it is a legal address managed by the allocator
  3. Perform the munmap with the address
  4. If the area is mapped with an untrusted device, remove the range from the allocator

[BUG] pthread case hang when running glibc test with simulation mode

Describe the bug

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.

To reproduce

Steps to reproduce the behavior:

  1. Install NGO master (a999922) in release mode
  2. TESTS=pthread OCCLUM_LOG_LEVEL=trace TEST_CPUS=2 SGX_MODE=SIM taskset -c 0-1 make test-glibc times=100

Expected behavior

All tests can pass.

Logs

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.

Environment

  • HW: [e.g. SGX1, SGX2] SGX2
  • OS: [e.g. Ubuntu18.04, CentOS8.1] ubuntu 18.04
  • Occlum version: [e.g. 0.17.0] NGO master (a999922) release mode

Additional context

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.

Resolve the atomicity issues when changing pollee's state

Background

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.

Problem

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.

Solution

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.

Cancel ongoing accept io-uring request failed when release socket

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

[BUG] Cannot update atime, mtime and ctime for inode

Describe the bug

Any inodes in Linux has typically these three timestamps:

  • atime: The time of last access of file data
  • mtime: Time of last modification of file data
  • ctime: The time of last status change of file status

(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.

To reproduce

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;
}

Expected behavior and Current behavior

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 }

Expected behavior:

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:)

Current behavior:

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:)

Environment

  • HW: [e.g. SGX1, SGX2]
  • OS: [Ubuntu20.04]
  • Occlum version: [0.27.0]

Additional context

None

Possible solution/Implementation

None

Fix the bug of epoll: EEXIST error when two different files with the same fd

Bug:

  1. first add one file with fd x to epoll interest
  2. close this file
  3. create a new file, which will reuse the fd x since FileTable will reuse fd
  4. add the new file to epoll interest
  5. epoll will report EEXIST error!

Might Related Todos:

  • // TODO: add fd to FileHandle?
  • // TODO: make FileTable a struct of internal mutability to avoid deadlock.
  • // TODO: close host_fd

Solutions:

  1. generate different fd in FileTable
  2. Find a better design for: do_close, drop, observer, the close of socket file (which is Arc<...>)

[BUG]ioctl UT crashed

Describe the bug

The ioctl unit test would crash the system if the system does not support DCAP.

To reproduce

Steps to reproduce the behavior:
TESTS=ioctl make test

Logs

[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

Environment

  • HW: SGX2 [e.g. SGX1, SGX2]
  • OS: [e.g. Ubuntu18.04, CentOS8.1]
  • Occlum version: [e.g. 0.17.0]

Use arc_new_cyclic

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?

Cancel ongoing accept io-uring request failed when release socket

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

Use io-uring kernel polling in kernel version >= 5.11

Now 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)

  • We should use io-uring kernel polling instead of start_enter_syscall_thread in 5.11+ kernel version
  • We should set the min_complete to 1 in start_enter_syscall_thread to save power (not tested yet)

[BUG] stdin poll always return readable

Describe the bug

Poll stdin (FD 0) always return readable (Events::IN) even if no input at all.

To reproduce

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.

Expected behavior

No IN event if there is no input.

Environment

  • HW: [e.g. SGX1, SGX2]
  • OS: [e.g. Ubuntu18.04, CentOS8.1]
  • Occlum version: [e.g. 0.17.0]

The features in async-rt crate conflicts

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

[BUG] Running iperf and the client side never exits

Describe the bug

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.

To reproduce

Steps to reproduce the behavior:

  1. Run iperf server on host: ./iperf -s -p 6888
  2. Run iperf client in Occlum: occlum run /bin/iperf -c 127.0.0.1 -p 6888 -P 1 -t 1

Expected behavior

The client-side should exit when the test ends.

Logs

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

Environment

  • HW: [e.g. SGX1, SGX2] SGX2
  • OS: [e.g. Ubuntu18.04, CentOS8.1] Ubuntu 20.04
  • Occlum version: [e.g. 0.17.0] NGO master (f9a8448)

Additional context

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.

Possible solution/Implementation

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.

Benchmarks

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.

Micro-benchmarks

Accepted

Candidates

Application benchmarks

Accepted

Candidates

  • gRPC
  • Intel OpenVINO
  • XGBoost

[RFC] Add scheduler to the Rust async runtime

The Problem

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:

  1. Unbalanced load: some host threads are busy, while others are idle. This may result in increased program latency.
  2. Waste of computing power: if the host thread is idle, it will continuously poll the local queue, which will waste CPU computing power.
  3. No priority: in NGO, some tasks have lower priority, such as some LibOS background tasks, but async-rt can't distinguish priorities at present.

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.

Design Goals

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:

  • load balancing
  • save computing power
  • support priority
  • avoid repetitive tasks

The priorities of these requirements decrease in turn. We will implement these requirements in order of priority.

[RFC] Memory Cleaning Threads

  • Feature Name: mem_cleaning_thread
  • Start Date: 2022.2.10

Summary

Use a number of kernel threads to clean munmap-ed pages in an asynchronous way.

Motivation

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.

Guide-level explanation

This feature is transparent to end-users.

Reference-level explanation

  1. 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.

  2. 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.

  3. Define the rule for the clean request

  • If clean request < CLEANING_TASK_THREASHOLD, clean by the requesting thread itself.
    Only if the clean request is greater than CLEANING_TASK_THREASHOLD, use clean thread to do the cleaning. Otherwise, the current thread must do it on its own. Because cleaning small range is fast, and sending to other threads will introduce more overhead to the entire system.
  • If CLEANING_TASK_THREASHOLD < request < REQ_MAX_SIZE, the clean thread will do the cleaning as a single request (use one single thread to do the cleaning)
  • If REQ_MAX_SIZE < request, split the request into multiple small requests of REQ_MAX_SIZE and make several cleaning threads to do the cleaning
  • If there are too many clean requests in the queue which exceeds the high watermark, don't send clean requests. Clean by the requesting thread itself.
  1. 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.

  2. 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.

Drawbacks

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.

Alternatives

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

Future Possibilities

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.

Status

Under review: #212

Cancel ongoing accept io-uring request failed when release socket

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

[RFC] Use Occlum configuration in yaml format in NGO

  • Feature Name: Use Occlum configuration in yaml format
  • Start Date: 2022-7-12

Summary

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.

Motivation

Yaml format can support adding comment and pasing OS environments directly which makes the Occlum configuration more friendly and easy to use for users.

Guide-level explanation

With the the new introduced yaml format Occlum configuration file, nothing changed for the whole occlum build process but with minor changes described below.

  • After 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.
  • Users could use yaml tool, such as yq to modify the configuration items in Occlum.yaml.
  • When doing 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.

Reference-level explanation

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.

Drawbacks

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).

  • If there is Occlum.json in occlum_instance, then just use it instead of creating new Occlum.yaml.

Get the full path(absolute path) of file or inode

Problem 1

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.

Problem 2

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.

TODO

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.

[BUG] ioctl TCGETS return and glibc throws "**** stack smashing detected ***"

Describe the bug

In the make test, when running ioctl test with glibc, the test will fail with error message: **** stack smashing detected ***.

To reproduce

Steps to reproduce the behavior:

  1. make
  2. comment the SGX related tests in "ioctl" test case
  3. TESTS=ioctl make test-glibc

Expected behavior

make test-glibc should succeed.

Environment

  • HW: [e.g. SGX1, SGX2] SGX2
  • OS: [e.g. Ubuntu18.04, CentOS8.1] ubuntu
  • Occlum version: [e.g. 0.17.0] NGO master

Additional context

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.

Possible solution/Implementation

In my opinion, this could be related to syscall entry or the memory manipulation in ioctl implementation but I am not sure.

[RFC] Timeout support

Motivation

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.

Background

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.

Exit/Wait4

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();
	
	// ...
}

Sigtimedwait

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);
        }
    });
}

Futex

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

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.

Proposed solution

The new interface

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.

The refined interface

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());
    }
}

Changes to the wait method

Now 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)
	}
}

Make WaitFuture cancel-safe

Cancelling 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);
		}
	}
}

Implement Timeout<F: Future>

Needs to be added :)

[RFC] Use Completely Fair Scheduler (CFS) in NGO

  • Feature Name: Use completely fair scheduler in NGO
  • Start Date: 2022-3-3

Summary

Replace the current basic scheduler with the completely fair scheduler.
reference: Process Scheduling in Linux

Motivation

The current naive basic scheduler is workable, but the performance is poor. Two major reasons are listed below:

  1. One task is spin with the vCPU which is assigned at the first time. In some cases, the busy vCPS has many tasks waiting for execution, but others are idle.
  2. The tasks in one vCPU is using FIFO policy, so the short tasks are waiting for execution in most of the time.

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.

Guide-level explanation

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:

  1. Occlum is not able to interrupt the user tasks precisely. So Occlum is not able to control the task execution time when the process already started.
  • The possible solution is: Occlum records the execution time when the tasks back to Occlum and try to balance the execution time in the future.
  1. The overhead of interrupt in Occlum is very heavy. So Occlum is not able to interrupt tasks frequently. As the result, the average time slices would be large.
  • In the Occlum CFS implementation, Occlum should try to manage the task's average waiting time.

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.

Reference-level explanation

  1. Occlum CFS implementation
  • For each vCPU, there is a red-black-tree used to save ready tasks. The tree index is runtime (execution time) and the smaller one is on the left. Each time, Occlum pick the smallest one from the tree and execute it on the vCPU.
  • In order to get the task runtime, Occlum should use vDSO interface or RDTSC to avoid ocall. On SGX2 platform, RDTSC is preferred.
  • SIG64 is used to interrupt the CPU bound tasks, the frequency of SIG64 impact the entire system performance.
  1. balance vCPUs
  • 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.

Design Detail

Add four traits as below code.

  • The scheduler could define its own SchedInfo. Each Task would have an interface to get the task SchedInfo at runtime.
    +The TaskSet is a set of Tasks. Each vCPU should have its own TaskSet. The scheduler could use the Taskset as a runqueue.
  • The Balancer has three balance policies, what are documented in the Linux scheduling guide.
  • The Scheduler interface is used by executor.
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.
image

The alternative could use those traits as template in executor type definition.

Drawbacks

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.

Rationale and alternatives

There are a lot of scheduler implementations. CFS is the Linux default one, should be the best one for general purpose.

Track how close are we towards matching the upstream Occlum

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:

  • Unit tests: the number of unit tests that can pass in NGO versus the one in Occlum.
  • System calls: the number of system calls implemented in NGo versus the one in Occlum.

Currently, the values of the two metrics are

  • Unit tests: 26/45
  • System calls: 87/129.

Read the sections below for more details.

Unit tests

Here is the list of unit tests in NGO. An item is checked if the unit test (at least partially) pass in NGO.

  • access
  • chmod
  • chown
  • cout
  • cpuid
  • device
  • empty
  • emulate_syscall
  • env
  • eventfd
  • exit_group
  • fcntl
  • file
  • fs_perms
  • getpid
  • hello_world
  • hostfs
  • ioctl
  • link
  • malloc
  • mkdir
  • mmap
  • open
  • pipe
  • prctl
  • procfs
  • pthread
  • rdtsc
  • readdir
  • rename
  • rlimit
  • sched
  • server
  • server_epoll
  • signal
  • sleep
  • spawn
  • stat
  • symlink
  • sysinfo
  • time
  • tls
  • truncate
  • uname
  • unix_socket

System calls

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.

Network-related syscalls (0/12)

(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),

Poll-related syscalls (0/7)

(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),

FS-related syscalls (0/4)

(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),

User/group-related syscalls (0/4)

(Getegid = 108) => do_getegid(),
(Geteuid = 107) => do_geteuid(),
(Getgid = 104) => do_getgid(),
(Getpgid = 121) => do_getpgid(),

Sched-related syscalls (0/3)

(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),

Misc syscalls (0/3)

(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),

Support io_uring's IORING_SETUP_SQPOLL flag

Motivation

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.

Problem

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.

Solution

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

  • Upgrade the occlum/io-uring crate
    • The crate is a fork of tokio-rs/io-uring, with modifications to support SGX. The original tokio-rs/io-uring crate has added support for IORING_SETUP_SQPOLL.
    • Need to rebase our fork to the latest master branch of tokio-rs/io-uring
    • Make sure all unit tests pass, including the SGX sample code
  • Use the new occlum/io-uring in LibOS and other crates
    • Add the IORING_SETUP_SQPOLL flag when creating an io_uring instance
    • Set the sq_thread_idle parameter to a proper value, e.g., 500 milliseconds
    • Remove the workaround
  • Document the minimal requirement for Linux kernel is 5.11

[vdso-time] Avoid using rdtsc for SGX 1

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.

  1. Detect SGX version at runtime in the LibOS. If the version is SGX 1, then avoid using vdso-time .
  2. Extend the vdso-time crate so that it can fallback to the OCall version on SGX 1 hardware.
  3. Extend the vdso-time crate so that it avoids using 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.

[RFC] Config the number vCPUs

The problem

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:

  • How the user can specify the number of CPU cores?
  • If the user does not give the number explicitly, what should be the default behavior?

Possible solutions

A bad answer: Occlum.json

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.

Reference answers

Container runtimes like Docker and Kata face a similar problem. Let's see how they solve the problem.

Docker

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.

Kata

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.

The proposed solution

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

Track the process of merging from the upstream Occlum

  • .githooks
  • .github
    • TODO: enable glibc tests and use standard docker image
  • demos
  • deps
    • flume
    • grpc-rust
    • io-uring
    • itoa-sgx
    • rust-hash-wheel-timer
      • TODO: move this crate to occlum organization
    • rust-sgx-sdk
    • sefs
    • serde-json-sgx
    • serde-sgx
    • xmas-elf
      • TODO: remove it
    • ringbuf.patch
    • resolv-conf.patch
    • sefs.patch
      • TODO: remove it after updating sefs
    • serde-json-sgx.patch
  • docs
  • etc
  • src
  • test
    • TODO: Enable commented tests.
  • tools
    • docker
    • gen_internal_conf
    • init
    • installer
    • protect-integrity
    • toolchains
    • Makefile
    • c_formatter
    • occlum
    • occlum_build.mk
    • update_version.sh
  • .all-contributorsrc
  • .astylerc
  • .gitignore
  • .gitmodules
  • CODE_OF_CONDUCT.md
  • LICENSE
  • Makefile
  • README.md

Todo List for merging upstream Occlum

Based on Occlum 0.20.0

Unit Test

To Do:

  • access
    • test_faccessat_with_dirfd (Require: Fix FsPath::to_abs_path)
  • chmod
    • test_fchmodat
  • chown
    • test_fchownat (Require: Fix FsPath::to_abs_path)
    • test_fchownat_with_empty_path (Require: Fix FsPath::to_abs_path)
  • cout
  • device
  • env
  • eventfd
    • test_fcntl_get_flags (Require: fcntl)
    • test_fcntl_set_flags (Require: fcntl)
    • test_create_with_flags (Require: fcntl)
    • test_select_with_socket (Require: select)
  • exit_group
    • sleeping_thread and futex_wait_thread (Require: interrupt)
  • fcntl
  • fs_perms
  • hostfs
  • ioctl
  • link
    • test_linkat_then_unlinkat
    • test_linkat_with_empty_oldpath
  • mkdir
    • test_mkdirat (Require: Fix FsPath::to_abs_path)
  • mmap
    • file-mmap related tests
  • open
  • pipe
    • test_fcntl_get_flags
    • test_fcntl_set_flags
    • test_create_with_flags
    • test_epoll_timeout
    • test_epoll_no_timeout
  • procfs
    • test_mutex_with_cond_wait
    • test_mutex_timedlock
  • readdir
  • rename
    • test_renameat (Require: Fix FsPath::to_abs_path)
  • server
    • test_fcntl_setfl_and_getfl
  • stat
    • test_fstatat_with_abs_path
    • test_fstatat_with_empty_path
    • test_fstatat_with_dirfd
  • symlink
    • 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)

Syscalls

To Do:

  • Ioctl
  • Fcntl
  • Select
  • Sendfile
  • Getdents
  • Getdents64

Features

To Do:

  • Time:
    • support vDSO in VM
    • support SGX1 (since we use RDTSC now)
  • Network:
    • support other domain
    • support more SendFlag and RecvFlag
    • support more builtin socket option
    • support ioctl
    • support msg_control and msg_flag in sendmsg / recvmsg
    • cancel ongoing io-uring request when close socket
  • schedule:
    • better solution for always_loop task
  • Libos signal
    • nanosleep
    • poll, select
    • other syscalls with EINTR support

Areas of Improvement

Tracking the areas of improvement for NGO.

  1. I/O syscalls (e.g., write and read)
    a. io_uring-based switchless technique @shuocheng
    b. Page cache @jessehui
    c. File system optimization (See ELFS) @liqinggd
  2. Scheduling syscall (e.g., futex and sched_yield) @tatetian
    a. In-enclave scheduling
    b. Async/await
  3. Memory syscalls (e.g., mmap and munmap) @jessehui
    a. EDMM
    b. Async memory copy/init @henrysun007
    c. Lazy loading
  4. Timing (e.g., gettimeofday and clock_gettime) @shuocheng
    a. vDSO-based switchless
  5. Misc @guzongmin
    a. Optimize is_inside_enclave
    b. Use tcmalloc

Improve the performance of IoUringDisk

According to the benchmark in sgx-disk, the performance of IoUringDisk is inferior to that of SyncIoDisk in some cases. Need to find out why and improve it.

image

[BUG] fstatat crashed with invalid path

Describe the bug

Once upgrading to Ubuntu 20.04 base, the Occlum LTP test may panic in the case statx03.

To reproduce

Steps to reproduce the behavior:

  1. Start a Occlum container with OS Ubuntu20.04
  2. Go to demos/linux-ltp, do the build.
  3. Go to ltp_instance, run occlum run /opt/ltp/run-ltp.sh -f syscalls -s statx03

Expected behavior

No panic.

Logs

If applicable, add logs to help explain your problem.

Environment

  • HW: [e.g. SGX1, SGX2]
  • OS: [Ubuntu20.04]
  • Occlum version: [0.27.0]

Additional context

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

Possible solution/Implementation

Not obligatory, but suggest a fix/reason for the bug.

[RFC] Introduce Asynchronous Filesystem in NGO

  • Feature Name: Introduce Asynchronous Filesystem
  • Start Date: 2022-06-15

Summary

We will add the newly designed and implemented AsyncFS into NGO. The AsyncFS uses Rust asynchronous programming skills, making it fast and concurrent.

Motivation

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.

High-level Design

We newly design the hierarchy of the FS in Occlum as follows. The Async VFS, Async SFS, and Page Cache are three new crates.
F1A4DF92-4DB9-4C2D-A709-56E0374A3D1C

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.

Detail-level explanation

Async-VFS

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.

Async-SFS

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.

The Block Layout of 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.

572CC2FF-65FB-407E-9F0B-4AE85F428012

The Block Indexing of Inode

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.

48F1BA03-6EAF-4305-9C90-A3C97AA1E106

The Directory Entry

A directory is a specially formatted file containing file records, It is like a linked list of directory entry structures.

C18C617D-7474-4734-97FB-35A043880E75

Performance

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.

Current Limitation

  • 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.

Page Cache

Please refer to the issue: #267

[RFC] Introduce SwornDisk in NGO

  • Feature Name: Introduce SwornDisk
  • Start Date: 2022-11-17

In a nutshell

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.

Design Overview

SwornDisk: A Log-Structured Secure Block Device for TEEs

Objectives: confidentiality, integrity, freshness, anonymity, consistency, and (flush) atomicity

1

Motivation

  • Existing solutions for protecting the on-disk data for TEEs are far from satisfactory in terms of both
    security and performance (eCryptfs, fscrypt, dm-crypt, SGX-PFS)
  • Yet SGX-PFS has both performance issue (Slow random writes due to 2 × H write amplification) and security vulnerability (Unanticipated snapshot attacks, CVE-2022-27499, our website)
  • Unanticipated snapshot attack: The adversary can capture and replay transient on-disk states (due to cache eviction in TEE) which are un-aware to users

2

Background knowledge

  1. In-place updates MHT-based approach VS. out-of-place updates log-structured approach

3

  • Random writes are slower than sequential writes in HDD/SSD

  • Write amplification: 2 × H vs. 1 + ϵ (ϵ ≪ 1)

  1. Log-Structured Merge tree (LSM-tree)
  • A leveled, ordered, disk-oriented index structure for KV stores. The core idea is to use append-only(sequential) writes to suit write-intensive workloads, avoid fragmentation writes like B-trees.
  • The data are organized in memory of MemTable and in persistence of SST files.
  • The read performance is degraded and LSM-tree uses bloom-filter and compaction strategy to minimize.
  • Usecase: BigTable, Hbase, LevelDB, RocksDB

4

  • Workflow: KV pair → MemTable → Sorted String Table → Minor compaction to L0 → Major compaction to Li

Architecture

5

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.

Block I/O operations

read()

params: start address LBA, a number of block buffers

  1. Retrieve the HBAs, encryption keys, and MACs of these blocks from secure index (LSM-tree)
  2. Read and decrypt the encrypted data blocks from the HBAs
  3. Return to user plaintext data after verification

read

write()

params: start address LBA, a number of block buffers

  1. Save data in segment buffer and notify user of completion immediately
  2. When segment buffer becomes full or flush request received,
  3. Encrypt each block with random key, calculate MAC, and persist the segment to allocated disk location
  4. New generated index records are inserted to LSM-tree(persist to index region), new journal records are persisted to journal region

write

flush()

params: none

  1. Trigger flushing the new data in the temporary segment buffers to the physical disk
  2. Write journal to ensure consistency and atomicity

trim()

params: start address LBA, end address LBA

  1. Similar to write, except no new data is written, only the index is updated to discard the specified data blocks

Garbage Collection (segment cleaning)

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.

Index region

  • Disk oriented secure LSM-tree (dsLSM-tree): Organize the disk content directly on a raw disk without the help of file systems.
  • Block Index Table (BIT): Replacement of traditional SST. BIT integrates an MHT with a B+ tree. Each node is fixed-size and authentication encrypted.
    • 6
    • Root node and internal nodes: manage child nodes [ LBA range, HBA, Key, MAC)
    • Leaf nodes: Array of data records [ LBA → (HBA, Key, MAC) ]

Journal region

Journal contains a series of records that summarize the information of each on-disk update of the secure data log and the secure index.

  • record contains cryptographic information about the corresponding on-disk updates;
  • journal block (composed of multiple records) is chained with each other, embedded the MAC of the previous one;

SwornDisk realizes consistency based on three internal journal operations: journaling, checkpointing, and recovery.

Journaling

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

Checkpointing

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.

  • checkpoint region preserves backups of BITC, SVT, DST, and RIT;
  • checkpoint pack consists of the creation timestamp, the head and tail positions of the secure journal, and the bitmaps to choose valid backups for recovering;

Recovery

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.

image

Checkpoint region

Consist of some auxiliary data structures for index query and segment management:

  • Block Index Table Catalog (BITC): Recording the metadata of a BIT [ BIT ID, level, key range, root node ]
    • Used for manage LSM-tree's BITs
  • Segment Validity Table (SVT): A bitmap where each bit indicates whether a segment is valid
    • Used for allocation/deallocation of data/index segments
  • Data Segment Table (DST): Contain per-segment metadata of the data segments (valid block bitmap)
    • Used for manage invalidation of blocks in each segment, and GC
  • Reverse Index Table (RIT): Mapping from HBAs to LBAs
    • Used for GC

Further discussion

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.

Implementation Review

[WIP]
ngoiostack

[RFC] Introduce Page Cache in NGO

  • Feature Name: Introduce Page Cache
  • Start Date: 2022-06-21

Summary

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.

Background

Please refer to:

Design doc: #238

Async Filesystem: #265

High-level Design

page-cache mainly provides LRU-strategy struct PageCache and Usage-wrapper struct CachedDisk for users (filesystems).

page-cache

API

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.

Detail-level explanation

See cargo doc of page-cache.

Performance improvement

fio-pagecache

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().

Future work

  • Batch read blocks from block device in CachedDisk's read().
  • Two-List Strategy: aka LRU/2, used to solve the only-used-once failure. Keep two lists: the active list and the inactive list. Pages on the active list are considered "hot" and are not available for eviction. Pages on the inactive list are available for cache eviction.
  • Implement BlockDevice for CachedDisk.
  • Try to integrate memory-mapped file.

[RFC] Use PKU for isolation between LibOS and userspace program

Summary

  • Feature Name: Use PKU for isolation between LibOS and userspace program.
  • Start Date: 2022-03-22

Motivation

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.

High-Level Design

Pkey Allocation

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

pkey_layout

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:

  • The deafult pkey is 0 in Linux. All the memory pages allocated by OS are tagged with pkey 0. SGX SDK and LibOS may request new memory pages from OS, and we don't want to extrally invoke pkey_mprotect() when we get new memory pages;
  • At the enclave boot time, the 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.

PKRU Configuration

PKRU value

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.

pkru_config

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 process
  • PKRU_LibOS = 0x0: The PKRU value for LibOS and SGX SDK inside enclave
  • PKRU_User = 0x55555551: The PKRU value for userspace apps in NGO

PKRU switch

PKU 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:

  • Synchronous: Userspace application performs LibOS syscall;
  • Asynchronous: An exception or interrupt occurs when userspace application executes

We will show design details at the next section.

Design Details

Synchronous Interactions

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.

syscall_enter

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.
syscall_exit

Asynchronous Interactions

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.

exception_hw

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:

  • ① --> ② : 0x5555554, as mentioned in this man page, "Each time a signal handler is invoked (including nested signals), the thread is temporarily given a new, default set of protection key rights that override the rights from the interrupted context". So PKRU is set to PKRU_Default by OS when sig_handler() is invoked;
  • ② --> ③ : 0x5555554, EENTER does not change PKRU value;
  • ③ --> ④ : 0x5555554, EEXIT does not change PKRU value;
  • ④ --> .. : 0x0, 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:

  • When an exception arrives, OS invokes 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.
  • After Return from signal handler, the PKRU is restored to 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.
  • After ERESUME, the handler in LibOS (execption_entrypion or interrupt_entrypoint) is invoked. LibOS resumes the execution of userspace apps after handling it.

execption_sw

Other Issusses

  • 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> .....

References

[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

Many SGX examples of crates don't work

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:

  1. path error, use error rust-sgx-sdk path
  2. ocall link error, e.g., 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 code

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.