Re: 3.2.6 test period - how long do we wait?

2006-02-01 Thread Gregory (Grisha) Trubetskoy


I'd give a conditional +1 - I think it'd be good to sort out why previous 
releases passed on FreeBSD and this one does not. Perhaps people who ran 
FreeBSD tests could try an earlier mod_python version test to see if it 
too fails?


Grisha

On Tue, 31 Jan 2006, Jim Gallacher wrote:


Good enough for me. Shall we vote? If so I am:

+1

Jim

Graham Dumpleton wrote:

I am having problems with posts to python-dev mailing list from home
occassionally disappearing in a black hole. Thus my post on this topic
before Jim brought it up in the first place vanished. What I has said was:



this code runs smoothly, i.e. no segfaults, all tests passed:
FreeBSD 4.9:

 Apache/2.0.50 (prefork) Python/2.3.4
 Apache/2.0.55 (prefork) Python/2.4.2


Okay, this is good.

If there is a general consensus that this is a reasonable solution,
the question is what should be done with 3.2.6. Should it be released
with this   problem in it and fix it later in 3.3?

Personally, I really don't think that connection handlers in
mod_python get used by anyone and so don't see a pressing need to go
fixing it right   now. Thus I would say go with 3.2.6 as final with how
it is.

Is there anything else of concern that is holding us up now on an
official release of 3.2.6?



In other words, I agree with Nicolas, we should just release it. If 
someone

actually came up and said they were using connection handlers for
something significant, then I might change this view, but I doubt anyone
is using them.

I would also point out that JIRA lists lots of other issues, some of them
minor and trivial to fix but which would be more worthwhile than fixing
than this connection handler issue. We have already said we will defer
these in the interest of getting a final version of 3.2 out sooner rather
than later.

Thus, as much as I would prefer to see as much as possible fixed, I
think we just have defer further changes to next version.

Graham

Jim Gallacher wrote ..


Nicolas Lehuen wrote:


OK, so shall we schedule the 3.2.x release for 2007, then ?

As for the Apache 2.2 version, what if we roll in your suggested
patch, Jim, then discover a bunch of problem related to it during the
beta tests ? Will we wait until they are all fixed to release the 3.2
version ? Apache 2.2 is quite new so we'll likely to have to squish
bugs, due for example to new interaction between Apache filters and
mod_python. That's a wild guess but filters have been modified in
Apache 2.2 so I'm sure something evil lurks there.


I'm totally happy to defer changes for Apache 2.2 as I don't personally
plan on migrating any time soon. The only reason I brought it up is that
some of the code which seems to be causing issues for Apache 2.2 happens
to reside in connobject.c, which is an area of interest for the 
_conn_read issue. Even if we were to roll fixes for apache 2.2 into mp

3.2, I'm not suggesting we advertise apache 2.2 compatibility just yet.




Or we could simply forget about making the release one day and
tell every user to use the latest snapshot from subversion. Sorry to
be like that, but we have users out there that would be perfectly
happy with the current state of the 3.2.6 version, and a lot of our
answers on the mailing list are "yup, we know this bug, it's already
been fixed one year ago, but don't worry, you'll get the bugfix soon
enough".


Point taken, and it is a very good point indeed.



Once again, it seems that no regression have been introduced in 3.2.6
vs 3.1.4, so we should release it ASAP and try to keep a steady
release rythm afterwards. When we'll get momentum we'll solve a bunch
of problem pretty fast, but it's been a year now that we are paralysed
by perfectionism. What could be worse than leaving our users out there
with the current 3.1.4 version ?


I *still* wonder why the whole ConnectionHandler issue was not seen on
FreeBSD with mp 3.1.4 though. I'll need to check the svn logs again but
I'm pretty sure this is not a new unit test.

That being said I'm not personally concerned about this issue since it
doesn't affect every platform (or more selfishly I should say it doesn't
affect the OS I'm working on) and I suspect that not many people are 
directly interacting with the connection object.


What's that old line about open source software... Release early, 
release often?


Jim



2006/1/31, Jim Gallacher <[EMAIL PROTECTED]>:



I assume we will be doing a 3.2.7 release if Graham's fix for the
ConnectionHandler / MODPYTHON-102 problem works?

If that is the case I wonder if we should roll in the changes to 
support

apache 2.2. I scanned mod_python for deprecated or removed apr calls


and


can find only one (apr_sockaddr_port_get), plus the missing
APR_STATUS_IS_SUCCESS macro.

The original macro is:

#define APR_STATUS_IS_SUCCESS(s)   ((s) == APR_SUCCESS \
   || (s) == APR_OS_START_SYSERR + NO_ERROR)


The discussion on httpd-dev suggested that this macro should be
substituted with a simple test such as "if (rc != APR_

Re: 3.2.6 test period - how long do we wait?

2006-02-01 Thread Deron Meranda
+1

Release what's fixed already, and then keep going afterwards.

But can somebody address MODPYTHON-53 please. (updating modpython.org website).
--
Deron Meranda


Re: 3.2.6 test period - how long do we wait?

2006-01-31 Thread Jim Gallacher

Good enough for me. Shall we vote? If so I am:

+1

Jim

Graham Dumpleton wrote:

I am having problems with posts to python-dev mailing list from home
occassionally disappearing in a black hole. Thus my post on this topic
before Jim brought it up in the first place vanished. What I has said was:



this code runs smoothly, i.e. no segfaults, all tests passed:
FreeBSD 4.9:

 Apache/2.0.50 (prefork) Python/2.3.4
 Apache/2.0.55 (prefork) Python/2.4.2


Okay, this is good.

If there is a general consensus that this is a reasonable solution,
the question is what should be done with 3.2.6. Should it be released
with this   problem in it and fix it later in 3.3?

Personally, I really don't think that connection handlers in
mod_python get used by anyone and so don't see a pressing need to go
fixing it right   now. Thus I would say go with 3.2.6 as final with how
it is.

Is there anything else of concern that is holding us up now on an
official release of 3.2.6?



In other words, I agree with Nicolas, we should just release it. If someone
actually came up and said they were using connection handlers for
something significant, then I might change this view, but I doubt anyone
is using them.

I would also point out that JIRA lists lots of other issues, some of them
minor and trivial to fix but which would be more worthwhile than fixing
than this connection handler issue. We have already said we will defer
these in the interest of getting a final version of 3.2 out sooner rather
than later.

Thus, as much as I would prefer to see as much as possible fixed, I
think we just have defer further changes to next version.

Graham

Jim Gallacher wrote ..


Nicolas Lehuen wrote:


OK, so shall we schedule the 3.2.x release for 2007, then ?

As for the Apache 2.2 version, what if we roll in your suggested
patch, Jim, then discover a bunch of problem related to it during the
beta tests ? Will we wait until they are all fixed to release the 3.2
version ? Apache 2.2 is quite new so we'll likely to have to squish
bugs, due for example to new interaction between Apache filters and
mod_python. That's a wild guess but filters have been modified in
Apache 2.2 so I'm sure something evil lurks there.


I'm totally happy to defer changes for Apache 2.2 as I don't personally
plan on migrating any time soon. The only reason I brought it up is that
some of the code which seems to be causing issues for Apache 2.2 happens
to reside in connobject.c, which is an area of interest for the 
_conn_read issue. Even if we were to roll fixes for apache 2.2 into mp

3.2, I'm not suggesting we advertise apache 2.2 compatibility just yet.




Or we could simply forget about making the release one day and
tell every user to use the latest snapshot from subversion. Sorry to
be like that, but we have users out there that would be perfectly
happy with the current state of the 3.2.6 version, and a lot of our
answers on the mailing list are "yup, we know this bug, it's already
been fixed one year ago, but don't worry, you'll get the bugfix soon
enough".


Point taken, and it is a very good point indeed.



Once again, it seems that no regression have been introduced in 3.2.6
vs 3.1.4, so we should release it ASAP and try to keep a steady
release rythm afterwards. When we'll get momentum we'll solve a bunch
of problem pretty fast, but it's been a year now that we are paralysed
by perfectionism. What could be worse than leaving our users out there
with the current 3.1.4 version ?


I *still* wonder why the whole ConnectionHandler issue was not seen on
FreeBSD with mp 3.1.4 though. I'll need to check the svn logs again but
I'm pretty sure this is not a new unit test.

That being said I'm not personally concerned about this issue since it
doesn't affect every platform (or more selfishly I should say it doesn't
affect the OS I'm working on) and I suspect that not many people are 
directly interacting with the connection object.


What's that old line about open source software... Release early, 
release often?


Jim



2006/1/31, Jim Gallacher <[EMAIL PROTECTED]>:



I assume we will be doing a 3.2.7 release if Graham's fix for the
ConnectionHandler / MODPYTHON-102 problem works?

If that is the case I wonder if we should roll in the changes to support
apache 2.2. I scanned mod_python for deprecated or removed apr calls


and


can find only one (apr_sockaddr_port_get), plus the missing
APR_STATUS_IS_SUCCESS macro.

The original macro is:

#define APR_STATUS_IS_SUCCESS(s)   ((s) == APR_SUCCESS \
   || (s) == APR_OS_START_SYSERR + NO_ERROR)


The discussion on httpd-dev suggested that this macro should be
substituted with a simple test such as "if (rc != APR_SUCCESS)", and


the


'||' condition was not likely used. So that we are making the fewest
possible changes to our current 3.2 codebase, I'd suggest reimplenting
APR_STATUS_IS_SUCCESS in our code, and then removing it 3.3. This will
give us lot's of time as we work on 3.3 to discover if the

Re: 3.2.6 test period - how long do we wait?

2006-01-31 Thread Graham Dumpleton
I am having problems with posts to python-dev mailing list from home
occassionally disappearing in a black hole. Thus my post on this topic
before Jim brought it up in the first place vanished. What I has said was:

>> this code runs smoothly, i.e. no segfaults, all tests passed:
>> FreeBSD 4.9:
>>
>>   Apache/2.0.50 (prefork) Python/2.3.4
>>   Apache/2.0.55 (prefork) Python/2.4.2
>
> Okay, this is good.
>
> If there is a general consensus that this is a reasonable solution,
> the question is what should be done with 3.2.6. Should it be released
> with this   problem in it and fix it later in 3.3?
>
> Personally, I really don't think that connection handlers in
> mod_python get used by anyone and so don't see a pressing need to go
> fixing it right   now. Thus I would say go with 3.2.6 as final with how
> it is.
>
> Is there anything else of concern that is holding us up now on an
> official release of 3.2.6?

In other words, I agree with Nicolas, we should just release it. If someone
actually came up and said they were using connection handlers for
something significant, then I might change this view, but I doubt anyone
is using them.

I would also point out that JIRA lists lots of other issues, some of them
minor and trivial to fix but which would be more worthwhile than fixing
than this connection handler issue. We have already said we will defer
these in the interest of getting a final version of 3.2 out sooner rather
than later.

Thus, as much as I would prefer to see as much as possible fixed, I
think we just have defer further changes to next version.

Graham

