ID:               40033
 Updated by:       [EMAIL PROTECTED]
 Reported By:      francisco dot a dot castillo at ge dot com
-Status:           Open
+Status:           Feedback
 Bug Type:         Reproducible crash
 Operating System: Linux Fedora Core 6
 PHP Version:      5.2.0
 New Comment:

Please try using this CVS snapshot:

  http://snaps.php.net/php5.2-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5.2-win32-latest.zip

Looking at the stack trace this looks like same as bug #39625,   so
please try a snap.


Previous Comments:
------------------------------------------------------------------------

[2007-01-08 17:21:06] francisco dot a dot castillo at ge dot com

Just write to know what happen with this bug 'cause I haven't received
any information of the status. I have my server down because of this.

Thanks for your attention

------------------------------------------------------------------------

[2007-01-05 22:07:11] francisco dot a dot castillo at ge dot com

Well, I saw that the backtrace threw a problem regarding the XSL, well,
I'll paste the code but I use a transformation when throwing an
exception, so, I could show it passing an XML to an XSL. This is the
code:

Throws the Exception:
try{
  throw new PHPDevException($this ->
error,100,"DAO",$part,false,"SQL","SQL DAO",$qry);                 }catch
(PHPDevException $ac){
      $ac -> toScreen();
      die();
   }    

The Exception class:

<?
        //require_once("classes/DAO.inc.php");
        //require_once("Config.inc.php");
        require_once("XSLoader.inc.php");
        
        /**
         * @author Francisco A. Castillo Guerrero. This class handles
         * all the exceptions created by the assessment center
         * redesign.
         */
        class PHPDevException extends Exception{                
                
                protected   $code;
                protected   $message;
                protected   $title;
                protected       $fclass;
                protected       $method;
                protected       $line;
                protected       $sys;
                protected       $uri;
                protected       $sql;
                protected       $redire;
                
                /**
                 * This is the constructor of the exception class. This method 
is
called when a new
                 * instance is created. This happens when you throw a new
PHPDevException.
                 * The parameters that receives are the following:
                 *
                 * @param String        $errmsg
                 * @param int           $errcode
                 * @param String        $class
                 * @param String        $method
                 * @param boolena       $redire
                 * @param String        $title
                 * @param String        $system
                 * @param String        $sql
                 */
                public function __construct($errmsg, $errcode, $class, $method,
$redire, $title = 'AC', $system = '', $sql = ''){                       
                        $this -> title = $title;
                        $this -> fclass = $class;                       
                        $this -> method = $method;
                        $this -> message = $errmsg;
                        $this -> code = $errcode;
                        $this -> line = parent::getLine();
                        $this -> sys = $system;
                        $this -> uri   = $_SERVER['PHP_SELF'];
                        $this -> sql = $sql;
                        $this -> redire = $redire;
                        
                        parent::__construct($errmsg,$errcode);
                }
        
                /**
                 * Inserts into the log table, the content of this Exception.
                 * In the imformation inserted includes parameters from the
                 * same class and are the following:
                 * 
                 * @param Date          ltime.          Date of the insertion
                 * @param Long          time_stamp.     Time stamp of the date
                 * @param String        cname           Class name from the 
generated exception
                 * @param String        method          Method of the class 
where the exception was
thrown
                 * @param Int           lineNumber      Line where the 
exception was thrown
                 * @param String        system_name     Name of the system
                 * @param String        uri                     Part of the url 
that generated the exception
                 * @param String        Message         Message of the exception
                 *
                 */
                 
        public function toLog(){
            // Log the content of the Exception.
            $dao = new DAO(true);
            
            $ts = mktime();
            $date = date("Y/m/d", $ts);
            
            
            $table = "logger(ltime, time_stamp, cname, method, lineNumber,
msg_code, system_name, uri, message)";
            $vals = "'$date', $ts,'".
            $this -> fclass."','".
            $this -> method."',".
            $this -> line.",'".
            $this -> code."','".
            $this -> sys."','".
            $this -> uri."','".
            $this -> message."'";
            
            $dao -> insert($table,$vals);
            $this -> redir();                   
        }
        
        /**
         * Output the exception to the browser
         *
         */
        public function toScreen(){
                
                $this -> redir();
                
                print $this -> formatException($this -> message);               
        
        }
        
        /**
         * Outputs the exception and save it into the log
         *
         */
        public function toBoth(){
                $this -> redir();
                $this -> toScreen();
                $this -> toLog();
        }
        
        /**
         * Redirects the page if an exception is raised and if the
redirect
         * flag is active (true) in the Config file
         *
         */
        private function redir(){
                global $redirect;
                
                if($this -> redire === true){
                        //header("Location: $redirect");
                        
                        print
"<script>setTimeout('self.location.href=\"$redirect\"',0)</script>";
                }               
        }
        
        /**
         * This method formats the output to be shown in the browser.
         * Only receives the message to format and returns the
         * formatted string      
         *
         * @param       String  msg             Message to format
         * @return      String  em              The HTML formated string
         */
        private function formatException($msg){
                $xml = "
                        <exception>
                        <title>".$this -> title." Exception Raised</title>
                        <content>
                                <element name='Query'><val>".$this -> 
sql."</val></element>
                                <element name='Class'><val>".$this -> 
fclass."</val></element>
                                <element name='Method'><val>".$this -> 
method."</val></element>
                                <element name='Line Number'><val>".$this -> 
line."</val></element>
                                <element 
name='Description'><val>".$msg."</val></element>                               
                        </content>
                        </exception>";
                //print $xml;die();
                $path = getcwd()."\\exceptions";
                
                return XSLoader::load($xml,"xslt\\".__CLASS__);
        }
}
?>

