PHP 4.0 Bug #8133 Updated: pspell_new() in Apache module segfaults
| From: | vlad@php.net | Date: | Tue, 03 Apr 2001 18:16:18 +0000 |
| Subject: | PHP 4.0 Bug #8133 Updated: pspell_new() in Apache module segfaults | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-50728@lists.php.net to get a copy of this message | ||
ID: 8133
Updated by: vlad
Reported By: torben@php.net
Status: Closed
Bug Type: Pspell related
Assigned To:
Comments:
Actually, this is still a "problem", and the solution for the cause seems to be in
allowing aspell to read it's own files as 'nobody' (or whatever your apache runs as).
For most people, just do the following:
chmod o+r /usr/local/lib/aspell
chmod o+r /usr/local/share/aspell
chmod o+r /usr/local/share/pspell
The credit for finding this is due to steve@math.upatras.gr.
Previous Comments:
---------------------------------------------------------------------------
[2001-04-03 07:47:27] sniper@php.net
I can't reproduce this with latest CVS. You should also check bug #10129 if that's what is
the problem in your system.
( And I don't have .aspell in my /root/ dir)
--Jani
---------------------------------------------------------------------------
[2001-01-09 20:51:25] vlad@php.net
Looks like newer versions of pspell require the user's /root/.aspell.conf (if you are running
apache as root) file to be present, while older ones did not care; otherwise we see:
open("/root/.aspell.conf", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
brk(0x8178000) = 0x8178000
--- SIGSEGV (Segmentation fault) ---
+++ killed by SIGSEGV +++
I'll see if I can figure out how to get rid of that annoying and useless (in this context)
feature.
I wonder if it is related to bug# 8464
---------------------------------------------------------------------------
[2000-12-06 00:24:12] torben@php.net
This is a fresh source wipe & checkout from cvs. I also
installed fresh pspell & aspell packages of the latest
versions; they work fine from the command line. The command
line PHP seems to work fine; the module version segfaults.
Configure script (remove the apxs line for the cli version):
./configure
--with-apxs=/usr/local/apache/bin/apxs
--with-pspell
--with-mysql=/usr
--with-gd
--with-xml
--with-zlib
--with-curl
--with-sablot
--with-iodbc=/usr/local
--enable-wddx
--enable-versioning
--enable-sysvshm
--enable-sysvsem
--enable-sockets
--enable-shmop
--enable-debug
I cannot get a backtrace when this happens; running gdb
on httpd just gives:
Error while mapping shared library sections:
"/sbin/": not in executable format: Is a directory.
Error while reading shared library symbols:
"/sbin/": can't read symbols: Is a directory.
warning: find_solib: Can't read pathname for load map:
Input/output error
...in an infinite loop until I kill gdb from another
terminal.
I did a strace, if that helps. It was rather huge, and
is located at
http://www.thebuttlesschaps.com/php-pspell-segfault.txt
The script with which I am testing:
<?php /* -*- mode: c++; minor-mode: font -*- */
include('./utils.inc');
include('./speedlib.inc');
$version = phpversion();
?>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML-3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<h1><?php echo $version ?> list answer testbed</h1>
<?php
error_reporting(E_ALL);
$dictid = pspell_new('en', '', '', '', PSPELL_NORMAL);
echo "Got dictionary: '$dictid'<br>n";
?>
<hr>
</body>
</html>
(There a a couple of extraneous lines at the beginning
but they don't affect anything.)
---------------------------------------------------------------------------
ATTENTION! Do NOT reply to this email!
To reply, use the web interface found at http://bugs.php.net/?id=8133&edit=2