Re: Two weeks to feature freeze - Mailing list pgsql-hackers

From Jason Earl
Subject Re: Two weeks to feature freeze
Date
Msg-id 87of0swc1k.fsf@npa01zz001.simplot.com
Whole thread Raw
In response to Re: Two weeks to feature freeze  ("Dann Corbit" <DCorbit@connx.com>)
Responses Re: Two weeks to feature freeze
Re: Two weeks to feature freeze
List pgsql-hackers
"Dann Corbit" <DCorbit@connx.com> writes:

>> -----Original Message-----
>> From: Jason Earl [mailto:jason.earl@simplot.com] 
>> Sent: Friday, June 20, 2003 3:32 PM
>> To: Dann Corbit
>> Cc: Jason Earl; The Hermit Hacker; PostgreSQL-development
>> Subject: Re: [HACKERS] Two weeks to feature freeze
>> 
>> 
>> "Dann Corbit" <DCorbit@connx.com> writes:
>> >> 
>> >> Why couldn't you just release the win32 version of 7.4 when
>> >> it was finished.  If it takes an extra month then that just 
>> >> gives you guys the chance to circulate *two* press releases.  
>> >> The Native Win32 port is likely to make a big enough splash 
>> >> all by itself.
>> >
>> > A formal release needs a big testing effort.  Two separate releases 
>> > will double the work of validation.
>> 
>> There are several problems with that statement.  The first is 
>> that PostgreSQL's "testing effort" happens right here on this 
>> mailing list. 
>
> That's not exactly reassuring.  There is no regression test that
> gets formal acceptance?!

Yes, there are regression tests, and new tests get invented all of the
time whenever the real world finds new bugs.  Regression tests are
excellent for making sure that you don't make the same mistake twice,
but they aren't a substitute for handing the code over to actual end
users.

>> The various PostgreSQL hackers code stuff up, 
>> and we try and break it. There's very little /effort/ 
>> involved.  People that want the new features go out on a limb 
>> and start using them.  If they don't work, then they bring it 
>> up on the list.  If they do work then very little gets said.
>> 
>> As it now stands Tom Lane is on the record as stating that 
>> the new Win32 version isn't going to be ready for production 
>> anyhow.  If anything the Win32 version *should* get released 
>> separately simply because we don't want people mistaking the 
>> Win32 version as being up to the PostgreSQL teams high 
>> standards.  Those people that want the Win32 version to 
>> become production ready are going to have to risk their 
>> precious data.  Otherwise, the Win32 version will likely 
>> remain a second class citizen forever.
>> 
>> The fact of the matter is that the Win32 specific bits are 
>> the parts that are likely to break in the new port.  If 
>> anything the Windows version will *benefit* from an earlier 
>> *nix release because the *nix users will chase down the bugs 
>> in the new PostgreSQL features.  Once the *nix version is up 
>> to 7.4.2 (or so) then a Windows release of 7.4.2 should allow 
>> the PostgreSQL hackers to simply chase down Windows specific problems.
>
> Then using the same logic, the new Windows version should wait
> indefinitely, since the *nix version will always be shaking out
> bugs.

That's not true at all.  Despite the excellent work by the PostgreSQL
team, and despite the beta testing that will be done by volunteers, if
history repeats itself, there will be problems with version 7.4.0,
even on platforms that have been well supported by PostgreSQL forever.
I am not saying that we should hold off indefinitely on the Win32
port, I am simply saying that it probably wouldn't hurt to shake out
the normal .0 release bugs before throwing the unique Win32 bugs into
the mix.

My guess is that reported Win32 bugs are going blamed on the Win32
specific bits at first no matter what happens.  Unless the bug can be
demonstrated on a *nix version it will be assumed that the problem is
a shortcoming of the Win32 specific code.  That's just common sense.

>> Adding a new platform--especially a platform as diverse from 
>> the rest of PostgreSQL's supported platforms as Windows--is 
>> what adds the work. Testing the new platform is relatively 
>> easy.  All you need to do is to start using the Win32 version 
>> with real live data.
>
> That is not testing.  Using the world as your beta team seems to be
> a business model used by a few software giants that is largely
> frowned upon.  I would think that there is an opportunity to do
> things differently. [Read 'properly'].

Hmm... I must have missed the huge corporation paying for in house
testing of PostgreSQL.  In the Free Software world the "beta team" is
all of those people that need the new features so badly that they are
willing to risk their own data and hardware testing it.  You might not
like the way that this sounds, but in practice it works astoundingly
well.  Chances are you can't name 25 pieces of commercial software
that run on the wide array of hardware platforms and OSes as
PostgreSQL, and PostgreSQL has a earned a well deserved reputation for
being a solid piece of software.  Clearly the PostgreSQL team is doing
*something* right.

> We (at CONNX Solutions Inc.) have a formal release procedure that
> includes many tens of thousands of automated tests using dozens of
> different platforms.  There are literally dozens of machines (I
> would guess 70 or so total) running around the clock for 7 days
> before we even know if we have a release candidate.  The QA team is
> distinct from the development team, and if they say "FLOP!" the
> release goes nowhere.  No formal release until QA passes it.

And yet when you release the software your customers invariably find
bugs, don't they?

Don't get me wrong.  I am all for testing, regression tests, and such,
but the fact of the matter is that there simply is no way that a
centralized authority could afford to really test PostgreSQL on even a
fraction of the supported platforms and configurations.  The way it
stands now the PostgreSQL teams gets the best testbed you could hope
for (the world) for the price of hosting a few web and FTP servers
(thanks Marc).

PostgreSQL betas almost certainly gest tested on an order of magnitude
more systems than the 70 that you boast about.  PostgreSQL gets tested
on everything from Sony Playstations to AMD Opterons to IBM
mainframes.  Heck, there are probably more than 70 machines running
CVS versions of PostgreSQL right this minute (Marc, any download
numbers to back this up?).  More importantly, PostgreSQL gets tested
on a wide variety of real world tasks, and not some lab application or
some test scripts.  Like I have mentioned several times before.
PostgreSQL gets tested by folks that put their actual data into the
beta versions and try it out.  Even with this sort of testing,
however, bugs still make it into the release version.  Even with a
large group of beta testers we simply can't test all of the possible
ways that the software might get used on every available platform.

> If there is no procedure for PostgreSQL of this nature, then there
> really needs to be.  I am sure that MySQL must have something in place
> like that.  Their "Crash-Me" test suite shows (at least) that they have
> put a large effort into testing.

Yow!  Have you read the crash-me script.  It's possible that they have
improved dramatically in the year or so since I last took a look at
them, but it used to be that MySQL's crash-me scripts were the worst
amalgamation of marketeering and poor relational theory ever conceived
by the human mind.  Basically the crash-me scripts were nothing more
than an attempt to put MySQL's competition in the worst light
possible.  Basically any time a competitor differed from MySQL an
error would be generated (despite the fact that it was very likely
that it was MySQL that was wrong).

MySQL even tried to pawn this single-process monstrosity off as a
"benchmark."  What a laugh.  It was a perfectly valid benchmark if
your database was designed to be used by one user at a time and one of
your biggest criteria was the time it took to create a valid
connection from a perl script.

PostgreSQL's regression tests (IMHO) are much better than MySQL's
crash-me scripts.

Jason


pgsql-hackers by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: Two weeks to feature freeze
Next
From: Bruno Wolff III
Date:
Subject: Re: ss_family in hba.c