From ialgora@indra.es  Thu May 10 05:25:12 2007
From: Inma Algora <ialgora@indra.es>
Date: Thu, 10 May 2007 01:25:09 -0400
Subject: [G510-007] #1221 Corba function hangs
Content-Type: text/plain ; charset="us-ascii"
To: report@adacore.com
CC: poalvarez@indra.es, jhmartin@indra.es, Julin Prez <jpmateos@indra.es>, 
  jjgperez@indra.es, Raul Castellano <rcastellano@indra.es>
Message-ID: <20070510092509.4DE7033C52@plym.gnat.com>
Status: O
Content-Length: 7527
Lines: 99

Priority: Normal
Platform: Tru64
Version: PolyORB 2.2

We have sometimes a hang of a Corba call. We are not able to reproduce that with an example, but we see a strange behavior with the debugger. It seems that while a client is making a call to a servant, the client receives a call of another process and it is attended by the same thread (or task). We send you the debugger information:

(gdb) info task
  ID       TID P-ID Pri Stack  % State                  Name
   1 140af0400    0  30  Unknown Delay Sleep            main_task
   2 140b1d000    1  30    2M  0 Accept Statement       hangup
   3 140ca0c00    1  30  144K  2 Accept Statement       tarea_ult_mensaje
   4 140ca8800    1  30    2M  0 Waiting on RV with 5   tarea_refresca_log
   5 140ca9400    1  30    2M  0 Accept Statement       t_tareas_log(1)
   6 140caf800    1  30    2M  0 Waiting on RV with 7   tarea_refresca_log
   7 140cb0400    1  30    2M  0 Accept Statement       t_tareas_log(2)
   8 140cc8c00    1  30    1M  2 Waiting on RV with 32  gt
   9 140cd7000    1  30    1M  2 Waiting on RV with 32  gt
  10 140cd7c00    1  30    1M  2 Waiting on RV with 32  gt
  11 140cde000    1  30    1M  2 Waiting on RV with 32  gt
  12 14100ec00    1  30    2M  0 Waiting on RV with 13  tarea_refresca_log
  13 141017000    1  30    2M  0 Accept Statement       t_tareas_log(3)
  14 141017c00    1  30   80K  5 Accept Statement       supervisa_conexiones
  15 141021000    1  30  112K  0 Runnable               tarea_mensaje
  16 141021c00    1  30    2M  0 Waiting on RV with 17  tarea_refresca_log
  17 141028000    1  30    2M  0 Accept Statement       t_tareas_log(4)
  18 1410b2c00    1  30    2M  0 Waiting on RV with 19  tarea_refresca_log
  19 1410b6000    1  30    2M  0 Accept Statement       t_tareas_log(5)
  20 1410b6c00    1  30    2M  0 Accept Statement       task_sup
  21 141059000    1  30    1M  0 Accept Statement       sends_task
  22 141111000    1  30    1M  0 Accept Statement       sends_task_l11
  23 1410da000    1  30    1M  0 Accept Statement       sends_task_l16
  24 1410d5000    1  30    1M  0 Accept Statement       sends_task
  25 1410d8c00    1  30    1M  0 Accept Statement       type_task_sup_handlers
  26 1410c8000    1  30    2M  0 Accept Statement       type_task_cym_control
  27 1410e7400    1  30    1M  0 Delay Sleep            type_task_connection
  28 141108000    1  30    1M  0 Accept Statement       type_task_sup_handlers
  29 1410c3000    1  30    1M  2 Accepting RV with 32   sends_task
  30 141112c00    1  30    1M  0 Accept Statement       sends_task
  31 141083800    1  30    1M  0 Delay Sleep            type_task_connection
  32 1410fa000    1  30    1M  0 Accepting RV with 8    type_task_udp_sends
  33 141084400    1  30    1M  0 Accept Statement       type_task_sup_handlers
  34 141100000    1  30    2M  0 Accept Statement       type_task_console_control
  35 1410d2000    1  30    1M  0 Runnable               type_task_connection
  36 1410d2c00    1  30    1M  2 Waiting on RV with 32  gt
  37 141124800    1  30    1M  2 Waiting on RV with 32  gt
  38 141125400    1  30  376K  1 Waiting on RV with 15  task_common_db_updates
  39 141133800    1  30    1M  0 Runnable               type_task_connection
  40 14113ec00    1  30    1M  0 Runnable               type_task_connection
(gdb) task 29
[Switching to task 29]
#8  0x00000001224401dc in gcslservice.impl.set_l16_net_status (self=0x3000227a76c, net_status=, <selfF>=1090587112)
    at /home/arsl16i/rpc/src/adp/gcsl/interface/gcslservice-impl.adb:115
115                 Control_UDP.get_Task_Control.send_Net_Status_L16(Net_Status);
(gdb) backtrace
#0  0x000003ff805c558c in __hstTransferRegistersPC () from /usr/shlib/libpthread.so
#1  0x000003ff805b35d8 in __osTransferContext () from /usr/shlib/libpthread.so
#2  0x000003ff805a4bb4 in __dspDispatch () from /usr/shlib/libpthread.so
#3  0x000003ff805a3f10 in __cvWaitPrim () from /usr/shlib/libpthread.so
#4  0x000003ff805a134c in __pthread_cond_wait () from /usr/shlib/libpthread.so
#5  0x000003ffbfd25f58 in system.tasking.entry_calls.wait_for_completion () at s-taenca.adb:1
#6  0x000003ffbfd31390 in system.tasking.rendezvous.call_synchronous () at s-tasren.adb:1
#7  0x000003ffbfd2df2c in system.tasking.rendezvous.call_simple () at s-tasren.adb:1
#8  0x00000001224401dc in gcslservice.impl.set_l16_net_status (self=0x3000227a76c, net_status=, <selfF>=1090587112)
    at /home/arsl16i/rpc/src/adp/gcsl/interface/gcslservice-impl.adb:115
#9  0x0000000122443e38 in gcslservice.impl.send_actions_vector (self=0x100229e3b0, actions_vector=, <selfF>=1091496456)
    at /home/arsl16i/rpc/src/adp/gcsl/interface/gcslservice-impl.adb:327
#10 0x000000012239efbc in gcslservice.skel.invoke (self=0x300422ab7e8, request=0x0)
    at /home/arsl16i/rpc/src/adp/gcsl/interface/gcslservice-skel.adb:605
#11 0x000000012295667c in portableserver.invoke (self=0x141010980, request=0x1410c7000, <selfF>=0) at portableserver.adb:241
#12 0x00000001229562d0 in portableserver.default_invoke (servant=0x20000a0f340, request=0x1410c3080, profile=0x0, <servantF>=1091496520)
    at portableserver.adb:107
#13 0x0000000122956374 in portableserver.execute_servant (self=0x141010980, msg=, <selfF>=0) at portableserver.adb:172
#14 0x00000001228de3f4 in corba.impl.execute_servant (self=0x20000a0f340, msg=, <selfF>=0) at corba-impl.adb:58
#15 0x0000000122a53044 in polyorb.poa_policies.thread_policy.orb_ctrl.handle_request_execution (self=0x20000a0f340, msg=, 
    requestor=0x20000a0f340, <selfF>=1091496520) at polyorb-poa_policies-thread_policy-orb_ctrl.adb:114
#16 0x0000000122a51fd0 in polyorb.servants.handle_message (s=0x20000a0f340, msg=, <sF>=0) at polyorb-servants.adb:74
#17 0x0000000122a11f54 in polyorb.components.emit (port=0x140aceed8, msg=) at polyorb-components.adb:81
#18 0x0000000122aaf528 in polyorb.orb.run_request (j=0x141134df0, <jF>=1091317888) at polyorb-orb.adb:1068
#19 0x0000000122ac0614 in polyorb.orb.thread_pool.handle_request_execution (p=0x20000a0f340, orb=0x140cc8240, rj=0x141134df0, 
    <pF>=1091496520, <rjF>=0) at polyorb-orb-thread_pool.adb:210
#20 0x0000000122aaf224 in polyorb.orb.run (j=0x141134df0, <jF>=56471104) at polyorb-orb.adb:936
#21 0x0000000122aae054 in polyorb.orb.run (orb=0x140cc8240, exit_condition=, may_poll=true, <orbF>=0) at polyorb-task_info.adb:292
#22 0x0000000122aaa408 in polyorb.requests.invoke (self=0x1410c6194, invoke_flags=1091317888) at polyorb-requests.adb:179
#23 0x0000000122910a00 in corba.request.default_invoke (request=0x1410c6000, flags=0) at corba-request.adb:134
#24 0x000000012118211c in missionservice.get_mission_parameters (self=, extrapolated_time=0.0)
    at /home/arsl16i/rpc/src/adp/mission/interface/missionservice.adb:1220
#25 0x000000012262fcb8 in <p_mission_sends__type_sends_task__L_1__B389b__get_mission_parametersA.2> ()
    at /home/arsl16i/rpc/src/adp/gcsl/p_mission_sends.adb:118
#26 0x000000012263537c in p_mission_sends.type_sends_task (<_task>=0x300000000) at /home/arsl16i/rpc/src/adp/gcsl/p_mission_sends.adb:114
#27 0x000003ffbfd33358 in system.tasking.stages.task_wrapper () at s-tassta.adb:1


-----------

Notice that our client calls to the servant in the frame 24, and the same task receives a request in the frame 19 without finishing the previous call.

We ensure that all the data is initialized but this continues happening, very randomly. We suppose that it is an issue of the use of functions, because it always happens calling a function, never when calling a procedure.

Best regards.

From report@adacore.com  Thu May 10 05:25:14 2007
From: report@adacore.com
Date: Thu, 10 May 2007 01:25:13 -0400
Subject: Re:  [G510-007] #1221 Corba function hangs
Content-Type: text/plain ; charset="us-ascii"
To: Inma Algora <ialgora@indra.es>
CC: report@adacore.com ,  poalvarez@indra.es, jhmartin@indra.es, Julin Prez 
  <jpmateos@indra.es>,  jjgperez@indra.es, Raul Castellano <rcastellano@indra.es>
In-Reply-To: <20070510092509.4DE7033C52@plym.gnat.com>
References: <20070510092509.4DE7033C52@plym.gnat.com>
Message-ID: <20070510092513.4AAB948CDCE@nile.gnat.com>
Status: O
Content-Length: 347
Lines: 12

[Automatic message from GNAT report ticket mechanism]

Dear customer,

Your report has been automatically assigned ticket number [G510-007].
Please be sure to put this number in the subject line of any
subsequent followup message. Messages from us on this report will
quote this ticket number.

Thank you for using GNAT.

-- The GNAT support team

From charlet@gnat.com  Thu May 10 05:26:02 2007
From: charlet@gnat.com
To: file@gnat.com
Subject: [bugtool:G510-007] Corba function hangs - assigned to quinot
Message-ID: <20070510092601.C548248CDCE@nile.gnat.com>
Date: Thu, 10 May 2007 05:26:01 -0400 (EDT)
Status: O
Content-Length: 34
Lines: 1

Reassigned from: ????? to: quinot

From quinot@gnat.com  Thu May 10 06:22:16 2007
From: quinot@gnat.com
To: file@gnat.com
Subject: [bugtool:G510-007] PolyORB: function call hangs - descr changed
Message-ID: <20070510101041.DCAA233C52@plym.gnat.com>
Date: Thu, 10 May 2007 06:10:41 -0400 (EDT)
Status: O
Content-Length: 82
Lines: 2

Description changed from: Corba function hangs
  to: PolyORB: function call hangs

From quinot@adacore.com  Thu May 10 09:57:42 2007
Date: Thu, 10 May 2007 15:56:14 +0200
From: Thomas Quinot <quinot@adacore.com>
To: Inma Algora <ialgora@indra.es>
CC: report@adacore.com, poalvarez@indra.es, jhmartin@indra.es,  =?iso-8859-1?q?Juli=E1n_P=E9rez?= 
  <jpmateos@indra.es>, jjgperez@indra.es, Raul Castellano <rcastellano@indra.es>
Subject: Re: [G510-007] #1221 Corba function hangs
Message-ID: <20070510135614.GA43240@melamine.cuivre.fr.eu.org>
References: <20070510092509.4DE7033C52@plym.gnat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
In-Reply-To: <20070510092509.4DE7033C52@plym.gnat.com>
Status: O
Content-Length: 1171
Lines: 22

* Inma Algora, 2007-05-10 :

> We have sometimes a hang of a Corba call. We are not able to reproduce that with an example, but we see a strange behavior with the debugger. It seems that while a client is making a call to a servant, the client receives a call of another process and it is attended by the same thread (or task). We send you the debugger information:

Thanks for resubmitting this ticket, this is helpful. It is expected
that a task waiting for an outbound method call to return might process
incoming calls in the meantime. (One way of avoiding that is to use the
Thread_Per_Session tasking policy instead of Thread_Pool).

> #7  0x000003ffbfd2df2c in system.tasking.rendezvous.call_simple () at s-tasren.adb:1
> #8  0x00000001224401dc in gcslservice.impl.set_l16_net_status (self=0x3000227a76c, net_status=, <selfF>=1090587112)

