ID: 7984
Updated by: sniper
Reported By: [EMAIL PROTECTED]
Old-Status: Feedback
Status: Closed
Bug Type: Reproduceable crash
Assigned To: 
Comments:

No feedback.


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

[2001-01-08 13:57:52] [EMAIL PROTECTED]
please, provide the shortest possible script reproducing the error.

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

[2000-11-26 21:21:42] [EMAIL PROTECTED]
  This is a _very_ complex script that heavily uses objects.  The first few lines
are the web page printout.  The next lines are the function that crashes the system.
It uses mysql and PWS on win98. ( It will later be used on linux.  It is GPL, and is
a distributive monitoring system.) PWS crashes consistently at this point, and must be 
restarted.
every few times, the win98 machine must be rebooted.

  the array_walk function is being called:

  array_walk($TestActionResult,"CheckTestActionResult");

  The object definitions are:

   class MySQLPollConfig 
      {
      var $configured; // if TRUE, this is configured   
      var $MySQLConnect;     
      var $poll_rate;         
      var $MySQLConnectCount;
      function MySQLPollConfig()
         {
         $this->configured = FALSE;
         $this->poll_rate = FALSE;
         $this->MySQLConnect = 0;
         $this->MySQLConnectCount = 0;
         }
      };

   class AlarmInfoClass
      {
       var $HistoryID; // the ID in the History table
       var $AlarmState;// the alarm id found
       var $Status;// the current status ID of the alarm
       var $Type; // type, either Success or Fail
       var $MachineID; // the machine that the alarm belongs to
       var $New; // if TRUE, this was just updated with new info
       var $ID;  // if in the database, this ID is non-zero
       var $ServiceID; // the id of the service involved
       function AlarmInfoClass()
         {// make sure all variables exist
         $this->HistoryID=0;
         $this->AlarmState=0;
         $this->Status=0;
         $this->Type=0;
         $this->MachineID=0;
         $this->New=FALSE;
         $this->ID=0;
         $this->ServiceID=0;
         }
       };

   class ActionResultClass
      {
      var $ServiceID;
      var $MonitoredMachineID;
      var $Result;  
      function ActionResultClass()
         {
         $this->ServiceID=0;
         $this->MonitoredMachineID=0;
         $this->Result = 0;
         }
      };

-------------------------------------------------------------
the web page output.
--------------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//SoftQuad Software//DTD HoTMetaL PRO 
6.0::19990601::extensions to HTML 4.0//EN" "hmpro6.dtd"> <HTML>    <HEAD>          
<TITLE>MoM execution test page</TITLE>          <META HTTP-EQUIV="Content-Type" 
CONTENT="text/html; charset=iso-8859-1">    </HEAD>    <BODY BGCOLOR="#FFFFFF">        
 <H1 ALIGN="center"><FONT FACE="Arial, Helvetica, sans-serif"           
SIZE="+7">MoM</FONT></H1>        <P>  <BR>

<!--global.c-->
<!--momfuncs.c-->
  <!--readconf.c-->
<!--setupfn.c-->
 <!--momact.c-->
GetServiceInfo: No value for $MMValue->FKServiceID<BR>
GetTestActionInfo(0,0,Resource id #2): No value for FKServiceID<BR>
Error in Database!! No Service Entries scanned!<BR>
----->defining debug in file mom.c at line 226<BR>
<BR><B>Function==MonitorMachines file momact.c line 323</B><BR>
walking MonitoredMachineArray<BR>
<BR><B>Function==RunTestAction(0, 0): file momact.c line 139</B><BR>
RunTestAction: No value for $MMValue->FKServiceID in file momact.c, line 146<BR>
<BR><B>Function==RunTestAction(Object, 2): file momact.c line 139</B><BR>
<BR><B>Function==RunAction(4,2) file momact.c line 71</B><BR>
Running PHP Command String<BR>
$ExecString="echo "Test Sendmail!<BR>n";  return(SUCCESS);"<BR>
Test Sendmail!<BR>
$Result="1"<BR>
$TestActionResult["4"]=RunAction($ActionID,$MMKey)<BR>$ActionID = 4<BR>
-----------------------<BR>
For Object 'TesActionResult':<BR>
ServiceID -> 1<BR>
MonitoredMachineID -> 2<BR>
Result -> 1<BR>
-----------------------<BR>
<BR>walking TestActionArray<BR>
<BR><B>Function==CheckTestActionResult(0,0) file momact.c line 198</B><BR>
Key 0 not used<BR>
<BR><B>Function==CheckTestActionResult(Object,4) file momact.c line 198</B><BR>
key 4 for object Object
<BR>-----------------------<BR>
For Object 'ActionResult ($ARValue)':<BR>
ServiceID -> 1<BR>
MonitoredMachineID -> 2<BR>
Result -> 1<BR>
-----------------------<BR>
new action result!<BR>
$Alarm was NOT set<BR>
-----------------------<BR>
For Object 'ActionResult':<BR>
ServiceID -> 1<BR>


''''''''''''''''''''''''''''''''''
web page ended at last line before blank line
''''''''''''''''''''''''''''''''



function CheckTestActionResult($ARValue,$ARKey)
{
   global $MySQLConfig; // the mysql configurationinfo
   global $AlarmType;
   global $StatusType;
   global $Service;
   global $Alarm;
   global $LastActionResult;
   global $LastAlarm;     
   global $TestActionResult;

  if (defined("DEBUG"))
     print("<BR><B>Function==CheckTestActionResult($ARValue,$ARKey) file ".__FILE__." 
line ".__LINE__."</B><BR>n"); 
  
  if ($ARKey == 0)
   {
   if (defined("DEBUG"))
      echo "Key 0 not used<BR>n";
   return;                        
   }
  else
   if (defined("DEBUG"))
      echo "key $ARKey for object $ARValuen<BR>";


  if (defined("DEBUG"))
   DisplayObject($ARValue,"ActionResult ($ARValue)");
  
   
  $DoWork = FALSE;


   
  if (!isset($LastActionResult["$ARKey"]))
      {
      if (defined("DEBUG"))
         echo "new action result!<BR>n";
      $DoWork = TRUE;//something has changed
      }
  else
      {
      if (defined("DEBUG"))
         echo "Check last action result<BR>n";
      if ($ARValue->Result != $LastActionResult["$ARKey"]->Result)
         {
         $DoWork = TRUE;
         $LastActionResult["$ARKey"] = $ARValue; // save the object
         }
      }

  if ($DoWork)// only do this if something changed
   {
   $AlarmObj = new AlarmInfoClass;         
   // pick up the status, if it exists
   if (isset($Alarm["$ARKey"]))
      {
      if (defined("DEBUG"))
         echo "$Alarm was set<BR>n";
      $LastAlarm["$ARKey"] = $Alarm["$RKey"];
      }
   else
      if (defined("DEBUG"))
         echo "$Alarm was NOT set<BR>n";

   DisplayObject($ARValue,"ActionResult");
   exit;
/*
 misc here 
*/
    }


------------------------
a gdb backtrace on windows???? can I do this????



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



ATTENTION! Do NOT reply to this email!
To reply, use the web interface found at http://bugs.php.net/?id=7984&edit=2


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to