Hello,

Thanks for the iterations while testing :)

It took me time to manage to find several consecutive hours to be able
give a firm look before committing, which I have now done, congrats! :D

There is a couple things that I fixed on the fly: 

- We want to use pthread_cond_clockwait rather than
  pthread_cond_timedwait, to be able to use CLOCK_MONOTONIC instead of
  CLOCK_REALTIME, to avoid being hit by ntpdate and such.

- In diskfs_S_dir_rename, there was an addition of:

  pthread_mutex_unlock (&fnp->lock);

  which was clearly bogus: we were unlocking it again below.

There are a couple things that we'd want to fix now:

- when calling diskfs_file_update, don't we have to be inside a
  transaction? Otherwise if we pass wait=1 and use a journal, we won't
  be waiting AIUI? Notably, in diskfs_S_dir_rmdir we don't use a
  transaction. And ideally we'd have an assertion that makes sure we
  respect this.

- we should define some helper for this recurring pattern:

  if ((docommit) && (diskfs_synchronous || diskfs_journal_needs_sync (txn)))
    diskfs_journal_commit_transaction (txn);
  else
    diskfs_journal_stop_transaction (txn);

- journal_drain_deferred_blocks should document what it does, not just
  its call conditions :), and more generally the functions that are
  not already documented in a .h and not just a _locked variant of a
  documented function.

Milos Nikic, le mer. 01 avril 2026 10:55:19 -0700, a ecrit:
> As a quick reassurance regarding the buildd machines: the journal is strictly
> opt-in. If this code is merged as-is, zero journaling paths are actually
> exercised by default. (the weird assert blowup in v5 got fixed up as well)

Yes, but without actual testing before enabling on the buildds, I end up
being the beta-tester, without really having proper setup to properly
dig up information from the boxes which are supposed to keep building
packages.

And most often, unless I enable the new features on the buildds, the
subtle bugs that get discovered by heavy work do not get discovered, so
it ends up being a chicken&egg issue that I have seen keep repeat,
making buildd life difficult.

So thanks for the strong testing!

I'll upload an updated debian packages later.

Samuel

Reply via email to