It seems that your servant makes a blocking rendez-vous call here. One
thing you should check here is whether there is a task currently waiting
on the relevant entry.

Regards,
Thomas Quinot.

-- 
Thomas Quinot, Ph.D. ** quinot@adacore.com ** Senior Software Engineer
               AdaCore -- Paris, France -- New York, USA

From quinot@adacore.com  Thu May 10 09:59:10 2007
Date: Thu, 10 May 2007 15:58:03 +0200
From: Thomas Quinot <quinot@adacore.com>
To: distsys@adacore.com
Subject: Re: [G510-007] #1221 Corba function hangs
Message-ID: <20070510135803.GB43240@melamine.cuivre.fr.eu.org>
References: <20070510092509.4DE7033C52@plym.gnat.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
In-Reply-To: <20070510092509.4DE7033C52@plym.gnat.com>
Status: O
Content-Length: 803
Lines: 15

* Inma Algora, 2007-05-10 :

> We have sometimes a hang of a Corba call. We are not able to reproduce that with an example, but we see a strange behavior with the debugger. It seems that while a client is making a call to a servant, the client receives a call of another process and it is attended by the same thread (or task). We send you the debugger information:

I think it would be good if we had a means of preventing that, i.e. an
ORB controller setting that would prevent Schedule_Task from scheduling
a request execution on a transient task (and possibly the same for i/o
operations, though this is less critical as in PolyORB this is never
blocking).

Thomas.

-- 
Thomas Quinot, Ph.D. ** quinot@adacore.com ** Senior Software Engineer
               AdaCore -- Paris, France -- New York, USA

From ialgora@indra.es  Thu May 10 10:54:20 2007
From: Inma Algora <ialgora@indra.es>
Date: Thu, 10 May 2007 18:54:18 0200
Subject: Re: [G510-007] Re: Corba function hangs
Content-Type: text/plain ; charset="us-ascii"
To: Thomas Quinot <quinot@adacore.com>
CC: report@adacore.com, poalvarez@indra.es, Inma Algora <ialgora@indra.es>, 
  jhmartin@indra.es, Julin Prez <jpmateos@indra.es>, jjgperez@indra.es, Raul 
  Castellano <rcastellano@indra.es>
In-Reply-To: <20070510135614.GA43240@melamine.cuivre.fr.eu.org>
References: <20070510135614.GA43240@melamine.cuivre.fr.eu.org>  <20070510092509.4DE7033C52@plym.gnat.com>
Message-ID: <20070510145418.C074D164E11@province.act-europe.fr>
Status: O
Content-Length: 1140
Lines: 11

> It is expected that a task waiting for an outbound method call to return might process incoming calls in the meantime. (One way of avoiding that is to use the Thread_Per_Session tasking policy instead of Thread_Pool).

If we use Thread_Per_Session tasking policy we receive a STORAGE_ERROR when trying to register our servant objects in the naming service. Could it happen because our processes are servants and clients at the same time?

If we use Thread_Per_Request tasking policy it seems that it does not hang. Is there any known problem by using that policy (memory leaks, performance...)? We see with the debugger hundreds of "gt" tasks terminated when using this tasking policy.

> It seems that your servant makes a blocking rendez-vous call here. One thing you should check here is whether there is a task currently waiting on the relevant entry.

OK, it is possible that this process locks some shared resource while making his corba call, and another incoming call get locked in that resource generating a dead-lock. This happens by an undesired behaviour (at least for us) of the tasks, we did not expect that.

Best Regards.

From quinot@adacore.com  Mon May 14 06:54:50 2007
Date: Mon, 14 May 2007 12:52:01 +0200
From: Thomas Quinot <quinot@adacore.com>
To: Inma Algora <ialgora@indra.es>
CC: report@adacore.com, poalvarez@indra.es, jhmartin@indra.es,  =?iso-8859-1?q?Juli=E1n_P=E9rez?= 
  <jpmateos@indra.es>, jjgperez@indra.es, Raul Castellano <rcastellano@indra.es>
Subject: Re: [G510-007] Re: Corba function hangs
Message-ID: <20070514105201.GA31474@melamine.cuivre.fr.eu.org>
References: <20070510135614.GA43240@melamine.cuivre.fr.eu.org> <20070510092509.4DE7033C52@plym.gnat.com> 
 <20070510145418.C074D164E11@province.act-europe.fr>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
In-Reply-To: <20070510145418.C074D164E11@province.act-europe.fr>
Status: O
Content-Length: 1448
Lines: 24

* Inma Algora, 2007-05-10 :

> > It is expected that a task waiting for an outbound method call to return might process incoming calls in the meantime. (One way of avoiding that is to use the Thread_Per_Session tasking policy instead of Thread_Pool).
> 
> If we use Thread_Per_Session tasking policy we receive a STORAGE_ERROR when trying to register our servant objects in the naming service. Could it happen because our processes are servants and clients at the same time?

The Storage_Error is not expected, needs investigation.

> If we use Thread_Per_Request tasking policy it seems that it does not hang. Is there any known problem by using that policy (memory leaks, performance...)? We see with the debugger hundreds of "gt" tasks terminated when using this tasking policy.

Thread_Per_Request is indeed very costly in terms of performances
because it creates a new task for every single incoming request.

> OK, it is possible that this process locks some shared resource while making his corba call, and another incoming call get locked in that resource generating a dead-lock. This happens by an undesired behaviour (at least for us) of the tasks, we did not expect that.

We agree that this is a desirable improvement and are looking for
possible solutions within PolyORB.

Best regards,
Thomas Quinot.

-- 
Thomas Quinot, Ph.D. ** quinot@adacore.com ** Senior Software Engineer
               AdaCore -- Paris, France -- New York, USA

From ialgora@indra.es  Mon May 14 11:46:40 2007
From: Inma Algora <ialgora@indra.es>
Date: Mon, 14 May 2007 07:46:33 -0400
Subject: Re: [G510-007] Re: Re: Corba function hangs
Content-Type: text/plain ; charset="us-ascii"
To: Thomas Quinot <quinot@adacore.com>
CC: report@adacore.com, poalvarez@indra.es, Inma Algora <ialgora@indra.es>, 
  jhmartin@indra.es, Julin Prez <jpmateos@indra.es>, jjgperez@indra.es, Raul 
  Castellano <rcastellano@indra.es>
In-Reply-To: <20070514105201.GA31474@melamine.cuivre.fr.eu.org>
References: <20070514105201.GA31474@melamine.cuivre.fr.eu.org>  <20070510135614.GA43240@melamine.cuivre.fr.eu.org> 
  <20070510092509.4DE7033C52@plym.gnat.com>  <20070510145418.C074D164E11@province.act-europe.fr>
MIME-Version: 1.0
Message-ID: <20070514154633.C9D8333C52@plym.gnat.com>
X-Act-Attachment: /gnat.dev/ada/gnatbugs/open/G510-007/prueba_session.zip (application/zip)
Status: O
Content-Length: 327
Lines: 7

> > If we use Thread_Per_Session tasking policy we receive a STORAGE_ERROR when trying to register our servant objects in the naming service. Could it happen because our processes are servants and clients at the same time?

> The Storage_Error is not expected, needs investigation.

We send you an easy example.

Best regards.

From dewar@gnat.com  Fri May 18 07:16:43 2007
From: dewar@gnat.com
To: file@gnat.com
Subject: [bugtool:G510-007] PolyORB: function call hangs - assigned to duff
Message-ID: <20070518111642.6551348CFEF@nile.gnat.com>
Date: Fri, 18 May 2007 07:16:42 -0400 (EDT)
Status: O
Content-Length: 33
Lines: 1

Reassigned from: quinot to: duff

From dewar@adacore.com  Fri May 18 07:18:09 2007
Message-ID: <464D8B6B.4040000@adacore.com>
Date: Fri, 18 May 2007 07:18:03 -0400
From: Robert Dewar <dewar@adacore.com>
MIME-Version: 1.0
To: Bob Duff <duff@adacore.com>, Automatic Filer <file@gnat.com>
CC: Thomas Quinot <quinot@adacore.com>
Subject: G510-007 reassigned to duff
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Status: O
Content-Length: 135
Lines: 3

since thomas is away. Bob can you provide at least
a "we got the example we are working on it" answer
or if possible something better?

From duff@gnat.com  Fri May 18 10:00:23 2007
From: duff@gnat.com
To: file@gnat.com
Subject: [bugtool:G510-007] PolyORB: function call hangs (files updated)
Message-ID: <20070518140021.D7C1248D12B@nile.gnat.com>
Date: Fri, 18 May 2007 10:00:21 -0400 (EDT)
Status: O
Content-Length: 366
Lines: 13

unpack example
Add       p_corba.adb
Add       p_corba.ads
Add       prueba.adb
Add       prueba_server-helper.adb
Add       prueba_server-helper.ads
Add       prueba_server-impl.adb
Add       prueba_server-impl.ads
Add       prueba_server-skel.adb
Add       prueba_server-skel.ads
Add       prueba_server.adb
Add       prueba_server.ads
Add       prueba_server.idl

From duff@adacore.com  Fri May 18 10:03:10 2007
From: Bob Duff <duff@adacore.com>
To: ialgora@indra.es
CC: report@adacore.com, dewar@adacore.com, poalvarez@indra.es, Inma Algora 
 <ialgora@indra.es>,  jhmartin@indra.es, Julin Prez <jpmateos@indra.es>, jjgperez@indra.es, 
 Raul  Castellano <rcastellano@indra.es>
In-Reply-To: <464D8B6B.4040000@adacore.com> (message from Robert Dewar on Fri, 
 18 May 2007 07:18:03 -0400)
Subject: Re: G510-007 reassigned to duff
References:  <464D8B6B.4040000@adacore.com>
Message-ID: <20070518140309.2FB8E48CF6D@nile.gnat.com>
Date: Fri, 18 May 2007 10:03:09 -0400 (EDT)
Status: O
Content-Length: 136
Lines: 8

Inma Algora wrote:

> We send you an easy example.

This is just to let you know that we got the example,
and are investigating.

- Bob

From duff@adacore.com  Fri May 18 11:31:54 2007
From: Bob Duff <duff@adacore.com>
To: ialgora@indra.es, report@adacore.com, dewar@adacore.com, poalvarez@indra.es, 
 ialgora@indra.es, jhmartin@indra.es, jpmateos@indra.es, jjgperez@indra.es, rcastellano@indra.es
In-Reply-To: <20070518140309.2FB8E48CF6D@nile.gnat.com> (message from Bob Duff 
 on Fri, 18 May 2007 10:03:09 -0400 (EDT))
Subject: Re: G510-007 PolyORB: function call hangs
References: <464D8B6B.4040000@adacore.com> <20070518140309.2FB8E48CF6D@nile.gnat.com>
Message-ID: <20070518152922.09F8F48D1E2@nile.gnat.com>
Date: Fri, 18 May 2007 11:29:22 -0400 (EDT)
Status: O
Content-Length: 282
Lines: 15

> Inma Algora wrote:
> 
> > We send you an easy example.
> 
> This is just to let you know that we got the example,
> and are investigating.

Could you please tell me how to run the "prueba" example (exactly what command
line to type)?

Also what output do you see?

Thanks.

- Bob

From duff@gnat.com  Fri May 18 11:31:57 2007
From: duff@gnat.com
To: file@gnat.com
Subject: [bugtool:G510-007] PolyORB: function call hangs - moved to hold
Message-ID: <20070518152935.E15A748D1E5@nile.gnat.com>
Date: Fri, 18 May 2007 11:29:35 -0400 (EDT)
Status: O
Content-Length: 32
Lines: 2

Moved from: open to: hold
Why: 

From duff@adacore.com  Fri May 18 15:19:38 2007
From: Bob Duff <duff@adacore.com>
To: hugues@adacore.com, quinot@adacore.com, file@adacore.com
In-Reply-To: <20070518152922.09F8F48D1E2@nile.gnat.com> (message from Bob Duff 
 on Fri, 18 May 2007 11:29:22 -0400 (EDT))
Subject: Re: G510-007 PolyORB: function call hangs
References: <464D8B6B.4040000@adacore.com> <20070518140309.2FB8E48CF6D@nile.gnat.com> 
 <20070518152922.09F8F48D1E2@nile.gnat.com>
Message-ID: <20070518191936.6FBFE48CBE7@nile.gnat.com>
Date: Fri, 18 May 2007 15:19:36 -0400 (EDT)
Status: O
Content-Length: 2786
Lines: 54

Jerome,

Maybe you can give me some help with this bug?  Thomas is on vacation.

Customer's program gets a SIGSEGV on this line:

      Get_Note (N.all, STI);

because N = null.  N comes from calling Get_Task_Info.
But Set_Task_Info is never called at run time.
The only call to Set_Task_Info is in PolyORB.ORB.Thread_Per_Session.Run.
I'm not sure exactly what's supposed to happen, here.

Do you have any hints for me?

Thanks.

