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

Morgan/upstream fix #1561

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

ccx1024cc
Copy link
Contributor

Types of changes

  1. fix residual fuse mountpoint after graceful shutdown
  2. fix compatibility to image without ext table for blob cache
  3. fix not reuse blob cache of old version
  4. fix: bad read by wrong data region

@ccx1024cc ccx1024cc requested a review from a team as a code owner March 22, 2024 03:27
@ccx1024cc ccx1024cc requested review from jiangliu, adamqqqplay and hsiangkao and removed request for a team March 22, 2024 03:27
泰友 added 2 commits March 22, 2024 03:35
    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]>
    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]>
@adamqqqplay
Copy link
Member

Unit test failed, PTAL.

泰友 added 2 commits March 27, 2024 02:36
    Nydus2.2 has same format for blob cache and bitmap on disk. However,
    2.2 nydusd not use blob cache of 1.6 nydusd. This pr counts ready
    chunk number for both 1.6 and 2.2, instead of thinking it as not filled
    at all.

Signed-off-by: 泰友 <[email protected]>
    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]>
@ccx1024cc
Copy link
Contributor Author

Unit test failed, PTAL.

This pr is in no contact with block device. Please help seek for problems of ut. @jiangliu

@imeoer imeoer mentioned this pull request Jun 18, 2024
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants