quota deadlock on 6.1-RC1

Mark Linimon linimon at lonesome.com
Fri May 5 19:21:53 UTC 2006

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


More information about the freebsd-stable mailing list