Here's a traceback:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1211664720 (LWP 32430)]
0x0832c50d in polyorb.orb.thread_per_session.handle_request_execution (p=0x85df3f8, 
    orb=0x85e22d8, rj=0x8602808, <pF>=0, <rjF>=0)
    at /homes/duff/poly/1/polyorb/src/polyorb-orb-thread_per_session.adb:228
(gdb) bt
#0  0x0832c50d in polyorb.orb.thread_per_session.handle_request_execution (
    p=0x85df3f8, orb=0x85e22d8, rj=0x8602808, <pF>=0, <rjF>=0)
    at /homes/duff/poly/1/polyorb/src/polyorb-orb-thread_per_session.adb:228
#1  0x082c09fb in polyorb.orb.run (j=0x8602808, <jF>=0)
    at /homes/duff/poly/1/polyorb/src/polyorb-orb.adb:957
#2  0x082beaea in polyorb.orb.perform_work (orb=0x85e22d8, this_task=
          (kind => transient, id => (system.address) 0x85d5008, state => running, may_poll => true, abort_polling => false, exit_condition => 0x8602730, job => 0x8602808, selector => 0x0, timeout => 602651122.49201548, condition => 0x0, mutex => 0x0, position => (current => 0x0)), <orbF>=0) at /homes/duff/poly/1/polyorb/src/polyorb-orb.adb:289
#3  0x082bf321 in polyorb.orb.run (orb=0x85e22d8, exit_condition=
      (condition => 0x8602730, task_info => 0x8602734), may_poll=true, <orbF>=0)
    at /homes/duff/poly/1/polyorb/src/polyorb-orb.adb:417
#4  0x0834638f in polyorb.requests.invoke (self=0x8602678, invoke_flags=0)
    at /homes/duff/poly/1/polyorb/src/polyorb-requests.adb:179
#5  0x080714b8 in corba.request.default_invoke (request=0x8602678, flags=0)
    at /homes/duff/poly/1/polyorb/src/corba/corba-request.adb:134
#6  0x0806d2ea in corba.object.rpc_is_a (self=
        (prev => 0x0, next => 0xbfa08db4, a_ref => 0x86024c0), 
    logical_type_id=0x84ce380)
    at /homes/duff/poly/1/polyorb/src/corba/corba-object.adb:184
#7  0x0806df3d in corba.object.is_a (self=
        (prev => 0x0, next => 0xbfa08db4, a_ref => 0x86024c0), 
    logical_type_id=0x84ce380)
    at /homes/duff/poly/1/polyorb/src/corba/corba-object.adb:303
#8  0x081d1d1b in cosnaming.namingcontext.helper.to_ref (the_ref=
        (prev => 0x0, next => 0xbfa08db4, a_ref => 0x86024c0))
    at /homes/duff/poly/1/build/idls/cos/naming/cosnaming-namingcontext-helper.adb:40
#9  0x0804f0e6 in p_corba.start_server_corba_object (obj=0x85fc018, name=0x85d0bc0)
    at p_corba.adb:180
#10 0x080693fe in prueba () at prueba.adb:33
(gdb) 

From ialgora@indra.es  Mon May 21 04:49:15 2007
From: Inma Algora <ialgora@indra.es>
Date: Mon, 21 May 2007 00:49:13 -0400
Subject: Re: [G510-007] Re: PolyORB: function call hangs
Content-Type: text/plain ; charset="us-ascii"
To: Bob Duff <duff@adacore.com>
CC: report@adacore.com, poalvarez@indra.es, Inma Algora <ialgora@indra.es>, 
  jhmartin@indra.es, Julin Prez <jpmateos@indra.es>, jjgperez@indra.es, dewar@adacore.com, 
  Raul Castellano <rcastellano@indra.es>
In-Reply-To: <20070518152922.09F8F48D1E2@nile.gnat.com>
References: <20070518152922.09F8F48D1E2@nile.gnat.com>  <464D8B6B.4040000@adacore.com> 
  <20070518140309.2FB8E48CF6D@nile.gnat.com>
Message-ID: <20070521084913.26B9F33C52@plym.gnat.com>
Status: O
Content-Length: 1246
Lines: 33

> Could you please tell me how to run the "prueba" example (exactly what command
> line to type)?

You can execute the "prueba" example typing "prueba hola hola2".

> Also what output do you see?

If you execute the example with No_Tasking_Server, the output is:
Comenzamos
Exception name: TASKING_ERROR
Message: polyorb-tasking-profiles-no_tasking-threads.adb:132
Call stack traceback locations:
0x12037e8d4 0x12037e054 0x1202e9ed0 0x1201ca52c 0x1201f501c 0x1201c63cc 0x1201c3e68


If you execute the example with Thread_Per_Session, the output is:
Comenzamos
Seguimos
Seguimos 2
polyorb.orb: ORB.Run got exception:
polyorb.orb: Exception name: STORAGE_ERROR
Message: s-intman.adb:150 explicit raise
Call stack traceback locations:
0x30000024cac 0x3ff800d9cf0 0x1203a4bac 0x1203a4c30 0x12042d258 0x12041b2b0 0x12041a0e0 0x120416494 0x12027ca8c 0x12027ecf4 0x12027fad8 0x1203184ac 0x1201cfcc4 0x1201fa56c 0x1201cb920 0x1201c9368

Exception name: STORAGE_ERROR
Message: s-intman.adb:150 explicit raise
Call stack traceback locations:
0x30000024cac 0x3ff800d9cf0 0x1203a4bac 0x1203a4c30 0x12042d258 0x12041b2b0 0x12041a0e0 0x120416494 0x12027ca8c 0x12027ecf4 0x12027fad8 0x1203184ac 0x1201cfcc4 0x1201fa56c 0x1201cb920 0x1201c9368



Best Regards.

From duff@adacore.com  Mon May 21 08:45:19 2007
From: Bob Duff <duff@adacore.com>
To: ialgora@indra.es
CC: report@adacore.com, poalvarez@indra.es, ialgora@indra.es, jhmartin@indra.es, 
 jpmateos@indra.es, jjgperez@indra.es, rcastellano@indra.es
In-Reply-To: <20070521084913.26B9F33C52@plym.gnat.com> (message from Inma Algora 
 on Mon, 21 May 2007 00:49:13 -0400)
Subject: Re: [G510-007] Re: PolyORB: function call hangs
References: <20070518152922.09F8F48D1E2@nile.gnat.com>  <464D8B6B.4040000@adacore.com> 
  <20070518140309.2FB8E48CF6D@nile.gnat.com> <20070521084913.26B9F33C52@plym.gnat.com>
Message-ID: <20070521124518.1C80448CC4A@nile.gnat.com>
Date: Mon, 21 May 2007 08:45:18 -0400 (EDT)
Status: O
Content-Length: 328
Lines: 13

Inma Algora wrote:

> Exception name: STORAGE_ERROR
> Message: s-intman.adb:150 explicit raise

OK, we get the same thing.  Thanks for verifying that.

This is a bug in PolyORB, because of a null pointer dereference.
(The Storage_Error is _not_ caused by running out of memory.)

We will let you know about our progress.

- Bob

From hugues@adacore.com  Mon May 21 08:58:51 2007
In-Reply-To: <20070518191936.6FBFE48CBE7@nile.gnat.com>
References: <464D8B6B.4040000@adacore.com> <20070518140309.2FB8E48CF6D@nile.gnat.com> 
 <20070518152922.09F8F48D1E2@nile.gnat.com> <20070518191936.6FBFE48CBE7@nile.gnat.com>
MIME-Version: 1.0 (Apple Message framework v752.3)
Content-Type: text/plain; charset=ISO-8859-1; delsp=yes; format=flowed
Message-ID: <A642CBDB-132C-4790-A27A-25948242C275@adacore.com>
CC: quinot@adacore.com, file@adacore.com
From: =?iso-8859-1?q?Hugues_J=E9r=F4me?=  <hugues@adacore.com>
Subject: Re: G510-007 PolyORB: function call hangs
Date: Mon, 21 May 2007 14:58:34 +0200
To: Bob Duff <duff@adacore.com>
Status: O
Content-Length: 2827
Lines: 87


Le 18 mai 07  21:19, Bob Duff a crit :

> Jerome,
>
> Maybe you can give me some help with this bug?  Thomas is on vacation.

I was also on vacation until this morning ;)

>
> Customer's program gets a SIGSEGV on this line:
>
>       Get_Note (N.all, STI);
>
> because N = null.  N comes from calling Get_Task_Info.
> But Set_Task_Info is never called at run time.
> The only call to Set_Task_Info is in  
> PolyORB.ORB.Thread_Per_Session.Run.
> I'm not sure exactly what's supposed to happen, here.
>
> Do you have any hints for me?

OK, here is a short analysis. Note that I have no idea why the user  
wants to use Thread_Per_Session, after
Pablo's patches, my feeling is that this policy is likely to  
serialize all requests, loosing advantages of the
concurrency in treatments. This should be tested.

Nevertheless, here is my analysis

* The user is using the Thread_Per_Session ORB policy
on a node that acts both as a client (emit requests) and a server  
(process them)

* This policy is defined so that only one thread may process incoming  
requests, to do so,
a dedicated thread is created for each new session, on the server  
side. Only this thread will process requests on this session
(here, session = a connection).

* Each ORB policy rewrites the Handle_Request_Execution procedure,  
that controls the way the request is handled.
The behavior for this policy is to redirect the request to the  
correct thread.

Hence the bug you see: on the client-side, there is no such thread,  
so the Get_Note call fails.
(you'll note that the Set_Note call is done during the start up phase  
of the server-side threads created when a connection is opened, see  
Handle_New_Server_Connection)

A solution is

- either to ban this setup

- or to test this patch (compiles fine, but not run on customer code)

--- polyorb-orb-thread_per_session.adb  (r?vision 62784)
+++ polyorb-orb-thread_per_session.adb  (copie de travail)
@@ -225,11 +225,19 @@
     begin
        pragma Debug (O ("Handle_Request_Execution : Queue Job"));
-      Get_Note (N.all, STI);
-      Add_Request
-        (STI,
-         Request_Info'(Job => PolyORB.ORB.Duplicate_Request_Job (RJ)));
+      if N /= null then
+         --  A thread has been created and is associated to handle
+         --  request execution, use it.
+         Get_Note (N.all, STI);
+         Add_Request
+           (STI,
+            Request_Info'(Job => PolyORB.ORB.Duplicate_Request_Job  
(RJ)));
+      else
+         --  Otherwise, use callee thread (e.g. case of a client call)
+
+         Run_Request (RJ);
+      end if;
     end Handle_Request_Execution;

The test is as follows: if there is no session-specific thread, then  
use the callee thread (default), this should be OK when on the client- 
side of the request, but needs further analysis.

-- 
Jerome

From duff@adacore.com  Mon May 21 09:35:56 2007
From: Bob Duff <duff@adacore.com>
To: hugues@adacore.com
CC: quinot@adacore.com, file@adacore.com
In-Reply-To: <A642CBDB-132C-4790-A27A-25948242C275@adacore.com> (message from 
  =?iso-8859-1?q?Hugues_J=E9r=F4me?=  on Mon, 21 May 2007 14:58:34 +0200)
Subject: Re: G510-007 PolyORB: function call hangs
References: <464D8B6B.4040000@adacore.com> <20070518140309.2FB8E48CF6D@nile.gnat.com> 
 <20070518152922.09F8F48D1E2@nile.gnat.com> <20070518191936.6FBFE48CBE7@nile.gnat.com> 
 <A642CBDB-132C-4790-A27A-25948242C275@adacore.com>
Message-ID: <20070521133554.B2F8048CBDF@nile.gnat.com>
Date: Mon, 21 May 2007 09:35:54 -0400 (EDT)
Status: O
Content-Length: 704
Lines: 17

Jerome,

> OK, here is a short analysis. Note that I have no idea why the user  
> wants to use Thread_Per_Session, after
> Pablo's patches, my feeling is that this policy is likely to  
> serialize all requests, loosing advantages of the
> concurrency in treatments. This should be tested.

As far as I can tell from the comment file, they want to use Thread_Pool, but
they had some problem with intermittent hangs.  Thomas suggested
Thread_Per_Session as a workaround, but that causes the null pointer deref we
are talking about.  They also tried Thread_Per_Request (works, but might be too
slow) and No_Tasking_Server (raises Tasking_Error).

Thanks for the help; I'll try out your suggestion.

- Bob

From duff@adacore.com  Tue May 22 11:20:20 2007
From: Bob Duff <duff@adacore.com>
To: hugues@adacore.com, quinot@adacore.com, file@adacore.com
Subject: Re: G510-007 PolyORB: function call hangs
Message-ID: <20070522152011.7BF8648CE99@nile.gnat.com>
Date: Tue, 22 May 2007 11:20:11 -0400 (EDT)
Status: O
Content-Length: 3914
Lines: 70

Jerome,