The Transformer Class:

<?
        class XSLoader
        {
                /**
                 * Transforms an XML with the XSL received and returns the 
                 * transformed string.
                 *
                 * @param       String $xml
                 * @param       String $xsl_file
                 * @return      String Transformed Document
                 */
                public function load($xml,$xsl_file)
                {
                        $doc = new DOMDocument();
                        $xsl = new XSLTProcessor();
                        
                        $doc -> load($xsl_file.'.xsl');
                        $xsl -> importStyleSheet($doc);
                        
                        $doc -> loadXML($xml);
                        
                        return $xsl -> transformToXML($doc);
                }
        }       
?>

Thanks! Regards!

------------------------------------------------------------------------

[2007-01-05 22:01:22] [EMAIL PROTECTED]

Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves. 

A proper reproducing script starts with <?php and ends with ?>,
is max. 10-20 lines long and does not require any external 
resources such as databases, etc. If the script requires a 
database to demonstrate the issue, please make sure it creates 
all necessary tables, stored procedures etc.

Please avoid embedding huge scripts into the report.



------------------------------------------------------------------------

[2007-01-05 21:00:43] francisco dot a dot castillo at ge dot com

This is the backtrace:

#0  0x0120e61a in zif_xsl_xsltprocessor_import_stylesheet (ht=1,
return_value=0xa1003c0, return_value_ptr=0x0,
    this_ptr=0xa0fffb0, return_value_used=0) at