Jim Gallacher wrote ..
> Nicolas Lehuen wrote:
> > OK, so shall we schedule the 3.2.x release for 2007, then ?
> > 
> > As for the Apache 2.2 version, what if we roll in your suggested
> > patch, Jim, then discover a bunch of problem related to it during the
> > beta tests ? Will we wait until they are all fixed to release the 3.2
> > version ? Apache 2.2 is quite new so we'll likely to have to squish
> > bugs, due for example to new interaction between Apache filters and
> > mod_python. That's a wild guess but filters have been modified in
> > Apache 2.2 so I'm sure something evil lurks there.
> 
> I'm totally happy to defer changes for Apache 2.2 as I don't personally
> plan on migrating any time soon. The only reason I brought it up is that
> some of the code which seems to be causing issues for Apache 2.2 happens
> to reside in connobject.c, which is an area of interest for the 
> _conn_read issue. Even if we were to roll fixes for apache 2.2 into mp
> 3.2, I'm not suggesting we advertise apache 2.2 compatibility just yet.
> 
> 
> > Or we could simply forget about making the release one day and
> > tell every user to use the latest snapshot from subversion. Sorry to
> > be like that, but we have users out there that would be perfectly
> > happy with the current state of the 3.2.6 version, and a lot of our
> > answers on the mailing list are "yup, we know this bug, it's already
> > been fixed one year ago, but don't worry, you'll get the bugfix soon
> > enough".
> 
> Point taken, and it is a very good point indeed.
> 
> > Once again, it seems that no regression have been introduced in 3.2.6
> > vs 3.1.4, so we should release it ASAP and try to keep a steady
> > release rythm afterwards. When we'll get momentum we'll solve a bunch
> > of problem pretty fast, but it's been a year now that we are paralysed
> > by perfectionism. What could be worse than leaving our users out there
> > with the current 3.1.4 version ?
> 
> I *still* wonder why the whole ConnectionHandler issue was not seen on
> FreeBSD with mp 3.1.4 though. I'll need to check the svn logs again but
> I'm pretty sure this is not a new unit test.
> 
> That being said I'm not personally concerned about this issue since it
> doesn't affect every platform (or more selfishly I should say it doesn't
> affect the OS I'm working on) and I suspect that not many people are 
> directly interacting with the connection object.
> 
> What's that old line about open source software... Release early, 
> release often?
> 
> Jim
> 
> > 2006/1/31, Jim Gallacher <[EMAIL PROTECTED]>:
> > 
> >>I assume we will be doing a 3.2.7 release if Graham's fix for the
> >>ConnectionHandler / MODPYTHON-102 problem works?
> >>
> >>If that is the case I wonder if we should roll in the changes to support
> >>apache 2.2. I scanned mod_python for deprecated or removed apr calls
> and
> >>can find only one (apr_sockaddr_port_get), plus the missing
> >>APR_STATUS_IS_SUCCESS macro.
> >>
> >>The original macro is:
> >>
> >>#define APR_STATUS_IS_SUCCESS(s)   ((s) == APR_SUCCESS \
> >> || (s) == APR_OS_START_SYSERR + NO_ERROR)
> >>
> >>
> >>The discussion on httpd-dev suggested that this macro should be
> >>substituted with a simple test such as "if (rc != APR_SUCCESS)", and
> the
> >>'||' condition was not likely used. So that we are making the fewest
> >>possible changes to our current 3.2 codebase

Re: 3.2.6 test period - how long do we wait?

2006-01-31 Thread Jim Gallacher

Deron Meranda wrote:

On 1/31/06, Jim Gallacher <[EMAIL PROTECTED]> wrote:


apache 2.2. I scanned mod_python for deprecated or removed apr calls and
can find only one (apr_sockaddr_port_get), plus the missing
APR_STATUS_IS_SUCCESS macro.



The apr_sockaddr_port_get() call was introduced by me to support
IPv6 in modpython with MODPYTHON-64.

Looking at the APR 1.0 CHANGES file (accompaning httpd 2.2):

  *) The following deprecated interfaces have been removed:
 
 apr_sockaddr_port_get-> (access directly)
 

I'm trying to review the APR source to see exactly what
that means and the conditions under which it's safe.
We don't want to accidentally pull the wrong field and
have endianness problems.

BTW, I want to get this one fixed before release rather than
reverting to the pre-MODPYTHON-64 code...or we'll break
under IPv6 again.


I say we leave it as is (ie continue use apr_sockaddr_port_get) and 
worry about it when we do some sort of comprehensive review for apache 
2.2 compatibility.


Jim


Re: 3.2.6 test period - how long do we wait?

2006-01-31 Thread Jim Gallacher

Nicolas Lehuen wrote:

OK, so shall we schedule the 3.2.x release for 2007, then ?

As for the Apache 2.2 version, what if we roll in your suggested
patch, Jim, then discover a bunch of problem related to it during the
beta tests ? Will we wait until they are all fixed to release the 3.2
version ? Apache 2.2 is quite new so we'll likely to have to squish
bugs, due for example to new interaction between Apache filters and
mod_python. That's a wild guess but filters have been modified in
Apache 2.2 so I'm sure something evil lurks there.


I'm totally happy to defer changes for Apache 2.2 as I don't personally 
plan on migrating any time soon. The only reason I brought it up is that 
some of the code which seems to be causing issues for Apache 2.2 happens 
to reside in connobject.c, which is an area of interest for the 
_conn_read issue. Even if we were to roll fixes for apache 2.2 into mp 
3.2, I'm not suggesting we advertise apache 2.2 compatibility just yet.




Or we could simply forget about making the release one day and
tell every user to use the latest snapshot from subversion. Sorry to
be like that, but we have users out there that would be perfectly
happy with the current state of the 3.2.6 version, and a lot of our
answers on the mailing list are "yup, we know this bug, it's already
been fixed one year ago, but don't worry, you'll get the bugfix soon
enough".


Point taken, and it is a very good point indeed.


Once again, it seems that no regression have been introduced in 3.2.6
vs 3.1.4, so we should release it ASAP and try to keep a steady
release rythm afterwards. When we'll get momentum we'll solve a bunch
of problem pretty fast, but it's been a year now that we are paralysed
by perfectionism. What could be worse than leaving our users out there
with the current 3.1.4 version ?


I *still* wonder why the whole ConnectionHandler issue was not seen on 
FreeBSD with mp 3.1.4 though. I'll need to check the svn logs again but 
I'm pretty sure this is not a new unit test.


That being said I'm not personally concerned about this issue since it 
doesn't affect every platform (or more selfishly I should say it doesn't 
affect the OS I'm working on) and I suspect that not many people are 
directly interacting with the connection object.


What's that old line about open source software... Release early, 
release often?


Jim


2006/1/31, Jim Gallacher <[EMAIL PROTECTED]>:


I assume we will be doing a 3.2.7 release if Graham's fix for the
ConnectionHandler / MODPYTHON-102 problem works?

If that is the case I wonder if we should roll in the changes to support
apache 2.2. I scanned mod_python for deprecated or removed apr calls and
can find only one (apr_sockaddr_port_get), plus the missing
APR_STATUS_IS_SUCCESS macro.

The original macro is:

#define APR_STATUS_IS_SUCCESS(s)   ((s) == APR_SUCCESS \
|| (s) == APR_OS_START_SYSERR + NO_ERROR)


The discussion on httpd-dev suggested that this macro should be
substituted with a simple test such as "if (rc != APR_SUCCESS)", and the
'||' condition was not likely used. So that we are making the fewest
possible changes to our current 3.2 codebase, I'd suggest reimplenting
APR_STATUS_IS_SUCCESS in our code, and then removing it 3.3. This will
give us lot's of time as we work on 3.3 to discover if there are any
problems droping the APR_OS_START_SYSERR part of the test.

Jim








Re: 3.2.6 test period - how long do we wait?

2006-01-31 Thread Gregory (Grisha) Trubetskoy


