php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #26884 Php Segmentation fault in cron
Submitted: 2004-01-12 09:02 UTC Modified: 2004-02-04 09:45 UTC
Votes:1
Avg. Score:4.0 ± 0.0
Reproduced:0 of 0 (0.0%)
From: forlevibr at yahoo dot com dot br Assigned:
Status: Closed Package: Reproducible crash
PHP Version: 4CVS-2004-01-12 OS: Slackware 9
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: forlevibr at yahoo dot com dot br
New email:
PHP Version: OS:

 

 [2004-01-12 09:02 UTC] forlevibr at yahoo dot com dot br
Description:
------------
I installed PHP with the commands below:

rm config.cache
make clean
./configure --prefix=/usr/local/php --with-apxs=/usr/local/apache/bin/apxs --with-sybase-ct=/opt/sybase --with-java=/usr/local/java --enable-sockets --enable-ftp --enable-calendar
make && make install && make install-cli

Then I created a script teste.sh that have permisions 755 with the command below:

/usr/local/php/bin/php /etc/cron/teste.php

The script teste.php have the commands below:

<?php
mail("email@domain", "Subject', "Text");
?>

I added the command in the contab
0 0-23 * * * /etc/cron/teste.sh

When the job execute it throw the message:
/etc/cron/teste.sh: line 1: 27310 Segmentation fault /usr/local/php/bin/php /etc/cron/teste.php

When I execute the script in the line command it work, but when the cron execute it don't work.

Reproduce code:
---------------
file teste.php
<?php
mail("email@domain", "Subject', "Text");
?>

file teste.sh
/usr/local/php/bin/php /etc/cron/teste.php

crontab
0 0-23 * * * /etc/cron/teste.sh

Expected result:
----------------
Crontab execute the script sending the mail

Actual result:
--------------
Crontab execute the script but throw message:

/etc/cron/teste.sh: line 1: 27310 Segmentation fault /usr/local/php/bin/php /etc/cron/teste.php

and not send mail

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2004-01-12 17:46 UTC] iliaa@php.net
Works fine here with latest CVS and I should mention that 
your script has a parse error. If you can replicate the 
problem after fixing the parse error please generate a 
backtrace. 
 [2004-01-13 09:02 UTC] forlevibr at yahoo dot com dot br
I updated to last version (200401131230 ) and the problem continue.

My new script teste.php:

<?php
mail("email@domain", "Subject", "Text");
?>

The error:

/etc/cron.bol/teste.sh: line 1: 31063 Segmentation fault /usr/local/php/bin/php /etc/cron.bol/teste.php
 [2004-01-13 09:07 UTC] forlevibr at yahoo dot com dot br
Sorry
The correct error message is:

/etc/cron/teste.sh: line 1: 31063 Segmentation fault
/usr/local/php/bin/php /etc/cron.bol/teste.php
 [2004-01-13 13:22 UTC] sniper@php.net
Do you get a core file anywhere..? The GDB backtrace would help a lot.

 [2004-01-14 08:39 UTC] forlevibr at yahoo dot com dot br
Hi,
I would like to ask you how to generate a core file if I'm getting the crash from "cron" and not from a cgi or from a http.
Running directly from cgi the script runs and does not crash, as you know.

The steps on PHP docs are talking how produce a core file using cgi or http as you can see below:

"If you don't have a core file yet:

    * Remove any limits you may have on core dump size from your shell:
          o tcsh: unlimit coredumpsize
          o bash/sh: ulimit -c unlimited
    * Ensure that the directory in which you're running PHP, or the PHP-enabled httpd, has write permissions for the user who's running PHP.
    * Cause PHP to crash:
          o PHP CGI: Simply run php with the script that crashes it
          o PHP Apache Module: Run httpd -X, and access the script that crashes PHP."

So, is there a way how we can go ahead with this case, or generating a core as you told running it with "cron" or other way where we can find the problem and try to solve it? 
Thanks.
 [2004-01-14 10:38 UTC] sniper@php.net
First do this:

# rm config.cache && ./configure --prefix=/usr/local/php --disable-all --disable-cgi --enable-debug && make && make install-cli

ie. compile a debug enabled PHP CLI binary without anything extra. Also, change the teste.sh to run the php script like this:

/usr/local/php/bin/php -n /etc/cron/teste.php

(this will disable loading of any php.ini file)

Do you still get the crash?


 [2004-01-14 11:52 UTC] forlevibr at yahoo dot com dot br
Hi
When run the make I get the Error below

...
gcc: sapi/cli/php_cli.o: No such file or directory
gcc: sapi/cli/getopt.o: No such file or directory
make: *** [sapi/cli/php] Error 1

What to do?
 [2004-01-15 01:13 UTC] sniper@php.net
# make clean && make

 [2004-01-15 07:00 UTC] forlevibr at yahoo dot com dot br
Hi
I solved the problem, simply add the line below in the teste.sh
PATH=/usr/local/php/bin

I don't know if this is a bug, because now the file teste.sh have commands:

PATH=/usr/local/php/bin
/usr/local/php/bin/php /etc/cron/teste.php

and before it has:

/usr/local/php/bin/php /etc/cron/teste.php

the shell PATH before and after

PATH=/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:
/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/opt/kde/bin:
/usr/lib/qt-3.1.2/bin:/usr/share/texmf/bin:
/opt/sybase/bin:/usr/local/java/bin:
/usr/local/php/bin:/root/bin

Thank's
 [2004-01-16 08:48 UTC] sniper@php.net
What crond version are you using?
And can you show the full crontab file?

 [2004-01-19 07:08 UTC] forlevibr at yahoo dot com dot br
Hi
I am using crond version 2.3.3;

My crontab file have...

######start file#######

SHELL=/bin/bash
PATH=/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/local/bin:/usr/local/php/bin

47 * * * * /usr/bin/run-parts /etc/cron.hourly  1> /dev/null
40 4 * * * /usr/bin/run-parts /etc/cron.daily   1> /dev/null
30 4 * * 0 /usr/bin/run-parts /etc/cron.weekly  1> /dev/null
20 4 1 * * /usr/bin/run-parts /etc/cron.monthly 1> /dev/null

## Two commands is working
0 0-23 * * * php /etc/cron/teste.sh  
#0 0-23 * * * run-parts /etc/cron

###########end file##############


My correct file teste.sh have

###########start file############
SHELL=/bin/bash
PATH=/usr/local/php/bin

php /etc/cron/teste.php
###########end file##############
 [2004-01-19 08:51 UTC] forlevibr at yahoo dot com dot br
Hi
When I reboot the server, the scripts stop work and throw error "Segmentation fault" when called by crond.
Then I execute the commands:
  killall crond
  crond
and the scripts work.
 [2004-01-19 13:06 UTC] sniper@php.net
This is some bug in the crond you're using. 
I (or Ilia) could not reproduce this.
And I'm using vixie-cron..

 [2004-01-21 09:00 UTC] forlevibr at yahoo dot com dot br
Hi
I detected the cause.
I compiled php without option --sybase-ct=PATH then the cron work.
I find article in http://dbforums.com/arch/160/2003/4/761172
that reported a problem equal with apache.
The solution was create a initialization script to cron where I seted the variables to SYBASE (SYBASE, LD_LIBRARY_PATH, LC_ALL) inside from the script then begin work fine.
More details can be seen in the link above

Thank
 [2004-02-04 09:45 UTC] forlevibr at yahoo dot com dot br
Is resolved
Thanks
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Sep 19 14:01:28 2024 UTC