/http/php-5.2.0/ext/xsl/xsltprocessor.c:387
#1  0x012789d8 in zend_do_fcall_common_helper_SPEC
(execute_data=0xbf871ba0) at
/http/php-5.2.0/Zend/zend_vm_execute.h:200
#2  0x0126a81d in execute (op_array=0xa0b65c8) at
/http/php-5.2.0/Zend/zend_vm_execute.h:92
#3  0x0127844c in zend_do_fcall_common_helper_SPEC
(execute_data=0xbf871ec0) at
/http/php-5.2.0/Zend/zend_vm_execute.h:234
#4  0x0126a81d in execute (op_array=0xa0bdfb4) at
/http/php-5.2.0/Zend/zend_vm_execute.h:92
#5  0x0127844c in zend_do_fcall_common_helper_SPEC
(execute_data=0xbf872070) at
/http/php-5.2.0/Zend/zend_vm_execute.h:234
#6  0x0126a81d in execute (op_array=0xa0bb158) at
/http/php-5.2.0/Zend/zend_vm_execute.h:92
#7  0x0127844c in zend_do_fcall_common_helper_SPEC
(execute_data=0xbf8722a0) at
/http/php-5.2.0/Zend/zend_vm_execute.h:234
#8  0x0126a81d in execute (op_array=0x9fa8404) at
/http/php-5.2.0/Zend/zend_vm_execute.h:92
#9  0x0127844c in zend_do_fcall_common_helper_SPEC
(execute_data=0xbf872520) at
/http/php-5.2.0/Zend/zend_vm_execute.h:234
#10 0x0126a81d in execute (op_array=0x9f9c1a8) at
/http/php-5.2.0/Zend/zend_vm_execute.h:92
#11 0x0127844c in zend_do_fcall_common_helper_SPEC
(execute_data=0xbf8726f0) at
/http/php-5.2.0/Zend/zend_vm_execute.h:234
#12 0x0126a81d in execute (op_array=0x9fb8fe0) at
/http/php-5.2.0/Zend/zend_vm_execute.h:92
#13 0x0127844c in zend_do_fcall_common_helper_SPEC
(execute_data=0xbf872880) at
/http/php-5.2.0/Zend/zend_vm_execute.h:234
#14 0x0126a81d in execute (op_array=0x9fa5b08) at
/http/php-5.2.0/Zend/zend_vm_execute.h:92
#15 0x0127844c in zend_do_fcall_common_helper_SPEC
(execute_data=0xbf872a20) at
/http/php-5.2.0/Zend/zend_vm_execute.h:234
#16 0x0126a81d in execute (op_array=0x9f9d934) at
/http/php-5.2.0/Zend/zend_vm_execute.h:92
#17 0x0127844c in zend_do_fcall_common_helper_SPEC
(execute_data=0xbf872ec0) at
/http/php-5.2.0/Zend/zend_vm_execute.h:234
#18 0x0126a81d in execute (op_array=0x9f9db54) at
/http/php-5.2.0/Zend/zend_vm_execute.h:92
#19 0x0127844c in zend_do_fcall_common_helper_SPEC
(execute_data=0xbf8730c0) at
/http/php-5.2.0/Zend/zend_vm_execute.h:234
#20 0x0126a81d in execute (op_array=0x9f9eefc) at
/http/php-5.2.0/Zend/zend_vm_execute.h:92
#21 0x0127844c in zend_do_fcall_common_helper_SPEC
(execute_data=0xbf8732c0) at
/http/php-5.2.0/Zend/zend_vm_execute.h:234
#22 0x0126a81d in execute (op_array=0x9f9b44c) at
/http/php-5.2.0/Zend/zend_vm_execute.h:92
#23 0x0124f1c2 in zend_execute_scripts (type=8, retval=<value optimized
out>, file_count=3)
    at /http/php-5.2.0/Zend/zend.c:1097
#24 0x01211a13 in php_execute_script (primary_file=0xbf8755e8) at
/http/php-5.2.0/main/main.c:1758
#25 0x012c5420 in php_handler (r=0x9f90328) at
/http/php-5.2.0/sapi/apache2handler/sapi_apache2.c:592
#26 0x0807ac59 in ap_run_handler (r=0x9f90328) at config.c:157
#27 0x0807ddc1 in ap_invoke_handler (r=0x9f90328) at config.c:371
#28 0x080c0bb8 in ap_process_request (r=0x9f90328) at
http_request.c:258
#29 0x080bdebb in ap_process_http_connection (c=0x9f7e120) at
http_core.c:184
#30 0x08081a59 in ap_run_process_connection (c=0x9f7e120) at
connection.c:43
#31 0x080d6b50 in child_main (child_num_arg=<value optimized out>) at
prefork.c:640
#32 0x080d6db3 in make_child (s=0x9db8b58, slot=0) at prefork.c:680
#33 0x080d7b96 in ap_mpm_run (_pconf=0x9db20a8, plog=0x9dfa1c8,
s=0x9db8b58) at prefork.c:956
#34 0x08068a95 in main (argc=165347616, argv=0x9e804a8) at main.c:717

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/40033

-- 
Edit this bug report at http://bugs.php.net/?id=40033&edit=1

Reply via email to