[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference turris::ada

Title:DEC Ada
Notice:Ada is no longer a trademark of the US Government
Moderator:KMOOSE::CMCCUTCHEON
Created:Mon Jan 27 1986
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:3874
Total number of notes:16668

3860.0. "$setcluevt usage on AXP" by BRSSWS::SABLON (Mich�le Sablon, TP/IM Support Belgium 856-7238) Thu Apr 10 1997 11:46

I need help from someone knowing a bit of Ada. Which is not my case and there is
nobody here around that knows more about it !

The program here below try to set up an AST for a Cluster Event "ADD Node" using
the system service $setcluevt. The customer complains that it causes system
crash: the program is running on node A but as soon as a new node B becomes
Clustermember, Node A crashes !!

I didn't find any error report about $setcluevt. In my searches, I just collect
a remark about some difference between VAX and AXP in the implementation of the
passing mecanisms for AST (call without stack unwinding) and about the fact that
Ada does not provide mecanism by default. I didn't find any example I would be
able to compare to customer program.

So can anybody check that this program is properly written and that their is not
programming error into it ?

Thanks in advance,
Mich�le.
T.RTitleUserPersonal
Name
DateLines
3860.1... and the programBRSSWS::SABLONMich�le Sablon, TP/IM Support Belgium 856-7238Thu Apr 10 1997 12:0565
Exit to quickly. Below the ADA Program.

---------------------------------------------------------------
with System, Starlet, Condition_Handling, Text_Io;

procedure Test_Setcluevt is

   use Text_Io;

   package St renames Starlet;
   package Sy renames System;
   package Ch renames Condition_Handling;

   Setcluevt_Error : exception;

   task type AST_HANDLER is
      entry Trans_add;
      pragma Ast_Entry(Trans_add);
      entry Start;
   end AST_HANDLER;

   type AST_HANDLER_p is access AST_HANDLER;


   task body AST_HANDLER is

      Status : Ch.COND_VALUE_TYPE;

   begin
      loop
  select

     accept Trans_add
     do
        Put_Line("Cluster node add...");
     end Trans_add;
  or
     accept Start
     do
        St.setCluevt
  (Status => Status,
   Event  => St.Cluevt_C_Add,
   Astadr => AST_HANDLER.Trans_add'Ast_Entry);
        if not Ch.Success(Status)
        then
    raise Setcluevt_Error;
        end if;
        Put_Line("Setup SetCluEvt AST ...");
     end Start;
  end select;
      end loop;
   end AST_HANDLER;

begin
   declare
      Ast : AST_HANDLER_p := new AST_HANDLER;
   begin
      Ast.Start;
      loop
  delay 1000.0;
      end loop;
   end;

end Test_Setcluevt;
---------------------------------------------------------------
3860.2Nothing wrong with your exampleTAEC::URSCHFri Apr 11 1997 04:3710
Hello,

If it is an OpenVMS crash, I would advise first to analyze
the crash dump. This kind of Ada example should not lead to
a OpenVMS crash.

Beside, there is nothing obviously wrong in your example,
as far as I can see.

Jean-Michel
3860.3ThanksBACHUS::SABLONMich�le Sablon, TP/IM Support Belgium 856-7238Fri Apr 11 1997 04:537
Thanks, Jean-Michel.

If the Ada code seems ok, I'll escalate it to VMS. And I agree with you, even in
case or programming error, it shouldn't crash the system.

Thanks in any case,
Mich�le.
3860.4Another idea; see if a C program also crashesKMOOSE::CMCCUTCHEONCharlie McCutcheonFri Apr 11 1997 10:0311
Another suggestion.

Try rewritting in C.  I've seen cases where other groups will try to blame
Ada if the program is written in Ada.  A problem written in C will not
get questioned...  ;-)

I doubt Ada  adds any overhead to this program that can make the
system crash.  And, if we do, its still a bug, since an Ada program
in sytsem mode shouldn't be able to crash a system!

Charlie
3860.5$setcluevt's fault !BACHUS::SABLONMich�le Sablon, TP/IM Support Belgium 856-7238Fri Apr 11 1997 12:332
I've created a C program and test it: it let the system crash also !
Yipee!
3860.6it worked OK on one systemFLOYD::YODERMFYFri Apr 11 1997 17:002
For what it's worth, the program worked when I tried it on DECADA running AVMS
V7.0.  Be sure to report which versions of VMS were being run on node A and B...