Philippe M. Chiasson wrote:
Stas Bekman wrote:

Philippe? What's up with this todo/release item?

* $bb->cleanup segfaults (originally in TestProtocol::echo_bbs2
http://marc.theaimsgroup.com/?l=apache-modperl-dev&m=108967266419527&w=2
owner: gozer


Can I somehow take over it? (requires that I'll be able to reproduce the problem, which back then I didn't manage).


You sure can take it over, or if you can't reproduce it, just post a patch to
revert it to the version of the test that _was_ failing and I'll have a look.


I am quite busy this week, but I should be able to have a look at it and see if
it still fails on my systems.

I can't reproduce it. Here is an updated version

Index: t/protocol/TestProtocol/echo_bbs2.pm
===================================================================
--- t/protocol/TestProtocol/echo_bbs2.pm        (revision 109678)
+++ t/protocol/TestProtocol/echo_bbs2.pm        (working copy)
@@ -1,3 +1,4 @@
+
 package TestProtocol::echo_bbs2;

 # similar to TestProtocol::echo_bbs but here re-using one bucket
@@ -4,11 +5,6 @@
 # brigade for input and output, using flatten to slurp all the data in
 # the bucket brigade, and cleanup to get rid of the old buckets

-# XXX: ideally $bb->cleanup should be used here and no create/destroy
-# bb every time the loop is entered should be done. But it segfaults
-# on certain setups:
-# http://marc.theaimsgroup.com/?l=apache-modperl-dev&m=108967266419527&w=2
-
 use strict;
 use warnings FATAL => 'all';

@@ -28,11 +24,11 @@
     # the socket to a blocking IO mode
     $c->client_socket->opt_set(APR::SO_NONBLOCK, 0);

+    my $bb_in  = APR::Brigade->new($c->pool, $c->bucket_alloc);
+    my $bb_out = APR::Brigade->new($c->pool, $c->bucket_alloc);
+
     my $last = 0;
     while (1) {
-        my $bb_in  = APR::Brigade->new($c->pool, $c->bucket_alloc);
-        my $bb_out = APR::Brigade->new($c->pool, $c->bucket_alloc);
-
         my $rc = $c->input_filters->get_brigade($bb_in,
                                                 Apache::MODE_GETLINE);
         last if $rc == APR::EOF;
@@ -48,11 +44,14 @@

         $c->output_filters->fflush($bb_out);

-        # XXX: add DESTROY and remove explicit calls
-        $bb_in->destroy;
-        $bb_out->destroy;
+        $bb_in->cleanup;
+        $bb_out->cleanup;
     }

+    # XXX: add DESTROY and remove explicit calls
+    $bb_in->destroy;
+    $bb_out->destroy;
+
     Apache::OK;
 }


-- __________________________________________________________________ Stas Bekman JAm_pH ------> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to