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 < rfernandezpe...@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 > <brbar...@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 >> us...@open-mpi.org >> http://www.open-mpi.org/mailman/listinfo.cgi/users >> > >