]> granicus.if.org Git - apache/commit
* Fix a SEGFAULT by ensuring that buckets that may have been buffered in the
authorRuediger Pluem <rpluem@apache.org>
Sat, 15 Dec 2007 16:15:04 +0000 (16:15 +0000)
committerRuediger Pluem <rpluem@apache.org>
Sat, 15 Dec 2007 16:15:04 +0000 (16:15 +0000)
commitd2a1cf5f8c90b34a05dcf8c5261570e6d6ff7712
treefbeda95798869fc332f41b77eadbe15a06510a7b
parent72109fff5cb8452491edc05f7be390703bc31966
* Fix a SEGFAULT by ensuring that buckets that may have been buffered in the
  network filters get flushed to the network. This is needed since
  these buckets have been created with the bucket allocator of the
  backend connection. This allocator either gets destroyed if
  conn->close is set or the worker address is not reusable which
  causes the connection to the backend to be closed or it will be used
  again by another frontend connection that wants to recycle the
  backend connection.
  In this case we could run into nasty race conditions (e.g. if the
  next user of the backend connection destroys the allocator before we
  sent the buckets to the network).

  Remark 1: Doing a setaside does not help here as the buckets remain
  created by the wrong allocator in this case.

  Remark 2: Yes, this creates a possible performance penalty in the case
  of pipelined requests as we may send only a small amount of data over
  the wire.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@604447 13f79535-47bb-0310-9956-ffa450edef68
include/ap_mmn.h
modules/proxy/mod_proxy.h
modules/proxy/mod_proxy_ftp.c
modules/proxy/proxy_util.c