Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] openmpi 1.2.9 with Xgrid support more information
From: Ricardo Fernández-Perea (rfernandezperea_at_[hidden])
Date: 2009-02-26 05:48:43


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_at_[hidden]> wrote:
> Yes Brian
> Its in Leopard.
>
> thanks for your interest.
>
> Ricardo
>
> On Wed, Feb 25, 2009 at 9:45 PM, Brian W. Barrett <brbarret_at_[hidden]>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_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>
>
>