Hi 
I have been looking to the code.

and some documentation.

By apple documentation the finalize method should never been call.
so that seems to be erroneous 

the connection belong to an autorelease pool that is release just after it and due to the comment in the code 

    /* need to shut down connection */


I have thought that the real intention was to end the connection to the controller that by the documentation should be the close method that by apple documentation should only be call when the connection is in the opening or open state and 

I grep the code and nowhere else the connection is close so I applied the following  diff


diff pls_xgrid_client_old.m pls_xgrid_client.m


107,108c107,109

<     [connection finalize];

---

>     if ([connection state] != XGConnectionStateOpen) {

>     [connection close];

>     }


and now seems to run with no problems. 

Anyone can spot any reason for concern with this change?

Yours
Ricardo

On Thu, Feb 26, 2009 at 10:40 AM, Ricardo Fernández-Perea <rfernandezperea@gmail.com> wrote:
Yes Brian 

Its in Leopard.

thanks for your interest.

Ricardo

On Wed, Feb 25, 2009 at 9:45 PM, Brian W. Barrett <brbarret@open-mpi.org> wrote:
Ricardo -

That's really interesting.  THis is on a Leopard system, right?  I'm the author/maintainer of the xgrid code.  Unfortunately, I've been hiding trying to finish my dissertation the last couple of months.  I can't offer much advice without digging into it in more detail than I have time to do in the near future.

Brian


On Wed, 25 Feb 2009, Ricardo Fernández-Perea wrote:

HI
I Have checked the crash log.

the result is bellow.

If I am reading it and following the mpirun code correctly the release of
the last
mca_pls_xgrid_component.client
 by orte_pls_xgrid_finalize
causes a call to method dealloc for PlsXGridClient

where a 

[connection finalize]  

is call that ends as a  [NSObject finalize]
I think is as intended,  anyone knows if that is correct?
but for some unknown reason is not liked for my configuration.
The only thing that I can find is that the behaviour of the finalize
method in NSObject  depends of the status of garbage collection.


I am using gcc-4.4 and Xcode 3.1.2.

Ricardo

Process:         mpirun [854]
Path:            /opt/openmpi/bin/mpirun
Identifier:      mpirun
Version:         ??? (???)
Code Type:       X86 (Native)
Parent Process:  bash [829]

Date/Time:       2009-02-25 17:09:53.411 +0100
OS Version:      Mac OS X Server 10.5.6 (9G71)
Report Version:  6

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000
Crashed Thread:  0

Application Specific Information:
*** Terminating app due to uncaught exception
'NSInvalidArgumentException', reason: '***
-[NSKVONotifying_XGConnection<0x216910> finalize]: called when collecting
not enabled'

Thread 0 Crashed:
0   com.apple.CoreFoundation       0x917dffb4
___TERMINATING_DUE_TO_UNCAUGHT_EXCEPTION___ + 4
1   libobjc.A.dylib               0x91255e3b objc_exception_throw + 40
2   com.apple.CoreFoundation       0x917e701d -[NSObject finalize] + 157
3   mca_pls_xgrid.so               0x0019bf8b -[PlsXGridClient dealloc] +
59 (opal_object.h:403)
4   mca_pls_xgrid.so               0x0019a120 orte_pls_xgrid_finalize +
48 (pls_xgrid_module.m:219)
5   libopen-rte.0.dylib           0x0007b093 orte_pls_base_close + 35
6   libopen-rte.0.dylib           0x0005cb5e orte_system_finalize + 142
7   libopen-rte.0.dylib           0x0005932f orte_finalize + 47
8   mpirun                         0x00002702 orterun + 2202
(orterun.c:496)
9   mpirun                         0x00001b06 main + 24 (main.c:14)
10  mpirun                         0x00001ac2 start + 54



_______________________________________________
users mailing list
users@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users