推荐一个开源软件Jxls Gentoo 下 autounmask 死循环(loops never-ending)的bug
Aug 29

昨天更新了一个Freebsd服务器

FreeBSD 7.0-RELEASE-p2 FreeBSD 7.0-RELEASE-p2 #0: Wed Jun 18 07:33:20 UTC 2008 root@i386-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC i386

dev# portupgrade -a

更新之后发现apache22不能restart了。原来是mod_python3挂了。发现被删除了不知道为啥。所以就重装。

dev# cd /usr/ports/www/mod_python3
dev# make install clean

然后就出错了。详细错误信息忘了记下来了。其中有这么一行是这样的。

apxs:Error: Command failed with rc=65536

然后google这个错误居然在trac的wiki里找到了。

http://trac.edgewall.org/wiki/TracOnOsxMacPorts

这里是macports里的mod_python3,感觉应该一样吧。马上按里的的方法修改。问题依旧啊。:(
然后又在上面这个页面时提到的一个链接的评论里找到了答案。
http://boorad.weebly.com/1/post/2008/01/wrastling-macports-mod_python25.html

这人估计和我一样找到了这里。他给了个mailist的解决方法
http://marc.info/?l=apr-dev&m=121484628716470&w=2

居然是要修改源代码。
Hi,

Upgrading apr to the latest 1.3.2 broke the compilation of mod_python (I use
mod_python 3.3.1 but this file is the same in svn). Since b is a bucket and bb
the bucket brigade object, I suppose we must read APR_BRIGADE_SENTINEL(bb)
instead of APR_BRIGADE_SENTINEL(b). Any APR lib expert confirmation ?

diff -r -u -p mod_python-3.3.1.orig/src/connobject.c
mod_python-3.3.1/src/connobject.c
--- mod_python-3.3.1.orig/src/connobject.c 2008-06-25 16:16:41 +0200
+++ mod_python-3.3.1/src/connobject.c 2008-06-25 16:20:32 +0200
@@ -139,7 +139,7 @@ static PyObject * _conn_read(conn_rec *c
bytes_read = 0;

while ((bytes_read < len || len == 0) &&
- !(b == APR_BRIGADE_SENTINEL(b) ||
+ !(b == APR_BRIGADE_SENTINEL(bb) ||
APR_BUCKET_IS_EOS(b) || APR_BUCKET_IS_FLUSH(b))) {

const char *data;

原来这个问题是因为升级了apr引起的。
把APR_BRIGADE_SENTINEL(b) 改成 APR_BRIGADE_SENTINEL(bb) 就ok了。


Like others

Leave a Reply

Identifying Code