Most active commenters
  • koverstreet(8)
  • tux3(4)
  • magicalhippo(4)
  • immibis(3)

←back to thread

214 points ksec | 26 comments | | HN request time: 3.439s | source | bottom
Show context
Volundr ◴[] No.45076237[source]
Damn. I was enjoying not having to deal with the fun of ZFS and DKMS, but it seems like now bcachefs will be in the same boat, either dealing with DKMS and occasional breakage or sticking with the kernel version that slowly gets more and more out of date.
replies(4): >>45076451 #>>45076664 #>>45076776 #>>45076818 #
1. WD-42 ◴[] No.45076818[source]
The article says that bcachefs is not being removed from the mainline kernel. This looks like mostly a workaround for Linus and other kernel devs to not have to deal with Kent directly.
replies(2): >>45077114 #>>45077151 #
2. ffsm8 ◴[] No.45077114[source]
The three listed options in the OP thread were

* Another kernel Dev takes over management and they tread it as a fork (highly unlikely according to their estimate)

* Kent hires someone to upstream the changes for him and Kent stops complaining wrt when it's getting merged

* Bcachefs gets no maintenance and will likely be removed in the next major release

I do not know him personally, but most interactions I've read online by him sounded grounded and not particularly offensive, so I'm abstaining from making any kind of judgement on it.

But while I have no stake in this, Drama really does seem to follow Kent around for one reason or another. And it's never his fault if you take him by his public statements - which I want to repeat: he sounds very grounded and not offensive to me whatsoever.

replies(2): >>45077524 #>>45078547 #
3. tux3 ◴[] No.45077151[source]
It's complicated, no one really knows what "externally maintained" entails at the moment. Linus is not exactly poised to pull directly from Kent, and there is no solution lined-up at the moment.

Both Linus and Kent drive a hard bargain, and it's not as simple as finding someone else to blindly forward bcachefs patches. At the first sign of conflict, the poor person in the middle would have no power, no way to make anyone back down, and we'd be back to square one.

It's in limbo, and there is still time, but if left to bitrot it will be removed eventually.

replies(1): >>45077281 #
4. immibis ◴[] No.45077281[source]
That person would be accountable to Linus, but not to Kent.
replies(1): >>45077372 #
5. tux3 ◴[] No.45077372{3}[source]
Unfortunately, there's also nothing they can do if Kent says no. Say there's a disagreement on a patch that touches something outside fs/bcachefs, that person can't exactly write their own patches incorporating the feedback. They're not going to fork and maintain their own patches. They'd be stuck between a rock and a hard place, and that gets us back to a deadlock.

The issue is that I have never seen Kent back down a single time. Kent will explain in details why the rules are bullshit and don't apply in this particular case, every single time, without any room for compromise.

If the only problem was when to send patches, that would be one thing. But disagreements over patches aren't just a timing problem that can be routed around.

replies(1): >>45078945 #
6. sarlalian ◴[] No.45077524[source]
If you look at all the places where Kent has had drama, the common element is him and environments that have pretty rigid workflows. The common thread seems to be him not respecting workflows and processes that those places have, that inconvenience his goals. So, he ignores the workflows and processes of those places, and creates a constant state of friction and papercuts for those who he needs to accomplish his goals. They eventually get fed up, and either say no, not working with you anymore, or no, you’re not welcome to contribute here anymore.

He’s not super offensive, but he will tell a Debian package maintainer that their process sucks, and the should change it and they are being stupid by following that process. Overall, he seems a bit entitled, and unwilling to compromise with others. It’s not just Kent though, the areas that seem to be the most problematic for him, are when it’s an unstoppable force (Kent), and an immovable wall (Linux / Debian).

Working in the Linux kernel is well known for its frustrations and the personal conflict that it creates, to the point that there are almost no linux kernel devs/maintainers that aren’t paid to do the work. You can see a similar set of events happen with Rust4Linux people, Asahi linux project and their R4L drivers, etc.

7. 42lux ◴[] No.45078547[source]
Grounded? Not offensive?

https://lore.kernel.org/lkml/CAHk-=wiLE9BkSiq8F-mFW5NOtPzYrt...

https://lore.kernel.org/all/citv2v6f33hoidq75xd2spaqxf7nl5wb...

replies(1): >>45078839 #
8. ffsm8 ◴[] No.45078839{3}[source]
The first one is by Linus? And his replies (at least the ones I read) are - to me- less aggressive then the rest of the mails in that chain

The second has one offensive remark:

> Get your head examined. And get the fuck out of here with this shit.

which I thought he admitted was out of line and - said sorry for. Or do I misremember? I admit once again, I'm still completely uninvolved and merely saw it play out on the internet.

replies(1): >>45079238 #
9. koverstreet ◴[] No.45078945{4}[source]
The key thing here is I've never challenged Linus's authority on patches outside fs/bcachefs/; I've quietly respun pull requests for that, on more than one occasion.

The point of contention here was a patch within fs/bcachefs/, which was repair code to make sure users didn't lose data.