I recompiled PolyORB with checks turned on, and the customer's example fails
earlier.  This is with the patch you sent, but I think the patch is irrelevant,
because it fails before it gets to the modified code.  It fails on the
conversion to Session_Access, because RJ.Requestor has the wrong Tag:

   procedure Handle_Request_Execution
     (P   : access Thread_Per_Session_Policy;
      ORB :        ORB_Access;
      RJ  : access Request_Job'Class)
   is
      pragma Unreferenced (P, ORB);

      S   : constant Session_Access := Session_Access (RJ.Requestor);

> A solution is
> 
> - either to ban this setup

You mean the whole idea of having a node that acts as both client and server?
I'm not sure what to tell the customer in this case...

> - or to test this patch (compiles fine, but not run on customer code)

I'll keep working on this, but I'm feeling kind of lost at this point, so if
you have any ideas, please let me know.  Do you see any workaround we
should suggest to the customer?

Breakpoint 1, CONSTRAINT_ERROR at 0x084eba7e in polyorb.orb.thread_per_session.handle_request_execution (p=0x88018b8, orb=0x8809558, rj=0x88228d8, <pF>=0, <rjF>=0)
    at /homes/duff/poly/1/polyorb/src/polyorb-orb-thread_per_session.adb:222
(gdb) bt
#0  <__gnat_debug_raise_exception> (e=0x87dc878) at s-except.adb:44
#1  0x085994b7 in <__gnat_raise_nodefer_with_msg> (e=0x87dc878) at a-except.adb:830
#2  0x0859998e in ada.exceptions.raise_with_location_and_msg (e=0x87dc878, 
    f=(system.address) 0x86dd618, l=222, m=(system.address) 0x86e4e6f) at a-except.adb:995
#3  0x0859948a in <__gnat_raise_constraint_error_msg> (file=(system.address) 0x87dc878, 
    line=141415960, msg=(system.address) 0xde) at a-except.adb:795
#4  0x08599c44 in <__gnat_rcheck_13> (file=(system.address) 0x87dc878, line=141415960)
    at a-except.adb:1088
#5  0x084eba7e in polyorb.orb.thread_per_session.handle_request_execution (p=0x88018b8, 
    orb=0x8809558, rj=0x88228d8, <pF>=0, <rjF>=0)
    at /homes/duff/poly/1/polyorb/src/polyorb-orb-thread_per_session.adb:222
#6  0x084126b2 in polyorb.orb.run (j=0x88228d8, <jF>=0)
    at /homes/duff/poly/1/polyorb/src/polyorb-orb.adb:957
#7  0x0840d5be in polyorb.orb.perform_work (orb=0x8809558, this_task=
          (kind => transient, id => (system.address) 0x87f5008, state => running, may_poll => true, abort_polling => false, exit_condition => 0x8822800, job => 0x88228d8, selector => 0x0, timeout => 10518.517449184001, condition => 0x0, mutex => 0x0, position => (current => 0x0)), <orbF>=0) at /homes/duff/poly/1/polyorb/src/polyorb-orb.adb:289
#8  0x0840e70d in polyorb.orb.run (orb=0x8809558, exit_condition=
      (condition => 0x8822800, task_info => 0x8822804), may_poll=true, <orbF>=0)
    at /homes/duff/poly/1/polyorb/src/polyorb-orb.adb:417
#9  0x085169cb in polyorb.requests.invoke (self=0x8822748, invoke_flags=0)
    at /homes/duff/poly/1/polyorb/src/polyorb-requests.adb:179
#10 0x08074b03 in corba.request.default_invoke (request=0x8822748, flags=0)
    at /homes/duff/poly/1/polyorb/src/corba/corba-request.adb:134
#11 0x0806de83 in corba.object.rpc_is_a (self=
        (prev => 0x0, next => 0xbf9534e4, a_ref => 0x8822590), logical_type_id=0x86c8bc0)
    at /homes/duff/poly/1/polyorb/src/corba/corba-object.adb:184
#12 0x0806f265 in corba.object.is_a (self=
        (prev => 0x0, next => 0xbf9534e4, a_ref => 0x8822590), logical_type_id=0x86c8bc0)
    at /homes/duff/poly/1/polyorb/src/corba/corba-object.adb:303
#13 0x082788c7 in cosnaming.namingcontext.helper.to_ref (the_ref=
        (prev => 0x0, next => 0xbf9534e4, a_ref => 0x8822590))
    at /homes/duff/poly/1/build/idls/cos/naming/cosnaming-namingcontext-helper.adb:40
#14 0x0804f0e6 in p_corba.start_server_corba_object (obj=0x881bd68, name=0x87f0b60)
    at p_corba.adb:180
#15 0x080693fe in prueba () at prueba.adb:33
(gdb) RJ.Requestor'tag
$1 = 0x87d4ad4 (polyorb.orb.orb_type)

- Bob

From hugues@adacore.com  Tue May 22 13:56:56 2007
In-Reply-To: <20070522152011.7BF8648CE99@nile.gnat.com>
References: <20070522152011.7BF8648CE99@nile.gnat.com>
MIME-Version: 1.0 (Apple Message framework v752.3)
Content-Type: text/plain; charset=ISO-8859-1; delsp=yes; format=flowed
Message-ID: <92B97CFF-AE11-4936-819D-C1806202520E@adacore.com>
CC: quinot@adacore.com, file@adacore.com
From: =?iso-8859-1?q?Hugues_J=E9r=F4me?=  <hugues@adacore.com>
Subject: Re: G510-007 PolyORB: function call hangs
Date: Tue, 22 May 2007 19:56:39 +0200
To: Bob Duff <duff@adacore.com>
Status: O
Content-Length: 1017
Lines: 30


Le 22 mai 07  17:20, Bob Duff a crit :

>> A solution is
>>
>> - either to ban this setup
>
> You mean the whole idea of having a node that acts as both client  
> and server?
> I'm not sure what to tell the customer in this case...

no, banning the case where the customer uses Thread_Per_Sesison for a  
node that acts as both client/server.
Still, forget this idea for now, I think we can go on with this path.  
Let me review your mail more in depth

>
>> - or to test this patch (compiles fine, but not run on customer code)
>
> I'll keep working on this, but I'm feeling kind of lost at this  
> point, so if
> you have any ideas, please let me know.  Do you see any workaround we
> should suggest to the customer?

I need to find some time to reflect on this, I'll try in the evening  
(Paris time) and let you know.

Basically, my feeling at that point is that thread_per_session has a  
very flawed design that was never correctly tested :(
I think we need to completely review this. I'll keep you posted

From duff@adacore.com  Tue May 22 14:32:31 2007
From: Bob Duff <duff@adacore.com>
To: hugues@adacore.com
CC: quinot@adacore.com, file@adacore.com
In-Reply-To: <92B97CFF-AE11-4936-819D-C1806202520E@adacore.com> (message from 
  =?iso-8859-1?q?Hugues_J=E9r=F4me?=  on Tue, 22 May 2007 19:56:39 +0200)
Subject: Re: G510-007 PolyORB: function call hangs
References: <20070522152011.7BF8648CE99@nile.gnat.com> <92B97CFF-AE11-4936-819D-C1806202520E@adacore.com>
Message-ID: <20070522183230.6D5D148CEB0@nile.gnat.com>
Date: Tue, 22 May 2007 14:32:30 -0400 (EDT)
Status: O
Content-Length: 422
Lines: 14

> Basically, my feeling at that point is that thread_per_session has a  
> very flawed design that was never correctly tested :(

No wonder I'm confused.  ;-)

> I think we need to completely review this. I'll keep you posted

OK, thanks.

Note that the whole Thread_Per_Session thing was a proposed workaround in the
first place.  Maybe we should tell the customer to never mind about the
Thread_Per_Session idea?

- Bob

From hugues@adacore.com  Tue May 22 14:35:18 2007
In-Reply-To: <20070522183230.6D5D148CEB0@nile.gnat.com>
References: <20070522152011.7BF8648CE99@nile.gnat.com> <92B97CFF-AE11-4936-819D-C1806202520E@adacore.com> 
 <20070522183230.6D5D148CEB0@nile.gnat.com>
MIME-Version: 1.0 (Apple Message framework v752.3)
Content-Type: text/plain; charset=ISO-8859-1; delsp=yes; format=flowed
Message-ID: <FBC5D3DF-2927-4010-BECB-AB3A441859A7@adacore.com>
CC: quinot@adacore.com, file@adacore.com
From: =?iso-8859-1?q?Hugues_J=E9r=F4me?=  <hugues@adacore.com>
Subject: Re: G510-007 PolyORB: function call hangs
Date: Tue, 22 May 2007 20:35:06 +0200
To: Bob Duff <duff@adacore.com>
Status: O
Content-Length: 585
Lines: 19


Le 22 mai 07  20:32, Bob Duff a crit :

>> I think we need to completely review this. I'll keep you posted
>
> OK, thanks.
>
> Note that the whole Thread_Per_Session thing was a proposed  
> workaround in the
> first place.  Maybe we should tell the customer to never mind about  
> the
> Thread_Per_Session idea?

perhaps, but I need a full load of caffeine before telling everything  
to the customer. I dislike the idea of giving to many directions to  
the user, when all of them fails

PS:  I sometimes wonder why things like this always happen when  
Thomas is on vacation ;)

From charlet@ACT-Europe.FR  Tue May 22 14:58:16 2007
Date: Tue, 22 May 2007 20:58:11 +0200
From: Arnaud Charlet <charlet@adacore.com>
To: Hugues  =?iso-8859-1?q?J=E9r=F4me?=  <hugues@adacore.com>
CC: Bob Duff <duff@adacore.com>, quinot@adacore.com, file@adacore.com
Subject: Re: G510-007 PolyORB: function call hangs
Message-ID: <20070522185811.GA2853@adacore.com>
References: <20070522152011.7BF8648CE99@nile.gnat.com> <92B97CFF-AE11-4936-819D-C1806202520E@adacore.com> 
 <20070522183230.6D5D148CEB0@nile.gnat.com> <FBC5D3DF-2927-4010-BECB-AB3A441859A7@adacore.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
In-Reply-To: <FBC5D3DF-2927-4010-BECB-AB3A441859A7@adacore.com>
Status: O
Content-Length: 234
Lines: 7

> PS:  I sometimes wonder why things like this always happen when  
> Thomas is on vacation ;)

To be fair, things like this also happen when Thomas is around, but
since he handles these issues usually, you do not notice it :-)

Arno

From hugues@adacore.com  Tue May 22 15:11:53 2007
In-Reply-To: <20070522185811.GA2853@adacore.com>
References: <20070522152011.7BF8648CE99@nile.gnat.com> <92B97CFF-AE11-4936-819D-C1806202520E@adacore.com> 
 <20070522183230.6D5D148CEB0@nile.gnat.com> <FBC5D3DF-2927-4010-BECB-AB3A441859A7@adacore.com> 
 <20070522185811.GA2853@adacore.com>
MIME-Version: 1.0 (Apple Message framework v752.3)
Content-Type: text/plain; charset=ISO-8859-1; delsp=yes; format=flowed
Message-ID: <6D7FB197-9E5F-4354-B134-6878FD98E0E3@adacore.com>
CC: Bob Duff <duff@adacore.com>, quinot@adacore.com, file@adacore.com
From: =?iso-8859-1?q?Hugues_J=E9r=F4me?=  <hugues@adacore.com>
Subject: Re: G510-007 PolyORB: function call hangs
Date: Tue, 22 May 2007 21:11:37 +0200
To: Arnaud Charlet <charlet@adacore.com>
Status: O
Content-Length: 375
Lines: 13


Le 22 mai 07  20:58, Arnaud Charlet a crit :

>> PS:  I sometimes wonder why things like this always happen when
>> Thomas is on vacation ;)
>
> To be fair, things like this also happen when Thomas is around, but
> since he handles these issues usually, you do not notice it :-)

Probably ;)

Well, I almost got a hand on this bug, so things are almost under  
control ;)

From hugues@adacore.com  Tue May 22 15:23:50 2007
In-Reply-To: <20070522152011.7BF8648CE99@nile.gnat.com>
References: <20070522152011.7BF8648CE99@nile.gnat.com>
MIME-Version: 1.0 (Apple Message framework v752.3)
Content-Type: text/plain; charset=ISO-8859-1; delsp=yes; format=flowed
Message-ID: <35384161-37BD-483C-9108-56FBE970DA47@adacore.com>
CC: quinot@adacore.com, file@adacore.com
From: =?iso-8859-1?q?Hugues_J=E9r=F4me?=  <hugues@adacore.com>
Subject: Re: G510-007 PolyORB: function call hangs
Date: Tue, 22 May 2007 21:23:37 +0200
To: Bob Duff <duff@adacore.com>
Status: O
Content-Length: 2756
Lines: 79


Le 22 mai 07  17:20, Bob Duff a crit :

> Jerome,
>
> I recompiled PolyORB with checks turned on, and the customer's  
> example fails
> earlier.  This is with the patch you sent, but I think the patch is  
> irrelevant,
> because it fails before it gets to the modified code.  It fails on the
> conversion to Session_Access, because RJ.Requestor has the wrong Tag:
>
>    procedure Handle_Request_Execution
>      (P   : access Thread_Per_Session_Policy;
>       ORB :        ORB_Access;
>       RJ  : access Request_Job'Class)
>    is
>       pragma Unreferenced (P, ORB);
>
>       S   : constant Session_Access := Session_Access (RJ.Requestor);

OK, so my patch was not in effect ;)
Still, we are near the solution, please try this patch

