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]