Linux CoC Announces Decision Wrt Kent Overstreet (Bcachefs)

(lore.kernel.org)

49 points | by pantalaimon 5 hours ago ago

76 comments

  • PaulCarrack 3 hours ago

    What he said wasn't even nearly as bad as what I've seen Linus say in other threads over the years. Is / was Linus Torvalds ever subject to a "tribunal" like Kent just was?

    In the end, it's the users that end up suffering. The guy (Hocko) kept making mistake after mistake and Kent struggled to get him to do anything remotely net positive with regard to the issues in that original thread.

    I'm not arguing that what Kent did was right or wrong, but I would be curious to hear what other ways people work with remote developers who are awful, especially when they work for other companies. You can't just fire them, so I understand the frustration here.

    • jitl 3 hours ago

      Yes, Linus took some time off to “learn empathy” https://arstechnica.com/gadgets/2018/09/linus-torvalds-apolo...

      And I would say on a whole his behavior after 2018 has been less rude although he is still quite frank when necessary. I think it’s a positive change.

      I think Linus’s message from 2018 is good perspective here: when someone behaves in a way that harms the mission of the kernel it’s better to try to change that behavior at the expensive of that person’s contributions for a limited time, rather than having the bad behavior negatively impact all other contributors forever.

      https://lkml.org/lkml/2018/9/16/167

    • Twirrim 3 hours ago

      The current CoC came out from a particularly bad incident with Linus, which he signed off on at the same time as he went into therapy and started working on himself. There is a remarkable difference in the before and after.

      > I'm not arguing that what Kent did was right or wrong, but I would be curious to hear what other ways people work with remote developers who are awful, especially when they work for other companies. You can't just fire them, so I understand the frustration here.

      They absolutely can "fire" them, by making a decision not to accept any contribution from them.

    • uluyol 3 hours ago

      Around the time the CoC was being established, Linus went to therapy. If I recall correctly, some people had spoke to him about his behaviors and he decided to do something about it. I think it was done in private so it's unclear how much of it was pressure vs his own decision. His tone has become much less aggressive since.

      • LtWorf 3 hours ago

        He's been unpleasant also after he came back. Not as extreme maybe, but certainly not nice.

        • tredre3 2 hours ago

          Honesty is often unpleasant, especially when someone tells us that our work isn't good enough. But it is a required thing from a leader. The important thing is that he's cut down on needless personal insults.

          • LtWorf 2 hours ago

            But Linus isn't honest. I'm sure he thinks he is, but he's not always "objective". So while he thinks he's being honest, what he's saying can be untrue anyway.

            And of course he's Linus and you're a nobody so nobody will ever listen to the other side of the completely subjective "facts"

            • marcus0x62 2 hours ago

              Being honest doesn’t have anything to do with being objectively correct, unless a person is presenting their subjective feelings as objective fact.

              Saying to someone “your work is not good enough for me” is a subjective statement; whether or not it is honest depends on whether or not it is reflective of the speaker’s beliefs about the quality of the work.

              A leader not speaking up when they receive subpar work is dishonest, and it is fundamentally unfair to the person doing the work.

        • johnisgood 3 hours ago

          He should get some tips from Theo. :D

    • unsnap_biceps 3 hours ago

      Linus did take a break to work on his anger issues and he has been very noticeably improved these last 6 years. While I don't think it was due to a tribunal, but I think enough other developers told him in private to work on it.

      https://www.theregister.com/2018/09/17/linus_torvalds_linux_...

      • Filligree 3 hours ago

        Came a bit too late for me; I spent some time fixing bugs in an ISDN driver in my teens, but Linus’ reputation prevented me from ever trying to upstream it.

        • LtWorf 2 hours ago

          From having dealt with him personally, you probably saved yourself a lot of trouble.

    • NewJazz 3 hours ago

      The CoC is new, so no Linus wasn't subject to it in the past.

  • taeric 3 hours ago

    I tried reading the history here. I confess the emails signed "on behalf of the committee" hit with a bad taste.

    In particular, if the goal is to promote more discussion and openness between contributors, having a "committee" involved feels very counter productive. As does demanding an apology.

    By all means, empower folks to call others out as rude. Publicly call out what you see as transgressions. But don't do so with a shield of, "I'm speaking for the committee."

  • marcodiego 3 hours ago

    I've been an on and off contributor of FLOSS software for a long time. Sometimes I sent some unfinished patches and got responses like ' I don't think you know what you're doing' and 'turn on brain'.

    At the time I considered those developers were right and didn't complain. It made more careful before sending patches and commenting. But it also affected my willing to contribute with the project. I also consider that, although those devs were right, they could have expressed themselves more cordially. I don't think being that rude improves anything.

    I do support the CoC committee decision and hope more projects had one.

    • tpoacher an hour ago

      I agree with your general point about the effects of such rudeness, but I also think the solution is to actually "just" write to these people (in broad cc) and say "Please consider that, although [you] devs were right, [you] could have expressed [your]selves more cordially. I don't think being that rude improves anything, [and] this behaviour has affected my willing to contribute with the project.". Even if your own email falls on deaf ears, the second or third will trigger reflection. And the 10th will trigger some sort of review by colleagues. After all, at the end of the day, it's a team of adults who are all in it for the same goal, and they should be trusted to be able to handle it like adults when concerns have been expressed in the appropriate manner.

      Whereas CoC-driven development risks leading to a chilling effect where you no longer constructively argue about stuff, let alone in a passionate manner (that, admittedly, risks going the wrong side of the fence on occasion), and just let shit pile up because it's not your business to be getting the snake out of the hole and messing with a CoC Panel for it.

      And this is even in the 'ideal' case where the CoC Panel has no 'political' ulterior motives. God forbid when this is not the case.

      Basically, careful what you wish for.

      • bonzini 43 minutes ago

        > Whereas CoC-driven development risks leading to a chilling effect where you no longer constructively argue about stuff, let alone in a passionate manner (that, admittedly, risks going the wrong side of the fence on occasion), and just let shit pile up

        Based on what data?

  • alwayslikethis 2 hours ago

    Not meaning to support him, but for Kent’s perspective:

    https://www.patreon.com/posts/trouble-in-116412665

    I don't think what Kent did was right, but I'm also not sure this kind of heavy-handed approach by the CoC team is good, either. The forced public apology sounds a bit like a kindergarten teacher forcing two kids to shake hands after a fight.

    On my part, I just hope that Linux will get a real competitor to ZFS.

  • sheepdestroyer 2 hours ago

    Being technically wrong and unproductive during a technical argument should not warrant being insulted.

    But It would surely suffice to prevent a demand for a public apology from the exasperated party who was on the right side of the argument ; or at least not before the insulted party having issued an apology for being wrong and uncooperative in the first place.

    When CoC have the effect of punishing volunteer work for not being nice/polite/SFW during an argument, regardless of who was technically right, this is putting form over substance.

    This is a stance that seems balanced toward corporate friendliness. But I believe that the kernel benefits more from being a community/volunteer oriented project than pandering to corporate culture of niceness over anything else.

    Losing BcacheFS over this would be a shame.

    • LtWorf an hour ago

      It's american culture.

      And it's corporate because linux is now corporate run. And all these things make sure that no volunteer will ever take part.

  • linsomniac 3 hours ago

    My reading of it is that they both were being jerks. In particular, the whole "I supported my argument with references, but it's YOUR job to locate those arguments" never sits well with me.

    Reminds me a bit of this time I had FINALLY gotten someone to volunteer to help out with maintenance, and his first action was met with someone being a real jerk. I called them out on it and they started attacking me. I never replied, but I did get an "appology" from them: [paraphrased] "I'm sooo sorry... That I sent that from my work address. Please don't get me fired, I need this job."

  • bluecalm 2 hours ago

    So "CoC committee" recommends refusing pull requests because their author was rude when arguing technical issue with someone who appears to be incompetent? Am I getting this right?

  • randomfish1 32 minutes ago

    Tbh the longer this goes on the worse it makes the kernel and Kent look. Coc drama is petty but this is the latest in months worth of problems coming out of bcachefs. Were currently at the point of "get better" and the next action should be "get out". There is a place for bcachefs in the kernel, it's just out of tree.

  • jackhalford 3 hours ago

    I really want to migrate my zfs pool to bcachefs so I can finally follow the latest version of fedora from day one, but this crap is making me doubt it’s a good move…

    • curtis3389 3 hours ago

      Regardless of everything else, most people should not be using bcachefs yet. Kent has even stated that unless you're okay not being able to access your data for chunks of time while bugs are being fixed, you shouldn't be using it. The conventional wisdom would be to wait 10 years after a new filesystem is introduced for it to stabilize before switching, so we're looking at summer next year at the earliest.

      • Filligree 3 hours ago

        Apart from that, there are (or were, last I tried it six months ago) some performance bugs in the code.

        Nothing that completely breaks it, but I found at the time that the high variance on read requests for Samsung 970 series NVMe causes the filesystem to also dispatch reads of cached data to the HDDs, even when it’s fully cached.

        Which predictably increases latency a lot.

        Really I should make another stab at fixing that, but the whole driver is C, and I’m not good at writing flawless C. Combine that with the problem actually being hard…

        (“Always read from SSD” isn’t a valid solution here.)

        • koverstreet 2 hours ago

          "Always read from SSD" seems like what you'd want, no?

          I have something on the back burner to start benchmarking devices at format time, that would let us start making better decisions in these situations.

          • Filligree 2 hours ago

            Sorry to say, I have some old SSDs that are only 3-4 times faster than the HDDs. Especially when there’s a lot of HDDs in the pool, ignoring them could be leaving a lot of performance on the floor.

            Though it would be an improvement over what I saw last time I tried, sure.

            • koverstreet 2 hours ago

              Oh, that is tricky. If you want to play around with the algorithm that picks which device to read from, it's in fs/bcachefs/extents.c

                static inline bool ptr_better(struct bch_fs *c,
                                            const struct extent_ptr_decoded p1,                                                                            
                                            const struct extent_ptr_decoded p2)                                                                            
                {             
                      if (likely(!p1.idx && !p2.idx)) {                                                     
                              u64 l1 = dev_latency(c, p1.ptr.dev);
                              u64 l2 = dev_latency(c, p2.ptr.dev);                                          
                              
                              /* Pick at random, biased in favor of the faster device: */
                                                                                                            
                              return bch2_rand_range(l1 + l2) > l1;
                      }       
                                          
                      if (bch2_force_reconstruct_read)
                              return p1.idx > p2.idx;        
                                                             
                      return p1.idx < p2.idx;
                }
              
              Perhaps just squaring the device latencies would balance things out more the way we want.
      • mixmastamyk 2 hours ago

        Is there not some sort of standardized, stringent filesystem test yet? Like Jepsen is for databases? If passed, one can be sure it is reasonably free from bugs? Guess not.

  • 2 hours ago
    [deleted]
    • 2 hours ago
      [deleted]
  • randomfish1 an hour ago

    They really need to just kick him out of tree. Quit playing games with him and put bcachefs out of tree where it belongs.

  • gdgghhhhh 3 hours ago

    I suggest reading the whole mail thread before judging. The CoC decision was the last resort.

    • koverstreet 2 hours ago

      No, they had the option of having a real conversation in private about what we could do to improve the overall situation.

      Instead what I got was "It'd be a real shame if you're no longer around", and other equally dismissive behavior, and considering this was a situation in which a maintainer was pushing for something that would likely have led to security vulnerabilities and was being dismissive of criticism I didn't feel that was something we could let slide.

      Priorities, people.

      • chrisoverzero an hour ago

        > No, they had the option of having a real conversation in private about what we could do to improve the overall situation.

        Abusing others individually in public, but expecting a quiet word on the side about “the overall situation” when it comes to your own behavior. I hope you realize something from this.

        • LtWorf an hour ago

          Do you want to de-escalate or make flame wars?

          • chrisoverzero an hour ago

            I want superiority de-coupled from technical expertise in the minds of the people who have the latter.

            Taking his personal struggles out of kernel development and onto Hacker News was the escalation – pointing out his hypocrisy is only trying to get people who agree with him to realize that they’re wrong.

      • gdgghhhhh 2 hours ago

        No Kent, really.

        • koverstreet an hour ago

          I've gotten into arguments that were even more heated with maintainers who introduced data corruption bugs into code I wrote in the core block layer, without CCing me, which then hit users I support, and then had to track down, and then had them put up ridiculous fights over getting the bugs fixed.

          Context matters, and also, if we're going to have standards for professional conduct they do need to be about more than just language.

          We shouldn't be punching down, but we shouldn't be insulating maintainers from criticism when they're being incompetent, either.

  • fefe23 2 hours ago

    Why didn't they block his access to the mailing list instead?

    It's not his code that people felt hurt by, was it?

    • yarg 2 hours ago

      Yeah, it kinda was - https://lore.kernel.org/all/172816780614.3194359.10913571563...

      He was refusing to contribute his code according to the rules (by which everyone is meant to abide), avoiding regression testing and creating bugs.

      And he certainly didn't help his case with tone deaf comments like this:

      > If you're so convinced you know best, I invite you to start writing your own filesystem. Go for it.

      • koverstreet 2 hours ago

        Linus was completely going off there.

        There are no instances anyone can point to where I've caused regressions in other subsystems, in the course of developing bcachefs. I have had people introduce regressions into my code without following proper channels, though.

        • yarg 2 hours ago

          It's a moot point.

          Changes should be in place in time for regression testing, if you cannot manage that wait for the next cycle.

          Those same rules apply to everyone, and you're being called out for not only repeatedly ignoring them, but also for refusing to listen to that criticism.

        • 2OEH8eoCRo0 2 hours ago

          > Linus was completely going off there.

          It's his kernel.

    • NewJazz 2 hours ago

      Pull requests happen through the mailing list, fwiw.

  • kristjank 2 hours ago

    I am very much on the observer/user side of FLOSS, but the way Codes of Conduct have been applied since their widespread adoption have seen a lot of very productive developers ostracized for their emotionally unregulated methods of communications. This general regard for ceremony and civility above anything else leads to these NKVD-like committees policing code access where the quality of work delivered is considered only collaterally, if at all.

    I am worried that the trend these code of conduct implementations set in the past few years optimize for a future where development environments will be optimized for the prosperity of low-productivity, low-intelligence, high-vulnerability and highly-provocative individuals. This idea that the tone of communication may not be coupled in any way to the frustration of the correspondent is in my opinion extremely misanthropic and allows intense psychological abuse through condescension and/or playing dumb.

    • RandomThoughts3 24 minutes ago

      Just to be clear, Overstreet wrote an email asking someone to “get their head checked” and “get the fuck out of here with this shit”.

      I don’t think it’s the CoC committee overreacting. I would reach to HR advising immediate termination if a member of my team did this to someone in writing. This is straight up illegal in my country. If you write this to someone, you will lose if they sue.

      I’m not sure comparing that to the NKVD is wise.

  • Deeg9rie9usi 3 hours ago

    In this conflict, there can only be losers. :-(

  • noncoml 3 hours ago

    Good code is not written in a democratic way. Seems like Hocko was wearing Kent down with his arguments on what was a very bad idea in the first place.

    I agree the last sentence by Kent was not needed, but I can totally understand his frustration.

    I think it’s a loss for the users at the end on the day.

    • RandomThoughts3 3 hours ago

      Kent is only prevented to merge for a version and mostly because he refused to actually apologise and kind of dig his heels.

      Reading his comment on LWN, he seems really really tired. A mandatory break doesn’t look like the worst thing which would happen to him. I don’t think he is a bad person.

      • an hour ago
        [deleted]
    • okl 3 hours ago

      > Good code is not written in a democratic way

      [citation needed]

      In case anyone's looking for that last sentence (quoting Kent here, not my words):

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

      https://lore.kernel.org/lkml/citv2v6f33hoidq75xd2spaqxf7nl5w...

      • noncoml 2 hours ago

        > [citation needed]

        IMHO

        • deepnet 2 hours ago

          Code communities are very democratic, they produce good code and good coders.

          Democracy is good governance not a dictatorship of a majority.

          A benevolent dictatorship is said to be a most efficient form of government, until it ushers in a non-benevolent dictatorship.

          Democracy is not perfect but relatively sustainable in that there is a peaceful mechanism for change and a means of consensus.

          Small communities don’t need too many rules but in time as they grow it becomes necessary.

    • deepnet 2 hours ago

      Arguably a win for the community of users in the long term as those developers who would like a safe environment, more akin to a professional one, will be encouraged to contribute.

      In the short term Ken will have to wait for the time out to end, so a loss for sure.

      On balance the future is bigger than the present so suffering today for a better future is utilitarian.

      And there are a lot of sensitive folk who have been scared off of communities by what they saw. In this thread a couple have commented about the pre CoC community, that they would have contributed but for the fear of getting barked at.

      As a younger dev I bailed on some IRC communities after getting weirdly threatened.

      Frustration after being very patient with one’s donated time and feeling unreciprocated can lead to frayed nerves and in the short term being rude is brief and often effective - so it is very understandable that this sort of thing will arise.

      Good to discuss how we handle these difficult situations of onboarding newbies without scaring some of the lurking next generation of devs.

      As a headline this penalty seems harsh, but efforts were made to mediate before the committee made the ruling and proved unsuccessful.

      This process is defining the future culture of the kernel code community and it is widely accepted that it should be less toxic and more welcoming and akin to what is expected in a professional context where most devs also function and also have to patiently onboard new developers.

      There may be room for improvement of the process, for instance, like in many settings the burden of patient onboarding may need to fall on a community process with an onboarding ramp that doesn’t fall only on the shoulders of those accepting patches.

      As a community it behooves us to step in earlier and help new devs polish their contributions before submission.

      Especially if we see a fraustration brewing, step in and offer code review to the new developers, who want to contribute, but need some guidance.

      Often just guidance about the right questions to ask and where and how to find the answers oneself before asking.

      The eternal September doesn’t have to be so, offering to help with onboarding a new dev helps everyone.

  • chx 3 hours ago

    [flagged]

  • mathfailure 3 hours ago

    [flagged]

    • jsheard 3 hours ago

      Has that fork of Godot Engine that was established to "focus on the code instead of politics" achieved anything besides merging upstream Godot patches and replacing the branding with their own yet? They don't seem to be doing much coding compared to the "political" project they forked.

    • wat10000 3 hours ago

      You don’t get code without people, and the industry is finally realizing that it’s a net negative to have an asshole who produces great code but scares away more productivity than they bring.

      • tpoacher 2 hours ago

        This is not a new thing. Patrick Lencioni made a very good job in his "Five Dysfunctions of a Team" (2002), where he explained clearly why the "star developer" sometimes needs to be fired to boost net team productivity as a whole.

        What's new here is the benchmark for "what counts as an asshole". If you need to watch every single word in fear of giving anyone the opportunity to cry 'offense' and invoke a CoC panel on you, that's when all trust in the room goes out the window, and when you really start flushing productivity down the drain.

        So, not a net positive in my view.

      • rixed 2 hours ago

        Sure, one of the effect of CoCs is that it can be easier to get rid of an assohole who, even if he is productive, can have a negative impact (not a judgment about the case at hand wrt. Kent Overstreet).

        But there are so many other effects that it is still unclear to me wether, at the end of the day, CoCs attract or detter coders from joining / staying with a project.

        I've often found myself fighting the macho/childish/exclusive culture around tech, yet the reliance of formal CoCs to police our attitude have made me feel uncomfortable. I guess I'm not the only one.

      • Veen 2 hours ago

        It's also a net negative to be burdened by incompetent coders with unjustified confidence and a mistaken sense of their own abilities, however polite they might be.

        • wat10000 2 hours ago

          There are better ways of dealing with that than letting assholes roam free. It’s like tear-gassing your bar to keep out ruffians. It technically works, but it’s rather indiscriminate.

    • PaulCarrack 3 hours ago

      We've seen this with Python's CoC and Tim Peters as well. This timeline sucks.

      • kelnos 3 hours ago

        [flagged]

        • johnisgood 3 hours ago

          One can be considered an asshole while not being an asshole by many people's standard though. Anyone could find an issue with your behavior. Ethics and morality are not so clear cut. Plus, if behavior is an issue, one needs to specify that behavior, labels (such as "asshole") are extremely inadequate.

          • o11c 2 hours ago

            There's also the blatant irony that calling someone an "asshole" would be against a sane interpretation of the CoC.

          • actualwitch 2 hours ago

            This right here is the reason code of conduct exists: so that everyone agrees on what kind of behavior is out of line before starting to work on the project.

            • johnisgood 2 hours ago

              As long as the behavior is adequately specified or described just like one would do in terms of behavior modification, then yeah, that works!

    • ngetchell 3 hours ago

      Seems like Kent was a jerk, was given a chance to apologize, didn't, then got kicked out.

      Seems like a functioning community to me.

      Being a good programmer doesn't absolve you of the need to be a good person to others.

      • NewJazz 3 hours ago

        He did apologize, but the apology was deemed insufficient by the CoC. AIUI they wanted a public apology?

        • zimpenfish 3 hours ago

          > AIUI they wanted a public apology?

          Seems fair if the thing that needs an apology happened in public.

  • vbezhenar 2 hours ago

    Linux is officially dead. This nonsense should not happen. Now users will suffer from bugs, because of some CoC nonsense.

    • DaSHacka 2 hours ago

      The writing was already on the wall as soon as the CoC was added. It's nothing but a vehicle for control and abuse.