It works on my side with a modified version of echo, I unfortunately  
lack time to test with customer's code, it is evening in Paris time :(


Basically, it does the following
1/ determine if we are a client or a server
2/ if client, use caller thread to process the request
3/ if server, use session's thread to process it

It should be sufficient for this policy

Index: polyorb-orb-thread_per_session.adb
===================================================================
--- polyorb-orb-thread_per_session.adb  (r?vision 62880)
+++ polyorb-orb-thread_per_session.adb  (copie de travail)
@@ -217,19 +217,33 @@
        ORB :        ORB_Access;
        RJ  : access Request_Job'Class)
     is
-      pragma Unreferenced (P, ORB);
+      pragma Unreferenced (P);
-      S   : constant Session_Access := Session_Access (RJ.Requestor);
-      N   : constant Notepad_Access := Get_Task_Info (S);
-      STI : Session_Thread_Info;
     begin
        pragma Debug (O ("Handle_Request_Execution : Queue Job"));
-      Get_Note (N.all, STI);
-      Add_Request
-        (STI,
-         Request_Info'(Job => PolyORB.ORB.Duplicate_Request_Job (RJ)));
+      if RJ.Requestor = Component_Access (ORB) then
+         --  Per PolyORB.ORB.Handle_Message, the request has been
+         --  queued by a client, meaning we are on the client-side. So
+         --  use client thread to send the request.
+         Run_Request (RJ);
+
+      else
+         declare
+            S   : constant Session_Access := Session_Access  
(RJ.Requestor);
+            N   : constant Notepad_Access := Get_Task_Info (S);
+            STI : Session_Thread_Info;
+         begin
+            --  A thread has been created and is associated to handle
+            --  request execution, use it.
+
+            Get_Note (N.all, STI);
+            Add_Request
+              (STI,
+               Request_Info'(Job =>  
PolyORB.ORB.Duplicate_Request_Job (RJ)));
+         end;
+      end if;
     end Handle_Request_Execution;
     ----------

From duff@adacore.com  Tue May 22 19:52:14 2007
From: Bob Duff <duff@adacore.com>
To: hugues@adacore.com
CC: file@adacore.com
In-Reply-To: <35384161-37BD-483C-9108-56FBE970DA47@adacore.com> (message from 
  =?iso-8859-1?q?Hugues_J=E9r=F4me?=  on Tue, 22 May 2007 21:23:37 +0200)
Subject: Re: G510-007 PolyORB: function call hangs
References: <20070522152011.7BF8648CE99@nile.gnat.com> <35384161-37BD-483C-9108-56FBE970DA47@adacore.com>
Message-ID: <20070522235212.B24BC48CBFB@nile.gnat.com>
Date: Tue, 22 May 2007 19:52:12 -0400 (EDT)
Status: O
Content-Length: 948
Lines: 34

Jerome,

> OK, so my patch was not in effect ;)
> Still, we are near the solution, please try this patch

OK, this patch seems to work.  Customer's example does:

Comenzamos
Seguimos
Seguimos 2
polyorb.utils.sockets: connect to 127.0.0.1:25099 failed: [111] Connection refused
Exception name: CORBA.COMM_FAILURE
Message: 00000000N

which I guess is expected.

I tried a mailserver, but everything is broken at the moment (see G522-028).
I will fix that ASAP.  But probably not in time for tonight's builds.

> It works on my side with a modified version of echo, I unfortunately  
> lack time to test with customer's code, it is evening in Paris time :(

Indeed.  Sleep well!  ;-)

> Basically, it does the following
> 1/ determine if we are a client or a server
> 2/ if client, use caller thread to process the request
> 3/ if server, use session's thread to process it
> 
> It should be sufficient for this policy

Yeah, that makes sense.

- Bob

From duff@adacore.com  Wed May 23 15:26:10 2007
From: Bob Duff <duff@adacore.com>
To: hugues@adacore.com
CC: file@adacore.com
In-Reply-To: <35384161-37BD-483C-9108-56FBE970DA47@adacore.com> (message from 
  =?iso-8859-1?q?Hugues_J=E9r=F4me?=  on Tue, 22 May 2007 21:23:37 +0200)
Subject: Re: G510-007 PolyORB: function call hangs
References: <20070522152011.7BF8648CE99@nile.gnat.com> <35384161-37BD-483C-9108-56FBE970DA47@adacore.com>
Message-ID: <20070523192602.C6EE448CEFF@nile.gnat.com>
Date: Wed, 23 May 2007 15:26:02 -0400 (EDT)
Status: O
Content-Length: 50835
Lines: 1094

Jerome,

> Still, we are near the solution, please try this patch

I tried to mailserve the patch below, which includes your patch, plus my patch
for G522-028.  It appears to be trying to compile parts of PolyORB when
compiling tests, which seems like a script problem.  I'll try it again
tomorrow, after the G522-028 changes are in.  Unless you have a better idea...

[polyorb]
Index: src/polyorb-orb-thread_per_session.adb
===================================================================
--- src/polyorb-orb-thread_per_session.adb	(revision 65536)
+++ src/polyorb-orb-thread_per_session.adb	(working copy)
@@ -217,19 +217,30 @@
       ORB :        ORB_Access;
       RJ  : access Request_Job'Class)
    is
-      pragma Unreferenced (P, ORB);
-
-      S   : constant Session_Access := Session_Access (RJ.Requestor);
-      N   : constant Notepad_Access := Get_Task_Info (S);
-      STI : Session_Thread_Info;
+      pragma Unreferenced (P);
    begin
       pragma Debug (O ("Handle_Request_Execution : Queue Job"));
+      if RJ.Requestor = Component_Access (ORB) then
+         --  Per PolyORB.ORB.Handle_Message, the request has been
+         --  queued by a client, meaning we are on the client-side. So
+         --  use client thread to send the request.
+         Run_Request (RJ);
 
