discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GWorkspace hangs on first exit attempt. Remote objects problem?


From: Sebastian Reitenbach
Subject: Re: GWorkspace hangs on first exit attempt. Remote objects problem?
Date: Sat, 09 Mar 2013 09:28:53 +0100
User-agent: SOGoMail 2.0.4b

On Friday, March 8, 2013 06:52 CET, Richard Frith-Macdonald 
<richard@tiptree.demon.co.uk> wrote:

>
> On 8 Mar 2013, at 01:09, Riccardo Mottola wrote:
>
> > Hi,
> >
> > some further information
> >
> > 1) unregisterClient is (oneway void). So it is asynchronous, no need to 
> > wait for any value returned (Sebastian suggested doing this to me, but is 
> > already correct)
> > 2) if I wrap [fswatcher unregisterClient] in an exception handler, on the 
> > machines which caouse problems I do get an exception.
> >
> > 2013-03-08 01:06:25.990 GWorkspace[7503] [GWorkspace 
> > shouldTerminateApplication] unregister fswatcher: <NSException: 0x318ac38> 
> > NAME:NSInvalidReceivePortException REASON:invalidated while awaiting reply 
> > INFO:(null)
> >
> > Doesn't it look like exit() kills fswatcher but something still needs to be 
> > sent? The stacktrace is:
> >
> > #0  -[NSException raise] (self=0x232efb8,
> >    _cmd=0x7ffff6e2f9e0 <_OBJC_SELECTOR_TABLE+384>) at NSException.m:955
> > #1  0x00007ffff696a6f1 in +[NSException raise:format:] (
> >    self=0x7ffff6e2fb40 <_OBJC_Class_NSException>, _cmd=<optimized out>,
> >    name=0x7ffff6e63120 <_OBJC_INSTANCE_0>,
> >    format=0x7ffff6e1b200 <_OBJC_INSTANCE_68>) at NSException.m:835
> > #2  0x00007ffff69383e3 in -[NSConnection(Private) _getReplyRmc:] (
> >    self=0x124a7d8, _cmd=0x7ffff6e1cdc0 <_OBJC_SELECTOR_TABLE+1536>, sn=26)
> >    at NSConnection.m:3219
> > #3  0x00007ffff6933422 in -[NSConnection(GNUstepExtensions) 
> > forwardInvocation:forProxy:] (self=0x124a7d8, _cmd=0x7ffff6e2ad10 
> > <_OBJC_SELECTOR_TABLE+592>,
> >    inv=0x22bd328, object=0x12de0f8) at NSConnection.m:2086
> > #4  0x00007ffff6a7472b in GSFFIInvocationCallback (cif=0x232eee0,
> >    retp=0x7fffffffd7a0, args=<optimized out>, user=0x2366718)
> >    at GSFFIInvocation.m:629
> > #5  0x00007ffff1c4ad09 in ffi_closure_unix64_inner ()
> >   from /usr/lib64/libffi.so.6
> > #6  0x00007ffff1c4b054 in ffi_closure_unix64 () from /usr/lib64/libffi.so.6
> > #7  0x00000000004137ad in -[GWorkspace applicationShouldTerminate:] (
> >    self=0xd0ca48, _cmd=<optimized out>, app=<optimized out>)
> >    at GWorkspace.m:635
> > #8  0x00007ffff70daf02 in -[NSApplication terminate:] (self=0xd2be98,
> >    _cmd=<optimized out>, sender=<optimized out>) at NSApplication.m:3462
> >
> >
> > I see _getReplyRmc:  but there is going to be none, the app is dead and it 
> > is oneway void.
> >
> > Does this sound plausible?
>
> If it's a oneway void cal, it shouldn't be waiting for a reply.
> You could try going back up the stack a bit and examining the invocation, to 
> see what selector is actually being used and what the type information for 
> the selector is (does it think it's oneway)?

I hope that's what you are interested in, let me know if you meant to get 
something else:
Its on OpenBSD amd64.

Breakpoint 1, -[NSException raise] (self=0x20aa86a08,
    _cmd=0x203ef8440 <.objc_selector_list+144>) at NSException.m:956
956       if (_reserved == 0)
(gdb) bt
#0  -[NSException raise] (self=0x20aa86a08,
    _cmd=0x203ef8440 <.objc_selector_list+144>) at NSException.m:956