On Tue, 31 Jan 2006, Jim Gallacher wrote:

I assume we will be doing a 3.2.7 release if Graham's fix for the 
ConnectionHandler / MODPYTHON-102 problem works?


Unfortunately, the answer is yes... As much as we'd like to release it 
sooner, I think it's important to not loose the perspective that quality 
over speed is what we favor. In other words - if it takes a little longer 
to get the quality we want, then that's just fine. :-)


Grisha


Re: 3.2.6 test period - how long do we wait?

2006-01-31 Thread Deron Meranda
On 1/31/06, Deron Meranda <[EMAIL PROTECTED]> wrote:
> On 1/31/06, Jim Gallacher <[EMAIL PROTECTED]> wrote:
> > apache 2.2. I scanned mod_python for deprecated or removed apr calls and
> > can find only one (apr_sockaddr_port_get), plus the missing
> > APR_STATUS_IS_SUCCESS macro.
>
> The apr_sockaddr_port_get() call was introduced by me to support
> IPv6 in modpython with MODPYTHON-64.

Okay, the correct fix for apr_sockaddr_port_get() which works under
both Apache 2.0 and 2.2 is to replace the single call in connobject.c,
   apr_sockaddr_port_get(&port, addr);
with
   port = addr->port;

I've added this information to MODPYTHON-78 notes (httpd 2.2 port).

Of course that fix only *needs* to be made when 2.2 is completely
addressed, but it can be safely rolled in before then too.
--
Deron Meranda


Re: 3.2.6 test period - how long do we wait?

2006-01-31 Thread Deron Meranda
On 1/31/06, Jim Gallacher <[EMAIL PROTECTED]> wrote:
> apache 2.2. I scanned mod_python for deprecated or removed apr calls and
> can find only one (apr_sockaddr_port_get), plus the missing
> APR_STATUS_IS_SUCCESS macro.

The apr_sockaddr_port_get() call was introduced by me to support
IPv6 in modpython with MODPYTHON-64.

Looking at the APR 1.0 CHANGES file (accompaning httpd 2.2):

  *) The following deprecated interfaces have been removed:
 
 apr_sockaddr_port_get-> (access directly)
 

I'm trying to review the APR source to see exactly what
that means and the conditions under which it's safe.
We don't want to accidentally pull the wrong field and
have endianness problems.

BTW, I want to get this one fixed before release rather than
reverting to the pre-MODPYTHON-64 code...or we'll break
under IPv6 again.
--
Deron Meranda


Re: 3.2.6 test period - how long do we wait?

2006-01-31 Thread Rob Sanderson
On Tue, 2006-01-31 at 17:59 +0100, Nicolas Lehuen wrote:

> Once again, it seems that no regression have been introduced in 3.2.6
> vs 3.1.4, so we should release it ASAP and try to keep a steady
> release rythm afterwards. When we'll get momentum we'll solve a bunch
> of problem pretty fast, but it's been a year now that we are paralysed
> by perfectionism. What could be worse than leaving our users out there
> with the current 3.1.4 version ?

+1

:)

Rob

-- 
Dr Robert Sanderson
Dept of Computer Science, University of Liverpool
Home: http://www.csc.liv.ac.uk/~azaroth/
Cheshire: http://www.cheshire3.org/



Re: 3.2.6 test period - how long do we wait?

2006-01-31 Thread Nicolas Lehuen
OK, so shall we schedule the 3.2.x release for 2007, then ?

As for the Apache 2.2 version, what if we roll in your suggested
patch, Jim, then discover a bunch of problem related to it during the
beta tests ? Will we wait until they are all fixed to release the 3.2
version ? Apache 2.2 is quite new so we'll likely to have to squish
bugs, due for example to new interaction between Apache filters and
mod_python. That's a wild guess but filters have been modified in
Apache 2.2 so I'm sure something evil lurks there.

Or we could simply forget about making the release one day and
tell every user to use the latest snapshot from subversion. Sorry to
be like that, but we have users out there that would be perfectly
happy with the current state of the 3.2.6 version, and a lot of our
answers on the mailing list are "yup, we know this bug, it's already
been fixed one year ago, but don't worry, you'll get the bugfix soon
enough".

Once again, it seems that no regression have been introduced in 3.2.6
vs 3.1.4, so we should release it ASAP and try to keep a steady
release rythm afterwards. When we'll get momentum we'll solve a bunch
of problem pretty fast, but it's been a year now that we are paralysed
by perfectionism. What could be worse than leaving our users out there
with the current 3.1.4 version ?

Regards,
Nicolas

2006/1/31, Jim Gallacher <[EMAIL PROTECTED]>:
> I assume we will be doing a 3.2.7 release if Graham's fix for the
> ConnectionHandler / MODPYTHON-102 problem works?
>
> If that is the case I wonder if we should roll in the changes to support
> apache 2.2. I scanned mod_python for deprecated or removed apr calls and
> can find only one (apr_sockaddr_port_get), plus the missing
> APR_STATUS_IS_SUCCESS macro.
>
> The original macro is:
>
> #define APR_STATUS_IS_SUCCESS(s)   ((s) == APR_SUCCESS \
>  || (s) == APR_OS_START_SYSERR + NO_ERROR)
>
>
> The discussion on httpd-dev suggested that this macro should be
> substituted with a simple test such as "if (rc != APR_SUCCESS)", and the
> '||' condition was not likely used. So that we are making the fewest
> possible changes to our current 3.2 codebase, I'd suggest reimplenting
> APR_STATUS_IS_SUCCESS in our code, and then removing it 3.3. This will
> give us lot's of time as we work on 3.3 to discover if there are any
> problems droping the APR_OS_START_SYSERR part of the test.
>
> Jim
>


Re: 3.2.6 test period - how long do we wait?

2006-01-31 Thread Jim Gallacher
I assume we will be doing a 3.2.7 release if Graham's fix for the 
ConnectionHandler / MODPYTHON-102 problem works?


If that is the case I wonder if we should roll in the changes to support 
apache 2.2. I scanned mod_python for deprecated or removed apr calls and 
can find only one (apr_sockaddr_port_get), plus the missing 
APR_STATUS_IS_SUCCESS macro.


The original macro is:

#define APR_STATUS_IS_SUCCESS(s)   ((s) == APR_SUCCESS \
|| (s) == APR_OS_START_SYSERR + NO_ERROR)


