Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

a series of fixups for nydusd #1587

Merged
merged 3 commits into from
Jun 18, 2024
Merged

Commits on Jun 18, 2024

  1. fix: residual fuse mountpoint after graceful shutdown

        1. Case1: Fuse server exits in thread not main. There is possibility
           that process finishes before shutdown of server.
        2. Case2: Fuse server exits in thread of state machine. There is
           possibiltiy that state machine not responses to signal catch
           thread. Then dead lock happens. Process exits before shutdown of
           server.
    
        This pr aims to seperator shutdown actions from signal catch
        handler. It only notifies controller. Controller exits with
        shutdown of fuse server. No race. No deadlock.
    
    Signed-off-by: 泰友 <[email protected]>
    泰友 authored and imeoer committed Jun 18, 2024
    Configuration menu
    Copy the full SHA
    0b03e1d View commit details
    Browse the repository at this point in the history
  2. fix: bad read by wrong data region

        User io may involve discontinuous segments in different chunks. Bad
        read is produced by merging them into continuous one. That is what
        Region does. This pr separate discontinuous segments into different
        regions, avoiding merging forcibly.
    
    Signed-off-by: 泰友 <[email protected]>
    泰友 authored and imeoer committed Jun 18, 2024
    Configuration menu
    Copy the full SHA
    58c7f69 View commit details
    Browse the repository at this point in the history
  3. fix: compatibility to image without ext table for blob cache

        There are scenes that cache file is smaller than expect size. Such as:
    
        1. Nydusd 1.6 generates cache file by prefetch, which is smaller than size in boot.
        2. Nydusd 2.2 generates cache file by prefetch, when image not provide ext blob tables.
        3. Nydusd not have enough time to fill cache for blob.
    
        Equality check for size is too much strict for both 1.6
        compatibility and 2.2 concurrency. This pr ensures blob size smaller
        or equal than expect size. It also truncates blob cache when smaller
        than expect size.
    
    Signed-off-by: 泰友 <[email protected]>
    泰友 authored and imeoer committed Jun 18, 2024
    Configuration menu
    Copy the full SHA
    c957c90 View commit details
    Browse the repository at this point in the history