#1  0x00000002039efd47 in +[NSException raise:format:arguments:] (
    self=0x203ef8320 <_OBJC_CLASS_NSException>,
    _cmd=0x203ef83f0 <.objc_selector_list+64>, name=0x203f24dc0 <.objc_str>,
    format=0x203ee8090 <.objc_str189>, argList=0x7f7ffffbe720)
    at NSException.m:849
#2  0x00000002039efc7e in +[NSException raise:format:] (
    self=0x203ef8320 <_OBJC_CLASS_NSException>,
    _cmd=0x203ee8850 <.objc_selector_list+1024>, name=0x203f24dc0 <.objc_str>,
    format=0x203ee8090 <.objc_str189>) at NSException.m:835
#3  0x00000002039a010b in -[NSConnection(Private) _getReplyRmc:] (
    self=0x200b5c2c8, _cmd=0x203ee8aa0 <.objc_selector_list+1616>, sn=15)
    at NSConnection.m:3218
#4  0x0000000203999574 in -[NSConnection(GNUstepExtensions) 
forwardInvocation:forProxy:] (self=0x200b5c2c8, _cmd=0x203ef3f20 
<.objc_selector_list+672>,
    inv=0x2095ddd08, object=0x202fd5608) at NSConnection.m:2086
#5  0x00000002039e9ab8 in -[NSDistantObject forwardInvocation:] (
    self=0x202fd5608, _cmd=0x203f73870 <.objc_selector_list+64>,
    anInvocation=0x2095ddd08) at NSDistantObject.m:606
#6  0x0000000203b617b8 in GSFFIInvocationCallback (cif=0x20ffef700, 
    retp=0x7f7ffffbf130, args=0x7f7ffffbef90, user=0x20aa86a48)
    at GSFFIInvocation.m:629
---Type <return> to continue, or q <return> to quit---
#7  0x0000000205740c76 in ffi_closure_unix64_inner (closure=0x20da91010,
    rvalue=0x7f7ffffbf130, reg_args=0x7f7ffffbf080,
    argp=0x7f7ffffbf150 "о­\016\002") at src/x86/ffi64.c:620
#8  0x0000000205741510 in ffi_closure_unix64 ()
   from /usr/local/lib/libffi.so.0.0
#9  0x0000000000448bfc in -[GWorkspace applicationShouldTerminate:] (
    self=0x208e5de08, _cmd=0x20eaa4910 <.objc_selector_list+864>,
    app=0x210291b08) at GWorkspace.m:635
#10 0x000000020e53fa8c in -[NSApplication terminate:] (self=0x210291b08,
    _cmd=0x205f81ca0, sender=0x20b37b808) at NSApplication.m:3462
#11 0x000000020e53c1b8 in -[NSApplication sendAction:to:from:] (
    self=0x210291b08, _cmd=0x20eb06ee0 <.objc_selector_list+2144>,
    aSelector=0x205f81ca0, aTarget=0x0, sender=0x20b37b808)
    at NSApplication.m:2230
#12 0x000000020e649154 in -[NSMenu performActionForItemAtIndex:] (
    self=0x20c76dd08, _cmd=0x20eb09440 <.objc_selector_list+720>, index=11)
    at NSMenu.m:1320
#13 0x000000020e656e75 in -[NSMenuView _trackWithEvent:startingMenuView:] (
    self=0x20c927c08, _cmd=0x20eb09980 <.objc_selector_list+2064>,
    event=0x202ca0b88, mainWindowMenuView=0x0) at NSMenuView.m:1819
#14 0x000000020e656fd0 in -[NSMenuView trackWithEvent:] (self=0x20c927c08,
    _cmd=0x20eb09370 <.objc_selector_list+512>, event=0x20f801d88)
    at NSMenuView.m:1851
---Type <return> to continue, or q <return> to quit---
#15 0x000000020e657298 in -[NSMenuView mouseDown:] (self=0x20c927c08,
    _cmd=0x20eb80370 <.objc_selector_list+5120>, theEvent=0x20f801d88)
    at NSMenuView.m:1891
#16 0x000000020e783e10 in -[NSWindow sendEvent:] (self=0x2016d9208, 
    _cmd=0x20eaa55c0 <.objc_selector_list+4112>, theEvent=0x20f801d88)
    at NSWindow.m:3790
#17 0x000000020e53bb67 in -[NSApplication sendEvent:] (self=0x210291b08,
    _cmd=0x20eaa55c0 <.objc_selector_list+4112>, theEvent=0x20f801d88)
    at NSApplication.m:2105