The discussion on httpd-dev suggested that this macro should be 
substituted with a simple test such as "if (rc != APR_SUCCESS)", and the 
'||' condition was not likely used. So that we are making the fewest 
possible changes to our current 3.2 codebase, I'd suggest reimplenting 
APR_STATUS_IS_SUCCESS in our code, and then removing it 3.3. This will 
give us lot's of time as we work on 3.3 to discover if there are any 
problems droping the APR_OS_START_SYSERR part of the test.


Jim


Re: Segfaults in ConnectionHander FreeBSD (was Re: 3.2.6 test period - how long do we wait?)

2006-01-30 Thread Jim Gallacher

David Fraser wrote:

Jim Gallacher wrote:


Barry Pederson wrote:

I think this is the general kind of thing we're looking for though, 
with some mistaken pointer/memory operation.


Too bad we can't write *everything* in python. :(


You haven't been following PyPy then? :-)

David



Well, sure, but I think porting will have to wait until at least 
mod_python 3.4. :)


Jim


Re: 3.2.6 test period - how long do we wait?

2006-01-30 Thread Jim Gallacher

Gregory (Grisha) Trubetskoy wrote:


On Sun, 29 Jan 2006, Graham Dumpleton wrote:


 buffer += bufsize;



On a second thought - yes, you're right :-)



And if he's not then there is a bug in filter_read since that is what it 
does and it is very similar to _conn_read.


Jim


Re: Segfaults in ConnectionHander FreeBSD (was Re: 3.2.6 test period - how long do we wait?)

2006-01-30 Thread David Fraser

Jim Gallacher wrote:

Barry Pederson wrote:
I think this is the general kind of thing we're looking for though, 
with some mistaken pointer/memory operation.

Too bad we can't write *everything* in python. :(

You haven't been following PyPy then? :-)

David


Re: 3.2.6 test period - how long do we wait?

2006-01-29 Thread Gregory (Grisha) Trubetskoy


On Sun, 29 Jan 2006, Graham Dumpleton wrote:


 buffer += bufsize;



On a second thought - yes, you're right :-)

Grisha


Re: 3.2.6 test period - how long do we wait?

2006-01-29 Thread Graham Dumpleton
Grisha wrote ..
> 
> On Sun, 29 Jan 2006, Graham Dumpleton wrote:
> 
> > Grisha wrote ..
> >>
> >>  buffer = bufsize;
> >>
> >
> > I suspect you mean't:
> >
> > buffer += bufsize;
> 
> buffer = bufsize should be correct because you move the pointer to the
> end 
> of where the bufer was. buffer += bufsize would set it further than you
> need it.

"buffer" is a char* pointer, specifically the character string buffer inside
of the Python string object. "bufsize" is an integer (long) representing
the number of bytes read so far.

"buffer" is set on the line before that to the start of the internal buffer
of the newly resized Python string object. To get to where the next lot
of data to be read into, that buffer pointer has to be offset by the number
of bytes. Assiging long of bufsize to char* isn't going to work.

Thus, still think it is:

  buffer += bufsize;

> > Anyway, this change doesn't help with Mac OS X as it doesn't even get
> invoked.
> >
> > Unlike suggestions by someone else that "self" seemed to be getting 
> > corrupted,
> > it looks fine to me, and code simply crashed down in:
> >
> >  apr_bucket_read(b, &data, &size, APR_BLOCK_READ)
> >
> > on very first call to it. Thus need to start tracking into Apache itself
> and see what
> > there may be about bucket structures that isn't correct. This is where
> I got to
> > last time before I gave up, feeling it wasn't worth the effort at the
> time. I'll try
> > and build a version of Apache with debug so I can get a better stack
> trace.
> 
> The first thing I'd check is for validity of b. Buckets use reference 
> counting much like Python, so sometimes it's possible for a bucket to 
> "self-distruct".

Starting to delve into the bucket now. Haven't looked at reference count
stuff yet, but the b->type object seems to be bogus. This is where the
read() function pointer is kept and since it is a bad value it is why it dies.

Graham


Re: 3.2.6 test period - how long do we wait?

2006-01-29 Thread Gregory (Grisha) Trubetskoy


On Sun, 29 Jan 2006, Graham Dumpleton wrote:


Grisha wrote ..


 buffer = bufsize;



I suspect you mean't:

buffer += bufsize;


buffer = bufsize should be correct because you move the pointer to the end 
of where the bufer was. buffer += bufsize would set it further than you 
need it.



Anyway, this change doesn't help with Mac OS X as it doesn't even get invoked.

Unlike suggestions by someone else that "self" seemed to be getting corrupted,
it looks fine to me, and code simply crashed down in:

 apr_bucket_read(b, &data, &size, APR_BLOCK_READ)

on very first call to it. Thus need to start tracking into Apache itself and 
see what
there may be about bucket structures that isn't correct. This is where I got to
last time before I gave up, feeling it wasn't worth the effort at the time. 
I'll try
and build a version of Apache with debug so I can get a better stack trace.


The first thing I'd check is for validity of b. Buckets use reference 
counting much like Python, so sometimes it's possible for a bucket to 
"self-distruct".


Grisha


Re: 3.2.6 test period - how long do we wait?

2006-01-29 Thread Graham Dumpleton
Grisha wrote ..
> 
> On Sun, 29 Jan 2006, Jim Gallacher wrote:
> 
> > I don't know if this is the answer to the problem, but it looks like
> a bug 
> > anyway. In connobject.c starting at line 133:
> >
> >/* time to grow destination string? */
> >if (len == 0 && bytes_read == bufsize) {
> >
> >_PyString_Resize(&result, bufsize + HUGE_STRING_LEN);
> >buffer = PyString_AS_STRING((PyStringObject *) result);
> >buffer += HUGE_STRING_LEN;
> >bufsize += HUGE_STRING_LEN;
> >}
> >
> >
> > It looks like we've just set the buffer pointer to an address somewhere
> > inside the buffer. That can't be good. The buffer pointer should be set
> to 
> > the bytes_read position.
> 
> ...or bufsize. Of course they are the same, but I think this would read
> cleaner:
> 
>  if (len == 0 && bytes_read == bufsize) {
> 
>  _PyString_Resize(&result, bufsize + HUGE_STRING_LEN);
>  buffer = PyString_AS_STRING((PyStringObject *) result);
>  buffer = bufsize;
>  bufsize += HUGE_STRING_LEN;
>  }
> 
> This bug would garble the data if it's at least twice HUGE_STRING_LEN,
> since the first time around the code would work OK because bufsize would
> equal HUGE_STRING_LEN.

