From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,88cb7446cf44556a X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news3.google.com!news.glorb.com!news-in.ntli.net!newsrout1-win.ntli.net!ntli.net!news.highwinds-media.com!newspeer1-win.ntli.net!newsfe6-win.ntli.net.POSTED!53ab2750!not-for-mail From: "Dr. Adrian Wrigley" Subject: Re: Reliability and deadlock in Annex E/distributed code User-Agent: Pan/0.14.2 (This is not a psychotic episode. It's a cleansing moment of clarity.) Message-Id: Newsgroups: comp.lang.ada References: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Date: Tue, 12 Sep 2006 20:40:16 GMT NNTP-Posting-Host: 82.10.238.153 X-Trace: newsfe6-win.ntli.net 1158093616 82.10.238.153 (Tue, 12 Sep 2006 21:40:16 BST) NNTP-Posting-Date: Tue, 12 Sep 2006 21:40:16 BST Organization: NTL Xref: g2news2.google.com comp.lang.ada:6567 Date: 2006-09-12T20:40:16+00:00 List-Id: Thanks for the reply! On Mon, 11 Sep 2006 18:52:56 +0000, Jerome Hugues wrote: > In article , Dr. Adrian Wrigley wrote: > >> There are three partitions A, B, C >> The program starts up normally. >> A procedure (in a normal unit) in partition C calls a function (in a >> normal package) in partition B (using dynamic dispatch on a remote access >> to class-wide type). The function in partition B calls a function (in a >> rci package) in partition A The function in partition A never executes, >> and the program stops executing. > >> It's as if there is some deadlock or shortage of tasks to allocate >> or something. >> >> Any ideas? > > How many application tasks do you have on each node ? did you > configure a task pool for each node ? (just to check you do not run > out of task) I have about two or three. I have configured a task pool. I don't think running out of tasks causes the problem, although it may trigger later failures, since each time execution hangs, tasks are retained. In another reply to this thread, I give example code which behaves unexpectedly on GNAT GPL 2006. >> I've tried building PolyORB from https://libre2.adacore.com/ but it >> seems to be missing the src/dsa directory needed to support Annex E. >> If I get the version from cvs, it gets the error "raised >> RTSFIND.RE_NOT_AVAILABLE : rtsfind.adb:497". What's the best way to >> build the DSA personality? > > Short answer: waiting for an AdaCore annoucement stating it is ready ;) I heard for a year or two that PolyORB supports DSA. But the whole shizophrenic middleware thing confuses me, so I haven't paid much attention before. > Long answer: DSA requires that GNAT, GLADE (gnatdist) and PolyORB > versions are consistent. So getting it from CVS expose you to > problems. > > AFAICT, the error you see means expanded code references an entity > that does not exist. It is the symptom of a strong inconsistency > between the compiler and the PCS. The PolyORB CVS suggests that GNAT GPL 2006 is suitable, but the change log implies that there is still significant turmoil in the code base. >> If I used the DSA personality from PolyORB, will it be any different >> from the GARLIC PCS? Might it be more/less robust? faster? > > Lots of new configuration options, new protocols. I'd like to see some clear examples of what real problems the tool can solve. How do I know when to use MOMA, SOAP, GIOP etc? The DSA "application personality" seems the easiest to integrate into existing Ada applications, but I have no experience of any of the "protocol personalities" to choose between them. What matters to me most at the moment is being able to make calls between partitions absolutely reliably, with confidence that partitions will start and stop when expected. As soon as partitions go AWOL, not terminating or not starting, hopes of a robust system fade :( -- Adrian