-
-
Notifications
You must be signed in to change notification settings - Fork 3k
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
[WIP] MFS improvements #4758
[WIP] MFS improvements #4758
Conversation
@Stebalien I added the fix for #4519 and now the tests are passing, now I have to resolve some merge conficts. Regarding your commit |
🕺 Nice!
That was the test case that failed due to #4519. If possible, please move your commit before it and amend that commit message to remove the WIP and the "it fails" part. |
Attempting to rebase this PR I found several merge conflicts, and even after resolving those there are still some modifications that need to be made to be able to build the program. So if I rebase this I still need to add an extra commit (or sneak in several extra modifications in the last resolution of the rebase), and the commits of this branch will be unified, meaning that a roll back to a commit of the middle of this series won't be possible (it won't build). I think it will be cleaner to do a merge here, fixing everything in one extra commit, preserving your original commits and making clear that this series of commits belong to a different time frame of the code base. Another option could be to cherry pick one commit at a time into master and tidy them up so they all work. @Stebalien Could you guide me through this, I'm not a git expert, WDYT? |
This is usually how I do it. I can take a stab at it if you'd like. |
@Stebalien Thanks, I'll give it a try myself and let you know if I run into trouble. |
The PR was automatically closed when the branch got emptied. |
* Ensure we don't flush unnecessarily. * Make it easier to work with modes/flags. * Better handle closed files. License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>
@Stebalien Regarding the first commit of the series (ensure we don't flush unnecessarily), while running the full tests on it (before I was just checking the problematic This hang happens when flushing a file with the The The problem is that In my (very limited) understanding the issue isn't the modification to |
That's probably because flush is called by the user and, after flushing, the user expects updates to be published.
I'm pretty sure your fix is correct. We should either not be calling (And sorry for being so slow to respond. Please repeatedly poke me on IRC when I don't respond in a timely manner; the more annoying the better.) |
…a publish Otherwise, WaitPub waits forever. License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>
License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>
1. DO NOT USE GOTOS FOR LOOPS. 2. Use a single timer. 3. Reuse the timer (avoids allocating and throwing away a bunch of timer channels). License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>
If we flip-flop between two values, we'll trigger a useless publish. Also, fix the TestRepublisher test case: 1. Use actual, independent CIDs. 2. Don't assume that republish on close if nothing changes. License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>
Before, WaitPub could notice that there is something to publish, sleep, then wake up and write to pubnowch *after* the value is published. This would cause it to hang until the next publish. Instead, *always* write to pubnowch and check to see if we *really* need to publish inside the `publish` function. License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>
@schomatis I've fixed it by adding a I've also:
@whyrusleeping significant change: We no longer publish one final time on close if nothing has been changed. IMO, this is correct but it's still a change (and forced me to change a test). |
This appears to cause a bug in the MFS sharness tests. It looks like there's a case where we should be flushing but aren't. |
@Stebalien When opening a file its I don't know what's causing the errors in |
Hm. I'm not sure I understand. It looks like |
@Stebalien The
|
@schomatis do you recall what's blocking this? It has a bunch of bug fixes and performance improvements. |
The flush error discussed above. |
This code has been moved to |
This is a work in progress, not ready to be merged.
This PR is a (rebased) copy of #4517, as discussed, the idea is to add the fix for #4519 and get it ready to merge.
dagTruncate
now preserves theType
of the node being truncated.