-      Get_Note (N.all, STI);
-      Add_Request
-        (STI,
-         Request_Info'(Job => PolyORB.ORB.Duplicate_Request_Job (RJ)));
+      else
+         declare
+            S   : constant Session_Access := Session_Access (RJ.Requestor);
+            N   : constant Notepad_Access := Get_Task_Info (S);
+            STI : Session_Thread_Info;
+         begin
+            --  A thread has been created and is associated to handle
+            --  request execution, use it.
 
+            Get_Note (N.all, STI);
+            Add_Request
+              (STI,
+               Request_Info'(Job => PolyORB.ORB.Duplicate_Request_Job (RJ)));
+         end;
+      end if;
    end Handle_Request_Execution;
 
    ----------
Index: projects/common.gpr
===================================================================
--- projects/common.gpr	(revision 65536)
+++ projects/common.gpr	(working copy)
@@ -52,8 +52,10 @@
       Base_Ada_Compiler_Switches :=
         ("-gnatf",            --  Full compiler error messages
          Config.Style_Switch, --  Enable style checks
-         "-gnatwale");        --  Enable all warnings, also enable elaboration
+         "-gnatwaleK");       --  Enable all warnings, also enable elaboration
                               --  warnings, and treat all warnings as errors.
+                              --  ???Temporarily disable warnings for missing
+                              --  "constant" ("K").
 
       case Build is
          when "PRODUCTION" =>
Index: projects/src.gpr
===================================================================
--- projects/src.gpr	(revision 65536)
+++ projects/src.gpr	(working copy)
@@ -49,8 +49,11 @@
 
       for Default_Switches ("Ada") -- For src only.
          use Common.Compiler'Default_Switches ("Ada")
-            & "-gnatg"    --  Internal GNAT runtime implementation mode
-            & "-gnati1";  --  Allow full ISO-8859-1 character set
+            & "-gnatg"  --  Internal GNAT runtime implementation mode
+            & "-gnati1"  --  Allow full ISO-8859-1 character set
+            & "-gnatwaleK"  --  ???Temporarily disable warnings for missing
+                            --  "constant" ("K").
+            ;
          --  Notes on switch ordering:
          --    1. -gnatg should come after -gnaty, because -gnatg enables
          --        more style checks than -gnaty, and if -gnaty came second,

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

Here's part of the log:

X-Original-To: duff@gnat.com
Date: Wed, 23 May 2007 15:06:04 -0400
From: Mail Server <gnatmail@adacore.com>
To: duff@gnat.com
Subject: [mailserver duff-26508 lot] job results
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
User-Agent: Mutt/1.5.9i
X-Virus-Scanned: by amavisd-new at nile.gnat.com

Sync GNAT build directory                        OK
Build Florist                                    OK
Build Xmlada                                     OK
Build PolyORB                                    OK
Running Fixed bugs


[fixed bugs report]
20070522-41-lot Nightly Script Run 6.1.0w 

GNAT Version: 6.1.0w (20070522-41)

Machine: lot
Arch   : i686-pc-linux-gnu
Version: 4.1.3
Discriminants: i686-pc-linux-gnu,x86,32bits,little-endian,Linux,glibc2,SHARED,PolyORB,DSA_PCS_polyorb,GLADE,AWS,XMLADA,gnatmem,fstack-check,ZCX,NODSP,gcc413,gcc41,gcc4,x86_linux_suse10,ALL


Your patch has generated 52 potential regression(s) and fixed 0
The patch has also changed the output of 1 already detected regression(s)

---------------- 52 new regression(s)
0008-011:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-101:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-105:DIFF:unexpected output (PolyORB,DSA_PCS_polyorb)
0008-201:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-204:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-205:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-208:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-210:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-211:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-301:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-303:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-304:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-306:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-309:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-315:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-320:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-327:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-330:DIFF:unexpected output (PolyORB,DSA_PCS_polyorb)
0008-401:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-403:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-404:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-406:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-407:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-408:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-409:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-412:DIFF:output (PolyORB,DSA_PCS_polyorb)
9301-G03:DIFF:output (GLADE)
E217-008:DIFF:unexpected output (PolyORB)
E329-003:DIFF:output (PolyORB)
E429-002:DIFF:output (PolyORB)
E727-014:DIFF:output (PolyORB)
E816-007:DIFF:output (PolyORB)
EB18-026:DIFF:output (PolyORB)
F118-025:DIFF:output (PolyORB)
F202-004:DIFF:output (PolyORB)
F420-005:DIFF:unexpected output (PolyORB)
F421-007:DIFF:output (POLYORB)
F526-002:DIFF:output (PolyORB)
F601-003:DIFF:output (PolyORB)
F601-017:DIFF:output (POLYORB)
F605-015:DIFF:output (POLYORB)
F608-019:DIFF:output (PolyORB)
F629-014:DIFF:output (POLYORB)
F804-019:DIFF:output (POLYORB)
F809-009:DIFF:output (POLYORB)
F824-004:DIFF:output (PolyORB)
F915-011:DIFF:output (PolyORB)
FA18-002:DIFF:output (PolyORB)
G326-002:DIFF:output (PolyORB)
G326-004:DIFF:output (PolyORB)
G327-015:DIFF:output (PolyORB)
G328-027:DIFF:output (PolyORB)

---------------- 1 already detected regression(s) with output change
Z999-999:DIFF:unexpected output

---------------- 1 expected regression(s)
0008-402:XFAIL:shared passive not supported with PolyORB/DSA G302-010 (PolyORB,DSA_PCS_polyorb)

---------------- 0 fixed regression(s)

---------------- differences in output
================ Bug 0008-011 (PolyORB,DSA_PCS_polyorb)
---------------- expected output

raised PROGRAM_ERROR : unit rci is already declared
---------------- actual output
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "/lot.a/gnatmail-mailserver/gcc-41/install-lot/include/polyorb/polyorb-dsa_p-partitions.ads" compilation error
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "rci.ads" compilation error

raised STORAGE_ERROR : s-intman.adb:150 explicit raise

raised STORAGE_ERROR : s-intman.adb:150 explicit raise
cat: p22.log: No such file or directory
/lot.a/gnatmail-mailserver/gcc-41/script/dsa-helpers: line 41: kill: (27526) - No such process
================ Bug 0008-101 (PolyORB,DSA_PCS_polyorb)
---------------- expected output
Build
polyorb-initialization-exceptions.adb:34:06: warning: "System.Io" is an internal GNAT unit
polyorb-initialization-exceptions.adb:34:06: warning: use of this unit is non-portable and version-dependent
po_gnatdist: checking configuration consistency
 ------------------------------
 ---- Configuration report ----
 ------------------------------
Configuration :
   Name        : first
   Main        : main
   Starter     : Ada code

Partition p1
   Main        : main
   Directory   : bin
   Units       : 
             - rci_1 (rci)
             - main (normal)
             - polyorb.dsa_p.partitions (rci, from PCS)

Partition p2
   Directory   : bin
   Units       : 
             - rci_2 (rci)

 -------------------------------
po_gnatdist: building polyorb.dsa_p.partitions caller stubs from GNAT_INSTALL_DIR/include/polyorb/polyorb-dsa_p-partitions.ads
po_gnatdist: building polyorb.dsa_p.partitions receiver stubs from GNAT_INSTALL_DIR/include/polyorb/polyorb-dsa_p-partitions.adb
po_gnatdist: building rci_1 caller stubs from rci_1.ads
po_gnatdist: building rci_1 receiver stubs from rci_1.adb
po_gnatdist: building rci_2 caller stubs from rci_2.ads
po_gnatdist: building rci_2 receiver stubs from rci_2.adb
po_gnatdist: building partition p1
po_gnatdist: building partition p2
po_gnatdist: generating starter main

Touch pure_1.ads and build
po_gnatdist: checking configuration consistency
 ------------------------------
 ---- Configuration report ----
 ------------------------------
Configuration :
   Name        : first
   Main        : main
   Starter     : Ada code

Partition p1
   Main        : main
   Directory   : bin
   Units       : 
             - rci_1 (rci)
             - main (normal)
             - polyorb.dsa_p.partitions (rci, from PCS)

Partition p2
   Directory   : bin
   Units       : 
             - rci_2 (rci)

 -------------------------------
po_gnatdist:    polyorb.dsa_p.partitions caller stubs is up to date
po_gnatdist:    polyorb.dsa_p.partitions receiver stubs is up to date
po_gnatdist: building rci_1 caller stubs from rci_1.ads
po_gnatdist: building rci_1 receiver stubs from rci_1.adb
po_gnatdist: building rci_2 caller stubs from rci_2.ads
po_gnatdist: building rci_2 receiver stubs from rci_2.adb
po_gnatdist: building partition p1
po_gnatdist: building partition p2
po_gnatdist: generating starter main

Touch pure_2.ads and build
po_gnatdist: checking configuration consistency
 ------------------------------
 ---- Configuration report ----
 ------------------------------
Configuration :
   Name        : first
   Main        : main
   Starter     : Ada code

Partition p1
   Main        : main
   Directory   : bin
   Units       : 
             - rci_1 (rci)
             - main (normal)
             - polyorb.dsa_p.partitions (rci, from PCS)

Partition p2
   Directory   : bin
   Units       : 
             - rci_2 (rci)

 -------------------------------
po_gnatdist:    polyorb.dsa_p.partitions caller stubs is up to date
po_gnatdist:    polyorb.dsa_p.partitions receiver stubs is up to date
po_gnatdist:    rci_1 caller stubs is up to date
po_gnatdist:    rci_1 receiver stubs is up to date
po_gnatdist: building rci_2 caller stubs from rci_2.ads
po_gnatdist: building rci_2 receiver stubs from rci_2.adb
po_gnatdist: building partition p1
po_gnatdist: building partition p2
po_gnatdist: generating starter main

Touch normal.ads and build
po_gnatdist: checking configuration consistency
 ------------------------------
 ---- Configuration report ----
 ------------------------------
Configuration :
   Name        : first
   Main        : main
   Starter     : Ada code

Partition p1
   Main        : main
   Directory   : bin
   Units       : 
             - rci_1 (rci)
             - main (normal)
             - polyorb.dsa_p.partitions (rci, from PCS)

Partition p2
   Directory   : bin
   Units       : 
             - rci_2 (rci)

 -------------------------------
po_gnatdist:    polyorb.dsa_p.partitions caller stubs is up to date
po_gnatdist:    polyorb.dsa_p.partitions receiver stubs is up to date
po_gnatdist: building rci_1 caller stubs from rci_1.ads
po_gnatdist: building rci_1 receiver stubs from rci_1.adb
po_gnatdist:    rci_2 caller stubs is up to date
po_gnatdist:    rci_2 receiver stubs is up to date
po_gnatdist: building partition p1
po_gnatdist: generating starter main

Touch normal.adb and build
po_gnatdist: checking configuration consistency
 ------------------------------
 ---- Configuration report ----
 ------------------------------
Configuration :
   Name        : first
   Main        : main
   Starter     : Ada code

Partition p1
   Main        : main
   Directory   : bin
   Units       : 
             - rci_1 (rci)
             - main (normal)
             - polyorb.dsa_p.partitions (rci, from PCS)

Partition p2
   Directory   : bin
   Units       : 
             - rci_2 (rci)

 -------------------------------
po_gnatdist:    polyorb.dsa_p.partitions caller stubs is up to date
po_gnatdist:    polyorb.dsa_p.partitions receiver stubs is up to date
po_gnatdist:    rci_1 caller stubs is up to date
po_gnatdist:    rci_1 receiver stubs is up to date
po_gnatdist:    rci_2 caller stubs is up to date
po_gnatdist:    rci_2 receiver stubs is up to date
po_gnatdist: building partition p1
po_gnatdist: generating starter main

Remove main and build
po_gnatdist: checking configuration consistency
 ------------------------------
 ---- Configuration report ----
 ------------------------------
Configuration :
   Name        : first
   Main        : main
   Starter     : Ada code

Partition p1
   Main        : main
   Directory   : bin
   Units       : 
             - rci_1 (rci)
             - main (normal)
             - polyorb.dsa_p.partitions (rci, from PCS)

Partition p2
   Directory   : bin
   Units       : 
             - rci_2 (rci)

 -------------------------------
po_gnatdist:    polyorb.dsa_p.partitions caller stubs is up to date
po_gnatdist:    polyorb.dsa_p.partitions receiver stubs is up to date
po_gnatdist:    rci_1 caller stubs is up to date
po_gnatdist:    rci_1 receiver stubs is up to date
po_gnatdist:    rci_2 caller stubs is up to date
po_gnatdist:    rci_2 receiver stubs is up to date
po_gnatdist: generating starter main

Touch first.cfg and build
po_gnatdist: checking configuration consistency
 ------------------------------
 ---- Configuration report ----
 ------------------------------
Configuration :
   Name        : first
   Main        : main
   Starter     : Ada code

Partition p1
   Main        : main
   Directory   : bin
   Units       : 
             - rci_1 (rci)
             - main (normal)
             - polyorb.dsa_p.partitions (rci, from PCS)

Partition p2
   Directory   : bin
   Units       : 
             - rci_2 (rci)

 -------------------------------
po_gnatdist:    polyorb.dsa_p.partitions caller stubs is up to date
po_gnatdist:    polyorb.dsa_p.partitions receiver stubs is up to date
po_gnatdist:    rci_1 caller stubs is up to date
po_gnatdist:    rci_1 receiver stubs is up to date
po_gnatdist:    rci_2 caller stubs is up to date
po_gnatdist:    rci_2 receiver stubs is up to date
po_gnatdist: building partition p1
po_gnatdist: building partition p2
po_gnatdist: generating starter main

Build second
po_gnatdist: checking configuration consistency
 ------------------------------
 ---- Configuration report ----
 ------------------------------
Configuration :
   Name        : second
   Main        : main
   Starter     : Ada code

Partition p1
   Main        : main
   Directory   : bin
   Units       : 
             - main (normal)
             - polyorb.dsa_p.partitions (rci, from PCS)

Partition p2
   Directory   : bin
   Units       : 
             - rci_1 (rci)
             - rci_2 (rci)

 -------------------------------
po_gnatdist:    polyorb.dsa_p.partitions caller stubs is up to date
po_gnatdist: building polyorb.dsa_p.partitions receiver stubs from GNAT_INSTALL_DIR/include/polyorb/polyorb-dsa_p-partitions.adb
po_gnatdist:    rci_1 caller stubs is up to date
po_gnatdist: building rci_1 receiver stubs from rci_1.adb
po_gnatdist:    rci_2 caller stubs is up to date
po_gnatdist: building rci_2 receiver stubs from rci_2.adb
po_gnatdist: building partition p1
po_gnatdist: building partition p2
po_gnatdist: generating starter main

Build first
po_gnatdist: checking configuration consistency
 ------------------------------
 ---- Configuration report ----
 ------------------------------
Configuration :
   Name        : first
   Main        : main
   Starter     : Ada code

Partition p1
   Main        : main
   Directory   : bin
   Units       : 
             - rci_1 (rci)
             - main (normal)
             - polyorb.dsa_p.partitions (rci, from PCS)

Partition p2
   Directory   : bin
   Units       : 
             - rci_2 (rci)

 -------------------------------
po_gnatdist:    polyorb.dsa_p.partitions caller stubs is up to date
po_gnatdist:    polyorb.dsa_p.partitions receiver stubs is up to date
po_gnatdist:    rci_1 caller stubs is up to date
po_gnatdist:    rci_1 receiver stubs is up to date
po_gnatdist:    rci_2 caller stubs is up to date
po_gnatdist:    rci_2 receiver stubs is up to date
po_gnatdist: building partition p1
po_gnatdist: building partition p2
po_gnatdist: generating starter main

---------------- actual output
Build
polyorb-initialization.adb:316:27: string expression in raise is Ada 2005 extension
polyorb-initialization.adb:316:27: unit must be compiled with -gnat05 switch
polyorb-utils-configuration_file.adb:34:09: warning: "Ada.Directories" is an Ada 2005 unit
gnatmake: "GNAT_INSTALL_DIR/include/polyorb/polyorb-initialization.adb" compilation error
po_gnatdist: checking configuration consistency
 ------------------------------
 ---- Configuration report ----
 ------------------------------
Configuration :
   Name        : first
   Main        : main
   Starter     : Ada code

Partition p1
   Main        : main
   Directory   : bin
   Units       : 
             - rci_1 (rci)
             - main (normal)
             - polyorb.dsa_p.partitions (rci, from PCS)

Partition p2
   Directory   : bin
   Units       : 
             - rci_2 (rci)

 -------------------------------
po_gnatdist: building polyorb.dsa_p.partitions caller stubs from GNAT_INSTALL_DIR/include/polyorb/polyorb-dsa_p-partitions.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "GNAT_INSTALL_DIR/include/polyorb/polyorb-dsa_p-partitions.ads" compilation error
po_gnatdist: building polyorb.dsa_p.partitions receiver stubs from GNAT_INSTALL_DIR/include/polyorb/polyorb-dsa_p-partitions.adb
po_gnatdist: building rci_1 caller stubs from rci_1.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "rci_1.ads" compilation error
po_gnatdist: building rci_1 receiver stubs from rci_1.adb
po_gnatdist: building rci_2 caller stubs from rci_2.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "rci_2.ads" compilation error
po_gnatdist: building rci_2 receiver stubs from rci_2.adb
po_gnatdist: building partition p1
po_gnatdist: building partition p2
po_gnatdist: generating starter main

Touch pure_1.ads and build
polyorb-initialization.adb:316:27: string expression in raise is Ada 2005 extension
polyorb-initialization.adb:316:27: unit must be compiled with -gnat05 switch
gnatmake: "GNAT_INSTALL_DIR/include/polyorb/polyorb-initialization.adb" compilation error
po_gnatdist: checking configuration consistency
 ------------------------------
 ---- Configuration report ----
 ------------------------------
Configuration :
   Name        : first
   Main        : main
   Starter     : Ada code

Partition p1
   Main        : main
   Directory   : bin
   Units       : 
             - rci_1 (rci)
             - main (normal)
             - polyorb.dsa_p.partitions (rci, from PCS)

Partition p2
   Directory   : bin
   Units       : 
             - rci_2 (rci)

 -------------------------------
po_gnatdist: building polyorb.dsa_p.partitions caller stubs from GNAT_INSTALL_DIR/include/polyorb/polyorb-dsa_p-partitions.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "GNAT_INSTALL_DIR/include/polyorb/polyorb-dsa_p-partitions.ads" compilation error
po_gnatdist:    polyorb.dsa_p.partitions receiver stubs is up to date
po_gnatdist: building rci_1 caller stubs from rci_1.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "rci_1.ads" compilation error
po_gnatdist: building rci_1 receiver stubs from rci_1.adb
po_gnatdist: building rci_2 caller stubs from rci_2.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "rci_2.ads" compilation error
po_gnatdist: building rci_2 receiver stubs from rci_2.adb
po_gnatdist: building partition p1
po_gnatdist: building partition p2
po_gnatdist: generating starter main

Touch pure_2.ads and build
polyorb-initialization.adb:316:27: string expression in raise is Ada 2005 extension
polyorb-initialization.adb:316:27: unit must be compiled with -gnat05 switch
gnatmake: "GNAT_INSTALL_DIR/include/polyorb/polyorb-initialization.adb" compilation error
po_gnatdist: checking configuration consistency
 ------------------------------
 ---- Configuration report ----
 ------------------------------
Configuration :
   Name        : first
   Main        : main
   Starter     : Ada code

Partition p1
   Main        : main
   Directory   : bin
   Units       : 
             - rci_1 (rci)
             - main (normal)
             - polyorb.dsa_p.partitions (rci, from PCS)

Partition p2
   Directory   : bin
   Units       : 
             - rci_2 (rci)

 -------------------------------
po_gnatdist: building polyorb.dsa_p.partitions caller stubs from GNAT_INSTALL_DIR/include/polyorb/polyorb-dsa_p-partitions.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "GNAT_INSTALL_DIR/include/polyorb/polyorb-dsa_p-partitions.ads" compilation error
po_gnatdist:    polyorb.dsa_p.partitions receiver stubs is up to date
po_gnatdist: building rci_1 caller stubs from rci_1.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "rci_1.ads" compilation error
po_gnatdist:    rci_1 receiver stubs is up to date
po_gnatdist: building rci_2 caller stubs from rci_2.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "rci_2.ads" compilation error
po_gnatdist: building rci_2 receiver stubs from rci_2.adb
po_gnatdist: building partition p1
po_gnatdist: building partition p2
po_gnatdist: generating starter main

Touch normal.ads and build
polyorb-initialization.adb:316:27: string expression in raise is Ada 2005 extension
polyorb-initialization.adb:316:27: unit must be compiled with -gnat05 switch
gnatmake: "GNAT_INSTALL_DIR/include/polyorb/polyorb-initialization.adb" compilation error
po_gnatdist: checking configuration consistency
 ------------------------------
 ---- Configuration report ----
 ------------------------------
Configuration :
   Name        : first
   Main        : main
   Starter     : Ada code

Partition p1
   Main        : main
   Directory   : bin
   Units       : 
             - rci_1 (rci)
             - main (normal)
             - polyorb.dsa_p.partitions (rci, from PCS)

Partition p2
   Directory   : bin
   Units       : 
             - rci_2 (rci)

 -------------------------------
po_gnatdist: building polyorb.dsa_p.partitions caller stubs from GNAT_INSTALL_DIR/include/polyorb/polyorb-dsa_p-partitions.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "GNAT_INSTALL_DIR/include/polyorb/polyorb-dsa_p-partitions.ads" compilation error
po_gnatdist:    polyorb.dsa_p.partitions receiver stubs is up to date
po_gnatdist: building rci_1 caller stubs from rci_1.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "rci_1.ads" compilation error
po_gnatdist: building rci_1 receiver stubs from rci_1.adb
po_gnatdist: building rci_2 caller stubs from rci_2.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "rci_2.ads" compilation error
po_gnatdist:    rci_2 receiver stubs is up to date
po_gnatdist: building partition p1
po_gnatdist: generating starter main

Touch normal.adb and build
polyorb-initialization.adb:316:27: string expression in raise is Ada 2005 extension
polyorb-initialization.adb:316:27: unit must be compiled with -gnat05 switch
gnatmake: "GNAT_INSTALL_DIR/include/polyorb/polyorb-initialization.adb" compilation error
po_gnatdist: checking configuration consistency
 ------------------------------
 ---- Configuration report ----
 ------------------------------
Configuration :
   Name        : first
   Main        : main
   Starter     : Ada code

Partition p1
   Main        : main
   Directory   : bin
   Units       : 
             - rci_1 (rci)
             - main (normal)
             - polyorb.dsa_p.partitions (rci, from PCS)

Partition p2
   Directory   : bin
   Units       : 
             - rci_2 (rci)

 -------------------------------
po_gnatdist: building polyorb.dsa_p.partitions caller stubs from GNAT_INSTALL_DIR/include/polyorb/polyorb-dsa_p-partitions.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "GNAT_INSTALL_DIR/include/polyorb/polyorb-dsa_p-partitions.ads" compilation error
po_gnatdist:    polyorb.dsa_p.partitions receiver stubs is up to date
po_gnatdist: building rci_1 caller stubs from rci_1.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "rci_1.ads" compilation error
po_gnatdist:    rci_1 receiver stubs is up to date
po_gnatdist: building rci_2 caller stubs from rci_2.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "rci_2.ads" compilation error
po_gnatdist:    rci_2 receiver stubs is up to date
po_gnatdist: building partition p1
po_gnatdist: generating starter main

Remove main and build
polyorb-initialization.adb:316:27: string expression in raise is Ada 2005 extension
polyorb-initialization.adb:316:27: unit must be compiled with -gnat05 switch
gnatmake: "GNAT_INSTALL_DIR/include/polyorb/polyorb-initialization.adb" compilation error
po_gnatdist: checking configuration consistency
 ------------------------------
 ---- Configuration report ----
 ------------------------------
Configuration :
   Name        : first
   Main        : main
   Starter     : Ada code

Partition p1
   Main        : main
   Directory   : bin
   Units       : 
             - rci_1 (rci)
             - main (normal)
             - polyorb.dsa_p.partitions (rci, from PCS)

Partition p2
   Directory   : bin
   Units       : 
             - rci_2 (rci)

 -------------------------------
po_gnatdist: building polyorb.dsa_p.partitions caller stubs from GNAT_INSTALL_DIR/include/polyorb/polyorb-dsa_p-partitions.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "GNAT_INSTALL_DIR/include/polyorb/polyorb-dsa_p-partitions.ads" compilation error
po_gnatdist:    polyorb.dsa_p.partitions receiver stubs is up to date
po_gnatdist: building rci_1 caller stubs from rci_1.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "rci_1.ads" compilation error
po_gnatdist:    rci_1 receiver stubs is up to date
po_gnatdist: building rci_2 caller stubs from rci_2.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "rci_2.ads" compilation error
po_gnatdist:    rci_2 receiver stubs is up to date
po_gnatdist: generating starter main

Touch first.cfg and build
polyorb-initialization.adb:316:27: string expression in raise is Ada 2005 extension
polyorb-initialization.adb:316:27: unit must be compiled with -gnat05 switch
gnatmake: "GNAT_INSTALL_DIR/include/polyorb/polyorb-initialization.adb" compilation error
po_gnatdist: checking configuration consistency
 ------------------------------
 ---- Configuration report ----
 ------------------------------
Configuration :
   Name        : first
   Main        : main
   Starter     : Ada code

Partition p1
   Main        : main
   Directory   : bin
   Units       : 
             - rci_1 (rci)
             - main (normal)
             - polyorb.dsa_p.partitions (rci, from PCS)

Partition p2
   Directory   : bin
   Units       : 
             - rci_2 (rci)

 -------------------------------
po_gnatdist: building polyorb.dsa_p.partitions caller stubs from GNAT_INSTALL_DIR/include/polyorb/polyorb-dsa_p-partitions.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "GNAT_INSTALL_DIR/include/polyorb/polyorb-dsa_p-partitions.ads" compilation error
po_gnatdist:    polyorb.dsa_p.partitions receiver stubs is up to date
po_gnatdist: building rci_1 caller stubs from rci_1.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "rci_1.ads" compilation error
po_gnatdist:    rci_1 receiver stubs is up to date
po_gnatdist: building rci_2 caller stubs from rci_2.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "rci_2.ads" compilation error
po_gnatdist:    rci_2 receiver stubs is up to date
po_gnatdist: building partition p1
po_gnatdist: building partition p2
po_gnatdist: generating starter main

Build second
polyorb-initialization.adb:316:27: string expression in raise is Ada 2005 extension
polyorb-initialization.adb:316:27: unit must be compiled with -gnat05 switch
gnatmake: "GNAT_INSTALL_DIR/include/polyorb/polyorb-initialization.adb" compilation error
po_gnatdist: checking configuration consistency
 ------------------------------
 ---- Configuration report ----
 ------------------------------
Configuration :
   Name        : second
   Main        : main
   Starter     : Ada code

Partition p1
   Main        : main
   Directory   : bin
   Units       : 
             - main (normal)
             - polyorb.dsa_p.partitions (rci, from PCS)

Partition p2
   Directory   : bin
   Units       : 
             - rci_1 (rci)
             - rci_2 (rci)

 -------------------------------
po_gnatdist: building polyorb.dsa_p.partitions caller stubs from GNAT_INSTALL_DIR/include/polyorb/polyorb-dsa_p-partitions.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "GNAT_INSTALL_DIR/include/polyorb/polyorb-dsa_p-partitions.ads" compilation error
po_gnatdist: building polyorb.dsa_p.partitions receiver stubs from GNAT_INSTALL_DIR/include/polyorb/polyorb-dsa_p-partitions.adb
po_gnatdist: building rci_1 caller stubs from rci_1.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "rci_1.ads" compilation error
po_gnatdist: building rci_1 receiver stubs from rci_1.adb
po_gnatdist: building rci_2 caller stubs from rci_2.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "rci_2.ads" compilation error
po_gnatdist: building rci_2 receiver stubs from rci_2.adb
po_gnatdist: building partition p1
po_gnatdist: building partition p2
po_gnatdist: generating starter main

Build first
polyorb-initialization.adb:316:27: string expression in raise is Ada 2005 extension
polyorb-initialization.adb:316:27: unit must be compiled with -gnat05 switch
gnatmake: "GNAT_INSTALL_DIR/include/polyorb/polyorb-initialization.adb" compilation error
po_gnatdist: checking configuration consistency
 ------------------------------
 ---- Configuration report ----
 ------------------------------
Configuration :
   Name        : first
   Main        : main
   Starter     : Ada code

Partition p1
   Main        : main
   Directory   : bin
   Units       : 
             - rci_1 (rci)
             - main (normal)
             - polyorb.dsa_p.partitions (rci, from PCS)

Partition p2
   Directory   : bin
   Units       : 
             - rci_2 (rci)

 -------------------------------
po_gnatdist: building polyorb.dsa_p.partitions caller stubs from GNAT_INSTALL_DIR/include/polyorb/polyorb-dsa_p-partitions.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "GNAT_INSTALL_DIR/include/polyorb/polyorb-dsa_p-partitions.ads" compilation error
po_gnatdist:    polyorb.dsa_p.partitions receiver stubs is up to date
po_gnatdist: building rci_1 caller stubs from rci_1.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "rci_1.ads" compilation error
po_gnatdist:    rci_1 receiver stubs is up to date
po_gnatdist: building rci_2 caller stubs from rci_2.ads
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "rci_2.ads" compilation error
po_gnatdist:    rci_2 receiver stubs is up to date
po_gnatdist: building partition p1
po_gnatdist: building partition p2
po_gnatdist: generating starter main

================ Bug 0008-105 (PolyORB,DSA_PCS_polyorb)
---------------- unexpected output
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "/lot.a/gnatmail-mailserver/gcc-41/install-lot/include/polyorb/polyorb-dsa_p-partitions.ads" compilation error
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "remote.ads" compilation error
================ Bug 0008-201 (PolyORB,DSA_PCS_polyorb)
---------------- expected output
Program error got raised with message: This is the Program error message
Constraint error got raised with message: This is the Constraint error message
Ok, no error
User error got raised with message: This is the User error message
---------------- actual output
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "exceptions_remote.ads" compilation error
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "/lot.a/gnatmail-mailserver/gcc-41/install-lot/include/polyorb/polyorb-dsa_p-partitions.ads" compilation error

raised STORAGE_ERROR : s-intman.adb:150 explicit raise
/lot.a/gnatmail-mailserver/gcc-41/script/dsa-helpers: line 41: kill: (28945) - No such process
================ Bug 0008-204 (PolyORB,DSA_PCS_polyorb)
---------------- expected output
Running
---------------- actual output
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: not subtype conformant with declaration at polyorb-sequences-helper.ads:76, instance at polyorb-sequences-unbounded-helper.ads:58, instance at line 105
s-parint.adb:105:04: instantiation error at polyorb-sequences-helper.ads:84
s-parint.adb:105:04: instantiation error at polyorb-sequences-unbounded-helper.ads:58
s-parint.adb:105:04: type of "ACC" does not match
gnatmake: "/lot.a/gnatmail-mailserver/gcc-41/install-lot/include/polyorb/polyorb-dsa_p-partitions.ads" compilation error

raised STORAGE_ERROR : s-intman.adb:150 explicit raise
/lot.a/gnatmail-mailserver/gcc-41/script/dsa-helpers: line 41: kill: (28933) - No such process

...(etc) -- I removed the rest of the log.

From duff@adacore.com  Thu May 31 14:20:31 2007
From: Bob Duff <duff@adacore.com>
To: quinot@adacore.com, distsys@adacore.com
Subject: Re: G510-007 PolyORB: function call hangs
Message-ID: <20070531182029.48D2148CDBB@nile.gnat.com>
Date: Thu, 31 May 2007 14:20:29 -0400 (EDT)
Status: O
Content-Length: 2138
Lines: 56

Thomas,

I'm assigning this back to you, since you know better what the issues are.

I just checked in Jerome's patch (rev 65696).  I did an extended mailserver
yesterday, which failed:

---------------- 1 new regression(s)
9301-G03:DIFF:output (GLADE)

---------------- 34 already detected regression(s) with output change
0008-011:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-105:DIFF:unexpected output (PolyORB,DSA_PCS_polyorb)
0008-201:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-204:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-205:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-208:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-210:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-211:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-301:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-303:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-304:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-306:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-309:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-315:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-320:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-327:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-330:DIFF:unexpected output (PolyORB,DSA_PCS_polyorb)
0008-401:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-403:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-404:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-406:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-407:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-408:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-409:DIFF:output (PolyORB,DSA_PCS_polyorb)
0008-412:DIFF:output (PolyORB,DSA_PCS_polyorb)
F421-007:DIFF:output (POLYORB)
F601-017:DIFF:output (POLYORB)
F605-015:DIFF:output (POLYORB)
F629-014:DIFF:output (POLYORB)
F804-019:DIFF:output (POLYORB)
F809-009:DIFF:output (POLYORB)
F915-011:DIFF:output (PolyORB)
G326-004:DIFF:output (PolyORB)
G327-015:DIFF:output (PolyORB)

But I also did a mailserver with a dummy patch (just changed a comment),
so I am presuming this patch is innocent. The patch fixes the customer example
(the one that uses thread-per-session, and has client and server in the same
process).

Could you please notify the customer as you see fit?

Maybe this ticket should be prio E?

- Bob

From duff@gnat.com  Thu May 31 14:21:00 2007
From: duff@gnat.com
To: file@gnat.com
Subject: [bugtool:G510-007] PolyORB: function call hangs - assigned to quinot
Message-ID: <20070531182059.B8F2848CBB2@nile.gnat.com>
Date: Thu, 31 May 2007 14:20:59 -0400 (EDT)
Status: O
Content-Length: 33
Lines: 1

Reassigned from: duff to: quinot

From quinot@adacore.com  Wed Jun 13 09:14:52 2007
Date: Wed, 13 Jun 2007 15:15:44 +0200
From: Thomas Quinot <quinot@adacore.com>
To: Inma Algora <ialgora@indra.es>
CC: report@adacore.com, poalvarez@indra.es, jhmartin@indra.es,  =?unknown-8bit?b?SnVsaeFuIFDpcmV6?= 
  <jpmateos@indra.es>, jjgperez@indra.es, Raul Castellano <rcastellano@indra.es>
Subject: Re: [G510-007] Re: Corba function hangs
Message-ID: <20070613131544.GA7630@malevil.act-europe.fr>
References: <20070510135614.GA43240@melamine.cuivre.fr.eu.org> <20070510092509.4DE7033C52@plym.gnat.com> 
 <20070510145418.C074D164E11@province.act-europe.fr>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
In-Reply-To: <20070510145418.C074D164E11@province.act-europe.fr>
Status: O
Content-Length: 565
Lines: 13

* Inma Algora, 2007-05-10 :

> If we use Thread_Per_Session tasking policy we receive a STORAGE_ERROR when trying to register our servant objects in the naming service. Could it happen because our processes are servants and clients at the same time?

We believe this issue is now fixed in the development version of PolyORB.
Please let us know if you would like a new wavefront incorporating this fix.

Best regards,
Thomas Quinot.

-- 
Thomas Quinot, Ph.D. ** quinot@adacore.com ** Senior Software Engineer
               AdaCore -- Paris, France -- New York, USA

From quinot@adacore.com  Wed Jun 13 09:16:41 2007
Date: Wed, 13 Jun 2007 15:16:39 +0200
From: Thomas Quinot <quinot@adacore.com>
To: duff@adacore.com
CC: file@adacore.com
Subject: Re: test case for G510-007 [resent]
Message-ID: <20070613131639.GF56919@melamine.cuivre.fr.eu.org>
References: <20070613131609.GE56919@melamine.cuivre.fr.eu.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
In-Reply-To: <20070613131609.GE56919@melamine.cuivre.fr.eu.org>
Status: O
Content-Length: 722
Lines: 26

[ Resending with proper Cc: to file@adacore.com ]

* Thomas Quinot, 2007-06-13 :

> Date: Wed, 13 Jun 2007 15:16:09 +0200
> From: Thomas Quinot <quinot@adacore.com>
> To: duff@adacore.com
> Subject: test case for G510-007
> User-Agent: Mutt/1.5.11
> 
> Bob,
> 
> You mentioned on this TN that the patch you checked in fixed the
> customer's problem. Could you please file a complete test case so we can
> move it into no-ms?
> 
> Thanks!
> Thomas.
> 
> -- 
> Thomas Quinot, Ph.D. ** quinot@adacore.com ** Senior Software Engineer
>                AdaCore -- Paris, France -- New York, USA

-- 
Thomas Quinot, Ph.D. ** quinot@adacore.com ** Senior Software Engineer
               AdaCore -- Paris, France -- New York, USA

From duff@adacore.com  Wed Jun 13 11:36:27 2007
From: Bob Duff <duff@adacore.com>
To: quinot@adacore.com
CC: file@adacore.com
In-Reply-To: <20070613131639.GF56919@melamine.cuivre.fr.eu.org> (message from 
 Thomas Quinot on Wed, 13 Jun 2007 15:16:39 +0200)
Subject: Re: test case for G510-007 [resent]
References: <20070613131609.GE56919@melamine.cuivre.fr.eu.org> <20070613131639.GF56919@melamine.cuivre.fr.eu.org>
Message-ID: <20070613153624.E828E48CEE0@nile.gnat.com>
Date: Wed, 13 Jun 2007 11:36:24 -0400 (EDT)
Status: O
Content-Length: 652
Lines: 19

* Thomas Quinot, 2007-06-13 :

> Bob,
> 
> You mentioned on this TN that the patch you checked in fixed the
> customer's problem. Could you please file a complete test case so we can
> move it into no-ms?

I will file a test case as soon as I can get things built and tested.

The patch fixed one problem, namely that Thread_Per_Session wasn't working for
their example (client and server in same process).  But Thread_Pool is what
they really wanted to use, as far as I can tell -- Thread_Per_Session was
suggested as a workaround.  So I'm not sure what the appropriate action is
here.

Anyway, I'll let you know when I've filed a proper test.

- Bob

From duff@gnat.com  Wed Jun 13 16:15:25 2007
From: duff@gnat.com
To: file@gnat.com
Subject: [bugtool:G510-007] PolyORB: function call hangs (files updated)
Message-ID: <20070613201523.F375548CC2B@nile.gnat.com>
Date: Wed, 13 Jun 2007 16:15:23 -0400 (EDT)
Status: O
Content-Length: 32
Lines: 2

add test.cmd
Add       test.cmd

From duff@adacore.com  Wed Jun 13 16:16:43 2007
From: Bob Duff <duff@adacore.com>
To: quinot@adacore.com
CC: distsys@adacore.com, hugues@adacore.com
In-Reply-To: <20070613131639.GF56919@melamine.cuivre.fr.eu.org> (message from 
 Thomas Quinot on Wed, 13 Jun 2007 15:16:39 +0200)
Subject: Re: test case for G510-007 [resent]
References: <20070613131609.GE56919@melamine.cuivre.fr.eu.org> <20070613131639.GF56919@melamine.cuivre.fr.eu.org>
Message-ID: <20070613201639.2708248CC80@nile.gnat.com>
Date: Wed, 13 Jun 2007 16:16:39 -0400 (EDT)
Status: O
Content-Length: 5110
Lines: 79

* Thomas Quinot, 2007-06-13 :

> You mentioned on this TN that the patch you checked in fixed the
> customer's problem. Could you please file a complete test case so we can
> move it into no-ms?

Thomas,

In looking at this again, it seems that the customer's example is NOT fixed.
The program now fails in a different way.  I'm not sure what I was thinking
when I said it was fixed, but as far as can see now, I was wrong.

I've included the backtrace I'm seeing below.  This is on lot.
Does this match what you see?

I've cc'ed Jerome, in the hopes that he can give some advice, here.

I'm not sure how we should proceed.  Note that this test program is only for
Thread_Per_Session, so it's a side issue -- as far as I can tell, their
original program used Thread_Pool, and that bug is unrelated to this one.
Maybe (as Jerome suggested at one point) the whole Thread_Per_Session
idea is a side issue that should be dropped.

I added a test.cmd file showing the options I've been using.

Sorry I'm not being much help here...  :-(

- Bob

(gdb) bt
#0  <__gnat_debug_raise_exception> (e=0x87c6ebc) at s-except.adb:44
#1  0x0858bfc7 in <__gnat_raise_nodefer_with_msg> (e=0x87c6ebc) at a-except.adb:830
#2  0x0858c03f in <__gnat_raise_exception> (e=0x87c6ebc, message=0x87c6ebc) at a-except.adb:870
#3  0x0861fc8e in gnat.sockets.raise_socket_error (error=111) at g-socket.adb:1333
#4  0x0861c086 in gnat.sockets.connect_socket (socket=13, server=
        (family => family_inet, addr => (family => family_inet, sin_v4 => (127, 0, 0, 1)), port => 25099), <serverF>=false) at g-socket.adb:595