If we can't have clear boundaries and delineations of responsibility, there really is no future for bcachefs in the kernel; my core mission is a rock solid commitment to reliability and robustness, including being responsive to issues users hit, and we've seen repeatedly that the kernel process does not share those priorities.

replies(2): >>45079197 #>>45082574 #
10. tux3 ◴[] No.45079197{5}[source]
You may be right, but I think looking at it from a lens of who has authority and can impose their decision is still illustrating the point I'm trying to make.

To some extent drawing clear boundaries is good as a last resort when people cannot agree, but it can't be the main way to resolve disagreements. Thinking in terms of who owns what and has the final say is not the same as trying to understand the requirements from the other side to find a solution that works for everyone.

I don't think the right answer is to blindly follow whatever Linus or other people say. I don't mean you should automatically back down without technical reasons, because authority says so. But I notice I can't remember an email where concessions where made, or attemps to find a middle grounds by understanding the other side. Maybe someone can find counterexamples.

But this idea of using ownership to decide who has more authority and can impose their vision, that can't be the only way to collaborate. It really is uncompromising.

replies(1): >>45079247 #
11. yencabulator ◴[] No.45079238{4}[source]
If you read his replies downthread from that, Kent seems to be going through a lot of effort to not apologize, in any form, and prefers talking about how other people were mean to him.

I had high hopes for bcachefs. sigh

12. koverstreet ◴[] No.45079247{6}[source]
> To some extent drawing clear boundaries is good as a last resort when people cannot agree, but it can't be the main way to resolve disagreements. Thinking in terms of who owns what and has the final say is not the same as trying to understand the requirements from the other side to find a solution that works for everyone.

Agreed 100%. In an ideal world, we'd be sitting down together, figuring out what our shared priorities are, and working from there.

Unfortunately, that hasn't been possible, and I have no idea what Linus's priorities except that they definitely aren't a bulletproof filesystem and safeguarding user data; his response to journal_rewind demonstrated that quite definitively.

So that's where we're at, and given the history with other local filesystems I think I have good reason not to concede. I don't want to see bcachefs run off the rails, but given all the times I've talked about process and the way I'm doing things I think that's exactly what would happen if I started conceding on these points. It's my life's work, after all.

You'd think bcachefs's track record (e.g. bug tracker, syzbot) and the response it gets from users would be enough, but apparently not, sadly. But given the way the kernel burns people out and outright ejects them, not too surprising.

replies(2): >>45079299 #>>45079421 #
13. tux3 ◴[] No.45079299{7}[source]
Fair enough. As someone who has lost filesystems to bugs and files to corrupted blocks, I definitely appreciate the work you've done on repair and reliability.

I think there's room to have your cake and eat it too, but I certainly can't blame you for caring about quality, that much is sure.

14. magicalhippo ◴[] No.45079421{7}[source]
> Unfortunately, that hasn't been possible, and I have no idea what Linus's priorities except that they definitely aren't a bulletproof filesystem and safeguarding user data

Remarks like this come across as extremely patronizing, as you completely ignore what the other party says and instead project your own conclusions about the other persons motives and beliefs.

> his response to journal_rewind demonstrated that quite definitively

No, no it did not in any shape way or form do that. You had multiple other perfectly valid options to help the affected users besides getting that code shipped in the kernel there and then. Getting it shipped in the kernel was merely a convenience.

If bcachefs was established and stable it would be a different matter. But it's an experimental file system. Per definition data loss is to be expected, even if recovery is preferable.

replies(1): >>45079458 #
15. koverstreet ◴[] No.45079458{8}[source]
No, bcachefs-tools wasn't an option because the right way to do this kind of repair is to first do a dry run test repair and mount, so you can verify with your eyes that everything is back as it should be.

If we had the fuse driver done that would have worked, though. Still not completely ideal because we're at the mercy of distros to make sure they're getting -tools updates out in a timely manner, they're not always as consistent with that as the kernel. Most are good, though).

Just making it available in a git repo was not an option because lots of bcachefs users are getting it from their distro kernel and have never built a kernel before (yes, I've had to help users with building kernels for the first time; it's slow and we always look for other options), and even if you know how, if your primary machine is offline the last thing you want to have to do is build a custom rescue image with a custom kernel.

And there was really nothing special about this than any other bugfix, besides needing to use a new option (which is also something that occasionally happens with hotfixes).

Bugs are just a fact of life, every filesystem has bugs and occasionally has to get hotfixes out quickly. It's just not remotely feasible or sane to be coming up with our own parallel release process for hotfixes.

replies(1): >>45079860 #
16. magicalhippo ◴[] No.45079860{9}[source]
That you or the user dislike some of the downsides does not invalidate an option.

I will absolutely agree with you that merging that repair code would be vastly preferable to you and the users. And again, if bcachefs was mature and stable, I absolutely think users should get a way to repair ASAP.