#18 0x000000020e53a07d in -[NSApplication run] (self=0x210291b08,
    _cmd=0x72c060 <.objc_selector_list+64>) at NSApplication.m:1562
#19 0x00000000004419b6 in gnustep_base_user_main (argc=1, argv=0x7f7ffffc0818,
    env=0x7f7ffffc0828) at main.m:38
#20 0x0000000203a8933a in main (argc=1, argv=0x7f7ffffc0818,
    env=0x7f7ffffc0828) at NSProcessInfo.m:984
#21 0x0000000000441711 in ___start ()
#22 0x0000000000000000 in ?? ()
(gdb)
(gdb) frame 9
#9  0x0000000000448bfc in -[GWorkspace applicationShouldTerminate:] (
    self=0x208e5de08, _cmd=0x20eaa4910 <.objc_selector_list+864>,
    app=0x210291b08) at GWorkspace.m:635
635                 [fswatcher unregisterClient: (id <FSWClientProtocol>)self];
(gdb) print _cmd
$1 = (SEL) 0x20eaa4910 <.objc_selector_list+864>
(gdb) print .objc_selector_list+864
A syntax error in expression, near `objc_selector_list+864'.
(gdb) print *.objc_selector_list+864
A syntax error in expression, near `objc_selector_list+864'.
(gdb) print *_cmd
$2 = {{name = 0x43f9 <Address 0x43f9 out of bounds>, index = 17401},
  types = 0x20e93ff61 "Q24@0:8@16"}
(gdb) print *_cmd^CQuit
(gdb) frame 8
#8  0x0000000205741510 in ffi_closure_unix64 ()
   from /usr/local/lib/libffi.so.0.0
(gdb) frame 7
#7  0x0000000205740c76 in ffi_closure_unix64_inner (closure=0x20da91010,
    rvalue=0x7f7ffffbf130, reg_args=0x7f7ffffbf080,
    argp=0x7f7ffffbf150 "\320\276\255\016\002") at src/x86/ffi64.c:620
620     src/x86/ffi64.c: No such file or directory.
(gdb) frame 6
#6  0x0000000203b617b8 in GSFFIInvocationCallback (cif=0x20ffef700,
    retp=0x7f7ffffbf130, args=0x7f7ffffbef90, user=0x20aa86a48)
    at GSFFIInvocation.m:629
629       [obj forwardInvocation: invocation];
(gdb) print invocation
$3 = (struct GSFFIInvocation *) 0x2095ddd08
(gdb) print *invocation
$4 = {<> = {<> = {isa = 0x203f736e0 <_OBJC_CLASS_GSFFIInvocation>},
    _sig = 0x203f736e0 <_OBJC_CLASS_GSFFIInvocation>,
    _cframe = 0x203f736e0 <_OBJC_CLASS_GSFFIInvocation>,
    _retval = 0x203f736e0 <_OBJC_CLASS_GSFFIInvocation>,
    _target = 0x203f736e0 <_OBJC_CLASS_GSFFIInvocation>,
    _selector = 0x203f736e0 <_OBJC_CLASS_GSFFIInvocation>,
    _numArgs = 66533088, _info = 0x203f736e0 <_OBJC_CLASS_GSFFIInvocation>,
    _argsRetained = 224 'à', _targetRetained = 224 'à',
    _validReturn = 224 'à', _sendToSuper = 224 'à', 
    _retptr = 0x203f736e0 <_OBJC_CLASS_GSFFIInvocation>,
    _internal = 0x203f736e0 <_OBJC_CLASS_GSFFIInvocation>}, 
  _retbuf = 
"à6÷\003\002\000\000\000Èo¨\n\002\000\000\000\000÷þ\017\002\000\000\000\000\000\000\000\000\000\000",
  _frame = 0x203f736e0 <_OBJC_CLASS_GSFFIInvocation>}
(gdb) print *invocation->_selector
$5 = {{name = 0x203f73480 <_OBJC_METACLASS_GSFFIInvocation> "°Äñ\003\002",
    index = 8656467072},
  types = 0x203f05280 <_OBJC_CLASS_NSInvocation> "@Nð\003\002"}
(gdb)


>
>
> _______________________________________________
> Discuss-gnustep mailing list
> Discuss-gnustep@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnustep








reply via email to

[Prev in Thread] Current Thread [Next in Thread]