#5  0x083949d5 in polyorb.utils.sockets.connect_socket (sock=13, remote_addr=
        (family => family_inet, addr => (family => family_inet, sin_v4 => (127, 0, 0, 1)), port => 25099), <remote_addrF>=false) at /homes/duff/poly/1/polyorb/src/polyorb-utils-sockets.adb:65
#6  0x083227bc in polyorb.giop_p.transport_mechanisms.iiop.bind_mechanism (mechanism=
          (addresses => (first => 0x880d548, last => 0x880d548)), profile=0x880a070, 
    the_orb=0x87f4558, qos=(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0), bo_ref=
        (prev => 0x0, next => 0x0, a_ref => 0x0), error=(kind => no_error, member => 0x0), 
    <profileF>=0)
    at /homes/duff/poly/1/polyorb/src/giop/iiop/polyorb-giop_p-transport_mechanisms-iiop.adb:108
#7  0x082e62ba in polyorb.binding_data.giop.bind_profile (profile=0x880a070, the_orb=0x87f4558, qos=
        (0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0), bo_ref=
        (prev => 0x0, next => 0x0, a_ref => 0x0), error=(kind => no_error, member => 0x0), 
    <profileF>=0) at /homes/duff/poly/1/polyorb/src/giop/polyorb-binding_data-giop.adb:80