I suspect you mean't:

 if (len == 0 && bytes_read == bufsize) {

 _PyString_Resize(&result, bufsize + HUGE_STRING_LEN);
 buffer = PyString_AS_STRING((PyStringObject *) result);
 buffer += bufsize;
 bufsize += HUGE_STRING_LEN;
 }

Anyway, this change doesn't help with Mac OS X as it doesn't even get invoked.

Unlike suggestions by someone else that "self" seemed to be getting corrupted,
it looks fine to me, and code simply crashed down in:

  apr_bucket_read(b, &data, &size, APR_BLOCK_READ)

on very first call to it. Thus need to start tracking into Apache itself and 
see what
there may be about bucket structures that isn't correct. This is where I got to
last time before I gave up, feeling it wasn't worth the effort at the time. 
I'll try
and build a version of Apache with debug so I can get a better stack trace.

Graham


Re: Segfaults in ConnectionHander FreeBSD (was Re: 3.2.6 test period - how long do we wait?)

2006-01-29 Thread Barry Pederson

Jim Gallacher wrote:


Dang, it's frustrating not being able to reproduce this bug in Linux.


I suppose it's maybe something to do with different malloc 
implementations or such.   I haven't seen any +1s for OpenBSD, which 
would be interesting to see since they added some stuff in 3.8 to help 
catch problems with this sort of thing


http://kerneltrap.org/node/5584

Anyone been able to use valgrind or similar with mod_python?  I Googled 
and found a couple old messages from '02 and '04 mentioning attempts to 
use this, but doesn't sound like much came out of it.  I think there's a 
valgrind port on FreeBSD, so I may give that a try.


Barry


Re: 3.2.6 test period - how long do we wait?

2006-01-29 Thread Gregory (Grisha) Trubetskoy


On Sun, 29 Jan 2006, Jim Gallacher wrote:

I don't know if this is the answer to the problem, but it looks like a bug 
anyway. In connobject.c starting at line 133:


   /* time to grow destination string? */
   if (len == 0 && bytes_read == bufsize) {

   _PyString_Resize(&result, bufsize + HUGE_STRING_LEN);
   buffer = PyString_AS_STRING((PyStringObject *) result);
   buffer += HUGE_STRING_LEN;
   bufsize += HUGE_STRING_LEN;
   }


It looks like we've just set the buffer pointer to an address somewhere 
inside the buffer. That can't be good. The buffer pointer should be set to 
the bytes_read position.


...or bufsize. Of course they are the same, but I think this would read 
cleaner:


if (len == 0 && bytes_read == bufsize) {

_PyString_Resize(&result, bufsize + HUGE_STRING_LEN);
buffer = PyString_AS_STRING((PyStringObject *) result);
buffer = bufsize;
bufsize += HUGE_STRING_LEN;
}

This bug would garble the data if it's at least twice HUGE_STRING_LEN, 
since the first time around the code would work OK because bufsize would 
equal HUGE_STRING_LEN.


Grisha


Re: Segfaults in ConnectionHander FreeBSD (was Re: 3.2.6 test period - how long do we wait?)

2006-01-29 Thread Jim Gallacher

Barry Pederson wrote:
I don't know if this is the answer to the problem, but it looks like a 
bug anyway. In connobject.c starting at line 133:


/* time to grow destination string? */
if (len == 0 && bytes_read == bufsize) {

_PyString_Resize(&result, bufsize + HUGE_STRING_LEN);
buffer = PyString_AS_STRING((PyStringObject *) result);
buffer += HUGE_STRING_LEN;
bufsize += HUGE_STRING_LEN;
}


It looks like we've just set the buffer pointer to an address 
somewhere inside the buffer. That can't be good. The buffer pointer 
should be set to the bytes_read position. Perhaps one of you FreeBSD 
heads could try the attached patch.


Jim






Index: src/connobject.c
===
--- src/connobject.c(revision 369511)
+++ src/connobject.c(working copy)
@@ -135,7 +135,7 @@
 
 _PyString_Resize(&result, bufsize + HUGE_STRING_LEN);

 buffer = PyString_AS_STRING((PyStringObject *) result);
-buffer += HUGE_STRING_LEN;
+buffer += bytes_read;
 bufsize += HUGE_STRING_LEN;
 }
 



Sorry, that doesn't seem to fix it.  I did a fresh extraction of 
mod_python-3.2.6.tgz, applied the patch, did ./configure, make, su, make 
install, exit su, cd test, ran test.py - got the same result as before, 
with the same core dump apparently.


I really didn't think it would help since a buffer of HUGE_STRING_LEN 
(8192) should have been created in the first place. The unit test 
wouldn't be reading that many bytes, so I doubt the buffer is getting 
resized. All the same it still looks like a bug.


I think this is the general kind of thing we're looking for though, with 
some mistaken pointer/memory operation.


Too bad we can't write *everything* in python. :(


---

As I mentioned in another message, I did some experimenting with 
disabling other unittests and found if you disable just 
"test_fileupload", all the remaining tests including 
"test_connectionhandler" pass.


I hadn't forgotten. I'm just trying to understand what might be going on 
in the code and I spotted the bug.


If you disable everything except "test_fileupload" and 
"test_connectionhandler", then "test_connectionhandler" still crashes.


Dang, it's frustrating not being able to reproduce this bug in Linux.

So I suspect that it's code involved with running "test_fileupload" 
(Testing 1 MB file upload support) that's really the source of the 
problem, and it's screwing up some part of memory thats only tripped 
over later later during the connectionhandler test.


One of the things I'm trying to understand is what has changed since 3.1 
that is causing this bug. The only thing different in connobject.c is a 
fix to actually return local_ip and local_host (was returning remote_ip 
and remote_host), plus makeipaddr and makesockaddr now call the 
equivalent apr functions rather than the prior roll-our-own approach. 
Neither of these changes should impact the _conn_read.


Jim




Re: 3.2.6 test period - how long do we wait?