But bcachefs is currently experimental and thus one can reasonably expect users to be prepared to deal with the consequences of that. And hence the kernel team, with Linus at the top, should be able to assume this when making decisions.

If you have users who are not prepared for this, you have a different problem and should seek how to fix that ASAP. Best would probably be to figure out how to dissuade them from installing. In any case, not doing something to prevent that scenario would be a disservice to those users.

replies(1): >>45080136 #
17. koverstreet ◴[] No.45080136{10}[source]
bcachefs has had active users, with real data that they want to protect, since before it was merged.

A lot of the bcachefs users are using it explicitly because they've been burned by btrfs and need something more reliable.

I am being much, much more conservative with removing the experimental label than past practice, but I have been very explicit that while it may not be perfect yet and users should expect some hiccups, I support it like any other stable production filesystem.

That's been key to getting it stabilized: setting a high expectations. Users know that if they find a critical bug it's going to be top priority.

replies(1): >>45080448 #
18. magicalhippo ◴[] No.45080448{11}[source]
Given the bug fixes and changes, the experimental flag seems quite appropriate to me. That's not a bad thing.

However, it was put in the kernel as experimental. That carries with it implications.

As such, while it's very commendable that you wish to support the experimental bcachefs as-if it was production ready, you cannot reasonably impose that wish upon the rest of the kernel.

That said I think you and your small team is doing a commendable job, and I strongly wish you succeed in making bcachefs feature complete and production ready. And I say that as someone who really, really likes ZFS and run it on my Linux boxes.

replies(1): >>45085756 #
19. tuna74 ◴[] No.45082574{5}[source]
Linus T is responsible for everything in Linux, it is his project and he is the maintainer. He can do everything he wants in his branch and people just have to accept it. If you want to be responsible you have to fork Linux.
replies(1): >>45083395 #
20. koverstreet ◴[] No.45083395{6}[source]
Let's examine this, shall we?

Has he ever even been involved with a bcachefs bug? No, aside from arguing against shipping bugfixes.

Has he contributed in any way, besides merging code? No...

Has he set rules or guidelines that benefited bcachefs reliability? No, but he has shouted down talk about automated testing.

I think you're confusing power with responsibility.

replies(1): >>45086320 #
21. koverstreet ◴[] No.45085756{12}[source]
All I need to support bcachefs is for the same rules to apply as they are to every other subsystem.
replies(1): >>45086543 #
22. immibis ◴[] No.45086320{7}[source]
You're still doing that thing where you assume everyone else is you. Linus's job (some of which he delegates) is to take the contributions from ALL the hundreds of maintainers, and bundle it into a unified coherent whole. He is not only responsible for bcachefs reliability. In the train analogy I already used, he is the train driver, he is responsible for getting everyone who is on the train to their destination, but he is not responsible for ensuring that you're on the train. It's your responsibility to ensure that you're on the train when it departs.

You are one of those maintainers (not any more). Your code can be taken into the bundle (not any more), but on the bundle's schedule, not yours. You have consistently failed to understand that the train doesn't wait for you - if you are late, you get on the next one. If you don't want to get on the next one, then don't be late. Normal people, after missing a train once or twice, would adjust their schedule accordingly so they won't miss it next time. But your exclusive, repeated reaction has been to yell at the train driver and the station master, which is why you've been kicked out of the station.

Have you ever ridden a train, by the way? Were you on time? (Deutsche Bahn doesn't count because they're not on time)

replies(1): >>45086488 #
23. koverstreet ◴[] No.45086488{8}[source]
We're not talking about situations where the bcachefs changes could plausibly affect the rest of the kernel, and I am well known even within the kernel community for being on top of potential issues and responsive on bugs.
replies(1): >>45088920 #
24. magicalhippo ◴[] No.45086543{13}[source]
From what I have read and recall, the same rules do apply.

Rather, the disagreement seems to be over what constitutes a feature and what constitutes a bugfix.

As I recall, your view is that the repair code is part of the bugfix. However Linus deems it a feature, and thus applied the "no new features outside the merge window" rule.

I think Linus is correct here and you are wrong. New code made to repair flaws that previously could not be repaired is definitely a new feature of the repair tool.

On the other hand, I am sympathetic to your argument that this is after all an experimental filesystem which has different needs from a stable hardware driver say, and as I recall the repair tool changes were entirely contained in the bcachefs subtree. As such, the worst it could do was to fail compilation on certain platforms, which already happened previously.

Personally I would have dropped the bugfix vs feature debate and focused on trying to get Linus to allow the repair code in as a new feature. From what I recall Linus said, you already burned some goodwill by the previous kernel compilation failure, but perhaps Linus could change his stance if you worked with him.

replies(1): >>45087195 #
25. koverstreet ◴[] No.45087195{14}[source]
New features go in during RCs all the time.

The hard rule you're thinking of doesn't exist, it's all risk vs. reward.

26. immibis ◴[] No.45088920{9}[source]
The merge window policy is not limited to cases where the new bcachefs features affect the rest of the kernel.