Stas Bekman <[EMAIL PROTECTED]> writes:

> Stas Bekman wrote:
> > t/SMOKE is hard at work and found the following sequence:
> > t/TEST -v t/apr/string.t t/protocol/echo_bbs2.t t/filter/out_bbs_filebucket.t
> 
> with only one server, the sequence is reduced to just two tests:
> t/TEST -v -maxclients 1 t/protocol/echo_bbs2.t t/filter/out_bbs_filebucket.t


I think the problem might be with using apr_bucket_shared*
in modperl buckets, because it presumes the buckets are
allocated with apr_bucket_alloc.  See if the following patch
helps any:

Index: src/modules/perl/modperl_bucket.c
===================================================================
RCS file: /home/cvspublic/modperl-2.0/src/modules/perl/modperl_bucket.c,v
retrieving revision 1.12
diff -u -r1.12 modperl_bucket.c
--- src/modules/perl/modperl_bucket.c   13 Aug 2004 01:41:35 -0000      1.12
+++ src/modules/perl/modperl_bucket.c   23 Sep 2004 01:17:29 -0000
@@ -26,6 +26,39 @@
     PerlInterpreter *perl;
 } modperl_bucket_sv_t;
 
+static
+apr_status_t modperl_bucket_copy(apr_bucket *a,
+                                 apr_bucket **b)
+{
+    apr_bucket_refcount *r = a->data;
+    *b = malloc(sizeof(**b));
+    **b = *a;
+    r->refcount++;
+    return APR_SUCCESS;
+}
+
+static
+apr_status_t modperl_bucket_split(apr_bucket *a,
+                                  apr_size_t point)
+{
+    apr_bucket *b;
+
+    if (point > a->length) {
+        return APR_EINVAL;
+    }
+
+    modperl_bucket_copy(a, &b);
+
+    a->length  = point;
+    b->length -= point;
+    b->start  += point;
+
+    APR_BUCKET_INSERT_AFTER(a, b);
+
+    return APR_SUCCESS;
+}
+
+
 static apr_status_t
 modperl_bucket_sv_read(apr_bucket *bucket, const char **str,
                        apr_size_t *len, apr_read_type_e block)
@@ -70,8 +103,8 @@
     modperl_bucket_sv_destroy,
     modperl_bucket_sv_read,
     apr_bucket_setaside_notimpl,
-    apr_bucket_shared_split,
-    apr_bucket_shared_copy,
+    modperl_bucket_split,
+    modperl_bucket_copy,
 };
 
 static apr_bucket *modperl_bucket_sv_make(pTHX_

-- 
Joe Schaefer


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

Reply via email to