From owner-freebsd-stable@FreeBSD.ORG Fri May 5 19:21:53 2006 Return-Path: X-Original-To: stable@FreeBSD.org Delivered-To: freebsd-stable@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 07B9F16A403; Fri, 5 May 2006 19:21:53 +0000 (UTC) (envelope-from linimon@lonesome.com) Received: from mail.soaustin.net (mail.soaustin.net [207.200.4.66]) by mx1.FreeBSD.org (Postfix) with ESMTP id 99EC343D45; Fri, 5 May 2006 19:21:52 +0000 (GMT) (envelope-from linimon@lonesome.com) Received: by mail.soaustin.net (Postfix, from userid 502) id 31448863; Fri, 5 May 2006 14:21:52 -0500 (CDT) Date: Fri, 5 May 2006 14:21:52 -0500 To: Mike Jakubik Message-ID: <20060505192152.GA17616@soaustin.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <445B991F.3050600@rogers.com> User-Agent: Mutt/1.5.9i From: linimon@lonesome.com (Mark Linimon) Cc: rwatson@FreeBSD.org, kris@FreeBSD.org, pjd@FreeBSD.org, stable@FreeBSD.org, linimon@FreeBSD.org Subject: Re: quota deadlock on 6.1-RC1 X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 May 2006 19:21:53 -0000 Make Jakubik wrote: > FreeBSD users now demand stability and performance, as opposed to an > influx of new bells and whistles just before the release [...] I fully > understand that this is a volunteer project [...] I'm sorry, but the former statement proves the latter false. Let's try to do our Semi-Annual Refresher Course On Open Source Development: The developers (at least 99% of them) work for free. In their own spare time. Their motivations vary but I don't believe any of those include being in a position to feel they need to respond to demands. That's not a positive motivator. If they wanted to be in that position, they could just stay at their $realjobs for those extra hours. Part of their shared goals, however, is to turn out the best system that they possibly can, in the hopes that people will find it useful and want to contribute back to it. However, there are no guarantees involved, implicit or explicit. (If you want to compare and contrast to how much "guarantee" you get from closed-source development, please pull out a copy of your EULA. They barely even "guarantee" that there are bits on the CD.) There's a long process where the developers try to agree on what features need to be included and what bugs need to be fixed. From the standpoint of the people who attempt to coordinate this process, in technical jargon the process is know as "herding cats". I would be able to serve as an expert witness in court about this. (Side note: some of the cats hiss, bite, and scratch; very few, if any, have _any_ interest in being herder.) There are always tradeoffs between stability and features. During the 5.X cycle we managed in some degree to de-optimize both: we had features that were only available in an "experimental" branch that some people considered critical (wireless, anyone?) while that "experimental" branch was unsuitable for production use. The idea was that we would hold on to declaring 5.X "STABLE" until all the major bugs were fixed. And as a consequence, we didn't release for -- what, 2 years? So we've thrown out the idea of "wait until every possible bug is fixed." It leads to rare releases, and larger code chaos, larger instability, and allows FreeBSD's detractors to sniff "well, they're never going to release anything again." (Notice how the "BSD is dying" crowd on Slashdot has been a lot quieter since we released 6.0?) So now what we're doing is trying to come up with more regular (not on absolute deadline) releases, with smaller feature sets, to enable smaller sets of new code to be debugged simultaneously. The features that some users see as critical, others don't. (I don't have quotas enabled; I have disabled soft-updates on the theory that as a single user I can trade longer startup time for possibly greater error recovery). > I wish i was a good Unix C programmer myself, so i could contribute in a > more direct way And there's the rub. The people who _are_ good Unix/C programmers are the ones doing the work, and as such, feel that they have the final say about what goes and what doesn't. While I hope that each of them will listen to what individual users are saying, and take good suggestions to heart, the fact remains that they are under no _obligation_ to do so. Finally, as has been pointed out already, the interactions between quotas, soft-updates, and the rest of the system have problems that are probably going to be fairly difficult to isolate and test. Thus, they could take days, weeks, or months. If we were to hold the release until these were fixed, basically our last 2 months of QA would be out the window. This is not a way to keep developers happy; at some point they will tire of the inability to work on the things that they find interesting, and wander off to find something else more fun to do. Summary: it's too bad that there are regressions, but sometime they're a fact of life. If these regressions are in areas that are critical for a certain user, that user should just skip 6.1 and wait for 6.2. The stability gains that 6.1 have over 6.0 in so many other areas means that it's time for 6.1 to go out the door, because for the majority of users it's going to be a big win. As always, we welcome test cases on e.g. non-critical systems, earlier in the release process (or between releases), where there's enough time to thoroughly test that any proposed fix doesn't cause more problems than it cures. Within a few days of release, that simply isn't the case right now. mcl