2006-01-29 Thread Graham Dumpleton
Barry Pederson wrote ..
> As I mentioned in another message, I did some experimenting with 
> disabling other unittests and found if you disable just 
> "test_fileupload", all the remaining tests including 
> "test_connectionhandler" pass.
> 
> If you disable everything except "test_fileupload" and 
> "test_connectionhandler", then "test_connectionhandler" still crashes.
> 
> So I suspect that it's code involved with running "test_fileupload" 
> (Testing 1 MB file upload support) that's really the source of the 
> problem, and it's screwing up some part of memory thats only tripped 
> over later later during the connectionhandler test.

FWIW, when I came across this on Mac OS X, it wasn't when running the
unit tests. In fact the unit tests work fine. It was happening for the very
first request after an Apache stop/start. Thus it couldn't have been the
result of a specific prior history of requests.

Anyway, I am going to give Jim's suggested change a go in a little while
and have a bit of a look at the code again to see if I can spot anything
obvious. Since though it was on the very first read and no buffer resize
was involved, suspecting that it will not help.

Graham


Re: 3.2.6 test period - how long do we wait?

2006-01-29 Thread Barry Pederson
I don't know if this is the answer to the problem, but it looks like a 
bug anyway. In connobject.c starting at line 133:


/* time to grow destination string? */
if (len == 0 && bytes_read == bufsize) {

_PyString_Resize(&result, bufsize + HUGE_STRING_LEN);
buffer = PyString_AS_STRING((PyStringObject *) result);
buffer += HUGE_STRING_LEN;
bufsize += HUGE_STRING_LEN;
}


It looks like we've just set the buffer pointer to an address somewhere 
inside the buffer. That can't be good. The buffer pointer should be set 
to the bytes_read position. Perhaps one of you FreeBSD heads could try 
the attached patch.


Jim





Index: src/connobject.c
===
--- src/connobject.c(revision 369511)
+++ src/connobject.c(working copy)
@@ -135,7 +135,7 @@
 
 _PyString_Resize(&result, bufsize + HUGE_STRING_LEN);

 buffer = PyString_AS_STRING((PyStringObject *) result);
-buffer += HUGE_STRING_LEN;
+buffer += bytes_read;
 bufsize += HUGE_STRING_LEN;
 }
 


Sorry, that doesn't seem to fix it.  I did a fresh extraction of 
mod_python-3.2.6.tgz, applied the patch, did ./configure, make, su, make 
install, exit su, cd test, ran test.py - got the same result as before, 
with the same core dump apparently.


I think this is the general kind of thing we're looking for though, with 
some mistaken pointer/memory operation.


---

As I mentioned in another message, I did some experimenting with 
disabling other unittests and found if you disable just 
"test_fileupload", all the remaining tests including 
"test_connectionhandler" pass.


If you disable everything except "test_fileupload" and 
"test_connectionhandler", then "test_connectionhandler" still crashes.


So I suspect that it's code involved with running "test_fileupload" 
(Testing 1 MB file upload support) that's really the source of the 
problem, and it's screwing up some part of memory thats only tripped 
over later later during the connectionhandler test.


Barry


Re: 3.2.6 test period - how long do we wait?

2006-01-29 Thread Jim Gallacher

Graham Dumpleton wrote:


On 29/01/2006, at 1:29 AM, Jim Gallacher wrote:


Volodya wrote:

On Fri, Jan 27, 2006 at 10:28:24AM -0500, Gregory (Grisha)  
Trubetskoy wrote:




OK, and I see Ron sent a Solaris 10 +1, which is good. I think we  
need a FreeBSD +1 - perhaps not necessarily 6.0, but something...



FreeBSD 4.9
In my case PythonConnectionHandler test fails.
Tested on:
  Apache/2.0.55 (prefork) mod_python/3.2.6 Python/2.4.2
  Apache/2.0.50 (prefork) mod_python/3.2.6 Python/2.3.4



I think this is the same as Barry Pederson's failure.



Which are both similar to:

  http://issues.apache.org/jira/browse/MODPYTHON-102

Although in the Mac OS X case, only happened when on secondary port  and 
not

main listener port.

I have never seen anyone use connection handlers so speculated that  
there was

probably no urgency in doing anything about it.

Graham



I don't know if this is the answer to the problem, but it looks like a 
bug anyway. In connobject.c starting at line 133:


/* time to grow destination string? */
if (len == 0 && bytes_read == bufsize) {

_PyString_Resize(&result, bufsize + HUGE_STRING_LEN);
buffer = PyString_AS_STRING((PyStringObject *) result);
buffer += HUGE_STRING_LEN;
bufsize += HUGE_STRING_LEN;
}


It looks like we've just set the buffer pointer to an address somewhere 
inside the buffer. That can't be good. The buffer pointer should be set 
to the bytes_read position. Perhaps one of you FreeBSD heads could try 
the attached patch.


Jim





Index: src/connobject.c
===
--- src/connobject.c(revision 369511)
+++ src/connobject.c(working copy)
@@ -135,7 +135,7 @@
 
 _PyString_Resize(&result, bufsize + HUGE_STRING_LEN);
 buffer = PyString_AS_STRING((PyStringObject *) result);
-buffer += HUGE_STRING_LEN;
+buffer += bytes_read;
 bufsize += HUGE_STRING_LEN;
 }
 


Re: 3.2.6 test period - how long do we wait?

2006-01-28 Thread Jim Gallacher

Volodya wrote:

On Fri, Jan 27, 2006 at 10:28:24AM -0500, Gregory (Grisha) Trubetskoy wrote:



OK, and I see Ron sent a Solaris 10 +1, which is good. I think we need a 
FreeBSD +1 - perhaps not necessarily 6.0, but something...





FreeBSD 4.9

In my case PythonConnectionHandler test fails.
Tested on:
  Apache/2.0.55 (prefork) mod_python/3.2.6 Python/2.4.2
  Apache/2.0.50 (prefork) mod_python/3.2.6 Python/2.3.4



I think this is the same as Barry Pederson's failure.

Jim


Re: 3.2.6 test period - how long do we wait?

2006-01-28 Thread Volodya
On Fri, Jan 27, 2006 at 10:28:24AM -0500, Gregory (Grisha) Trubetskoy wrote:
> 
> 
> OK, and I see Ron sent a Solaris 10 +1, which is good. I think we need a 
> FreeBSD +1 - perhaps not necessarily 6.0, but something...
> 

FreeBSD 4.9

