commit-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] Hurd branch, master, updated. v0.9.git20230520-30-g6f5bf154


From: Samuel Thibault
Subject: [SCM] Hurd branch, master, updated. v0.9.git20230520-30-g6f5bf154
Date: Sat, 12 Aug 2023 15:25:46 -0400 (EDT)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Hurd".

The branch, master has been updated
       via  6f5bf154ba60bc5067760fcaf52a222ee7e2bc2e (commit)
      from  f6a589a59ea88c895d35a595c3d0580495dbc548 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 6f5bf154ba60bc5067760fcaf52a222ee7e2bc2e
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Sat Aug 12 21:22:12 2023 +0200

    file-syncfs: Avoid deadlock
    
    This is a four-player problem (here for diskfs):
    
    - One runs sync, which calls diskfs_S_file_syncfs, which triggers
      fsys_syncfs on all active translators, while keeping the
      translator_ihash_lock lock.
    
    - One of the active translators is hung, for some reason
    
    - Another ext2fs thread is trying to call fshelp_set_active_translator from
      dir_lookup. It is stuck on trying to acquire translator_ihash_lock, and it
      holds the np.
    
    - The ext2fs thread running diskfs_sync_everything tries to lock that
      np, while holding the nodecache_lock.
    
    In the end everything is locked. While diskfs_S_file_syncfs can as well just
    atomically get the list of active translators, and then call fsys_syncfs
    without keeping translator_ihash_lock held.

-----------------------------------------------------------------------

Summary of changes:
 libdiskfs/file-syncfs.c | 36 +++++++++++++++++++-----------------
 libnetfs/file-syncfs.c  | 35 +++++++++++++++++++----------------
 2 files changed, 38 insertions(+), 33 deletions(-)


hooks/post-receive
-- 
Hurd



reply via email to

[Prev in Thread] Current Thread [Next in Thread]