#8  0x084b5e8e in polyorb.references.binding.bind (r=(prev => 0x0, next => 0x0, a_ref => 0x880d5a0), 
    local_orb=0x87f4558, qos=(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0), servant=0x0, pro=0x0, 
    local_only=false, error=(kind => no_error, member => 0x0))
    at /homes/duff/poly/1/polyorb/src/polyorb-references-binding.adb:288
#9  0x08408e86 in polyorb.orb.run_request (j=0x880d8e8, <jF>=0)
    at /homes/duff/poly/1/polyorb/src/polyorb-orb.adb:1038
#10 0x084e96e5 in polyorb.orb.thread_per_session.handle_request_execution (p=0x87ec8b8, 
    orb=0x87f4558, rj=0x880d8e8, <pF>=0, <rjF>=0)
    at /homes/duff/poly/1/polyorb/src/polyorb-orb-thread_per_session.adb:227
#11 0x08408569 in polyorb.orb.run (j=0x880d8e8, <jF>=0)
    at /homes/duff/poly/1/polyorb/src/polyorb-orb.adb:957
#12 0x08403475 in polyorb.orb.perform_work (orb=0x87f4558, this_task=
          (kind => transient, id => (system.address) 0x87e0008, state => running, may_poll => true, abort_polling => false, exit_condition => 0x880d810, job => 0x880d8e8, selector => 0x0, timeout => 14023.210676736, condition => 0x0, mutex => 0x0, position => (current => 0x0)), <orbF>=0)
    at /homes/duff/poly/1/polyorb/src/polyorb-orb.adb:289
#13 0x084045c4 in polyorb.orb.run (orb=0x87f4558, exit_condition=
      (condition => 0x880d810, task_info => 0x880d814), may_poll=true, <orbF>=0)
    at /homes/duff/poly/1/polyorb/src/polyorb-orb.adb:417
#14 0x085096af in polyorb.requests.invoke (self=0x880d758, invoke_flags=0)
    at /homes/duff/poly/1/polyorb/src/polyorb-requests.adb:179
#15 0x080742f2 in corba.request.default_invoke (request=0x880d758, flags=0)
    at /homes/duff/poly/1/polyorb/src/corba/corba-request.adb:134
#16 0x0806d755 in corba.object.rpc_is_a (self=(prev => 0x0, next => 0xbf84dbe4, a_ref => 0x880d5a0), 
    logical_type_id=0x86b9940) at /homes/duff/poly/1/polyorb/src/corba/corba-object.adb:184
#17 0x0806eb37 in corba.object.is_a (self=(prev => 0x0, next => 0xbf84dbe4, a_ref => 0x880d5a0), 
    logical_type_id=0x86b9940) at /homes/duff/poly/1/polyorb/src/corba/corba-object.adb:303
#18 0x082719e3 in cosnaming.namingcontext.helper.to_ref (the_ref=
        (prev => 0x0, next => 0xbf84dbe4, a_ref => 0x880d5a0))
    at /homes/duff/poly/1/build/idls/cos/naming/cosnaming-namingcontext-helper.adb:40
#19 0x0804f0a6 in p_corba.start_server_corba_object (obj=0x8806d68, name=0x87dbe98)
    at p_corba.adb:180
#20 0x08068d46 in prueba () at prueba.adb:33