In my case PythonConnectionHandler test fails.
Tested on:
  Apache/2.0.55 (prefork) mod_python/3.2.6 Python/2.4.2
  Apache/2.0.50 (prefork) mod_python/3.2.6 Python/2.3.4

I've tried to reproduce this test manually:
 $ /usr/local/sbin/httpd -k start -f 
/home/volodya/mod_python-3.2.6/test/conf/test.conf
 $ GET http://localhost:2758/tests.py
 500 Server closed connection without sending any data back

 $ telnet localhost 2758
 telnet localhost 2758
 Trying 127.0.0.1...
 Connected to localhost.mydomain.tld.
 Escape character is '^]'.
 Connection closed by foreign host.
 
Child sigfaults immediately after connection being established.

logs/error_log:
 [notice] mod_python: Creating 8 session mutexes based on 256 max processes and 
0 max threads.
 [notice] Apache/2.0.50 (FreeBSD) mod_python/3.2.6 Python/2.3.4 configured -- 
resuming normal operations
 [info] Server built: Jul 15 2004 11:25:58 [debug] prefork.c(955): AcceptMutex: 
flock (default: flock)
 [notice] child pid 98975 exit signal Segmentation fault (11), possible 
coredump in /home/volodya/mod_python-3.2.6/test
 [notice] child pid 98977 exit signal Segmentation fault (11), possible 
coredump in /home/volodya/mod_python-3.2.6/test

Yes, i know that FreeBSD 4.9 is rather old, but this is the only version
i have at my disposal.


Re: 3.2.6 test period - how long do we wait?

2006-01-27 Thread Ron Reisor

Maybe I forgot to send this one in:

+1

Solaris 10 Sparc
Apache-2.0.55 mpm-prefork
Python-2.4.2

cheers,

Ron


Ron Reisor <[EMAIL PROTECTED]> (RWR3)
University of Delaware Information Technologies/Network and Systems Services
Computing Center/192 South Chapel Street/Newark DE, 19716
pgp finger print: 0D 73 06 6F D3 6A 99 D3  F5 D5 6E FF 3B B9 7C 2C


Re: 3.2.6 test period - how long do we wait?

2006-01-26 Thread Jim Gallacher

Gregory (Grisha) Trubetskoy wrote:


On Thu, 26 Jan 2006, Jim Gallacher wrote:


It seems like any 3.2.6 testing that is going to be done, has been done.



I've been kinda swamped with unrelated things past two weeks, so I 
wasn't paying much attention. Perhaps an e-mail summarizing the +1's so 
far and a quick vote of the core group on whether this is enough?


Grisha


Here is the summary of the 3.2.6 testing to date. Let me know if I've 
missed anyone's tests or you still want to toss you test on the pile.


For the 3.2.6b tarball (same as 3.2.6 but with the messed up version 
string).


+1 Gentoo [current], Apache-2.0.55 (mpm-prefork), Python-2.4, gcc-3.4.4
+1 Linux (amd64) Ubuntu Breezy 5.10, apache 2.0.54 mpm-worker python 2.4
+1 Linux Debian sid, apache 2.0.55 (mpm-prefork), python 2.3
+1 Linux Debian sarge, apache 2.0.54 (mpm-worker), python 2.3
+1 Mac OS X 10.3, Apache 2.0.55, python 2.3
+1 Slackware 10.1, Apache 2.0.55 (mpm-prefork), Python 2.4
+1 Windows XP, python 2.4
+1 Windows 2000, python 2.3

For 3.2.6
+1 Fedora Core 4 Apache 2.0.54 Python 2.4.1
+1 Linux Debian sid, apache 2.0.55 (mpm-prefork), python 2.3
+1 Linux Debian sarge, apache 2.0.54 (mpm-worker), python 2.3
+1 MacOS-10.4.4 Apache-2.0.55 mpm-prefork Python-2.4.2
+1 Windows 2000 Server SP4, Python 2.3
+1 Windows XP Pro SP2, Python 2.4
+1 Windows XP Pro SP2 Apache 2.0.54 Python 2.4.2

 0 HP Tru64, mpm-worker

On the bsd front, Barry Pederson reported a problem with FreeBSD 6.0 but 
didn't issue an actual -1. FreeBSD and I are still not getting along, 
but with a small manual tweak of the Makefile I was able to run all the 
tests successfully. I don't know if there is a configure problem or if 
it's just my BSD incompetence but I'm willing to issue a shaky +0 for 
FreeBSD 6.0.


Jim


Re: 3.2.6 test period - how long do we wait?

2006-01-26 Thread Jim Gallacher

Gregory (Grisha) Trubetskoy wrote:


On Thu, 26 Jan 2006, Jim Gallacher wrote:


It seems like any 3.2.6 testing that is going to be done, has been done.



I've been kinda swamped with unrelated things past two weeks, so I 
wasn't paying much attention. Perhaps an e-mail summarizing the +1's so 
far and a quick vote of the core group on whether this is enough?


I will gather the info later tonight.

Jim


Re: 3.2.6 test period - how long do we wait?

2006-01-26 Thread Gregory (Grisha) Trubetskoy


On Thu, 26 Jan 2006, Jim Gallacher wrote:


It seems like any 3.2.6 testing that is going to be done, has been done.


I've been kinda swamped with unrelated things past two weeks, so I wasn't 
paying much attention. Perhaps an e-mail summarizing the +1's so far and a 
quick vote of the core group on whether this is enough?


Grisha


Re: 3.2.6 test period - how long do we wait?

2006-01-26 Thread Graham Dumpleton
Jim Gallacher wrote ..
> It seems like any 3.2.6 testing that is going to be done, has been done.
> How long do we wait before making a decision for an official release.
> 
> If we don't get cracking on 3.3 soon Graham's gonna fill another couple
> of pages on JIRA and we'll never catch up. :)

You aren't far wrong. I was actually thinking of sending an email to the
list warning about an impending avalanche of JIRA bug reports. This is
going to be caused by me going through my module importer issues
list and logging separate bug reports for each problem where none
already exists in JIRA. Also have potentially others as well I know of but
aren't in my module importer issues list at the moment but which I will
be adding. Also going to create new bugs or ask for some old bugs to
be reopened because the issue was only addressed in version 3.2.6 for
mod_python.publisher and not mod_python as a whole.

Thus, consider yourself warned. Note that none of what I will be creating
issues for should stop 3.2.6 (final) being released. Already accepted that
they would be 3.3.

Graham