Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

GWorkspace: hang on exit. Clang?

14 views
Skip to first unread message

Riccardo Mottola

unread,
Oct 23, 2012, 7:50:09 PM10/23/12
to Discuss GNUstep
Hi,

anyone else noticed the problem that GWorkspace doesn't "quit" when
issuing "quit" and choosing quit in the alert panel?

I cannot reproduce it on all computers. On linux/gcc/x86-32 it just
seems to work fine!
On freebsd8/gcc/x86-32 it works fine too.
On freensd9/clang/x86-32 it hangs and I get the following exception:
2012-10-23 23:22:17.898 GWorkspace[3318] reported exception -
<NSException: 0x2bd04344> NAME:NSInvalidReceivePortException
REASON:invalidated while awaiting reply INFO:(null)

I tried breaking in GDB, but it seems to have problems right now on that
platform
I get a lot of:
Dwarf Error: Cannot handle DW_FORM_<unknown> in DWARF reader [in module
/Local/Library/Bundles/IBViewViewer.inspector/IBViewViewer]

and it doesn't stop in [NSException raise].

The first thing however would be to understand if it is a clang problem,
an OS problem or whatever, depending on who can reproduce this problem
and who not!


Riccardo

David Chisnall

unread,
Oct 24, 2012, 3:31:24 AM10/24/12
to Riccardo Mottola, Discuss GNUstep
On 24 Oct 2012, at 00:50, Riccardo Mottola wrote:

> 2012-10-23 23:22:17.898 GWorkspace[3318] reported exception - <NSException: 0x2bd04344> NAME:NSInvalidReceivePortException REASON:invalidated while awaiting reply INFO:(null)

I've seen this in the NSConnection tests before, but whenever I find a bit of time to debug it, the failure stops appearing. It's quite frustrating: it failed 5 times in a row when I didn't have time for debugging, then when I did I ran it a hundred times without managing to reproduce the failure.

Since the failure appears and disappears with the same binary, I am inclined to suspect a race condition somewhere in the NSConnection code, which various compilation modes make more or less likely to be a problem by subtly altering the timing of the test. Whether this race is intrinsic to the source code or introduced by a buggy optimisation, I don't know.

David

-- Send from my Jacquard Loom


Sebastian Reitenbach

unread,
Oct 24, 2012, 3:49:44 AM10/24/12
to Riccardo Mottola, Discuss GNUstep

Am Mittwoch, 24. Oktober 2012 01:50 CEST, Riccardo Mottola <riccardo...@libero.it> schrieb:

> Hi,
>
> anyone else noticed the problem that GWorkspace doesn't "quit" when
> issuing "quit" and choosing quit in the alert panel?
>
> I cannot reproduce it on all computers. On linux/gcc/x86-32 it just
> seems to work fine!
> On freebsd8/gcc/x86-32 it works fine too.
> On freensd9/clang/x86-32 it hangs and I get the following exception:
> 2012-10-23 23:22:17.898 GWorkspace[3318] reported exception -
> <NSException: 0x2bd04344> NAME:NSInvalidReceivePortException
> REASON:invalidated while awaiting reply INFO:(null)
>
> I tried breaking in GDB, but it seems to have problems right now on that
> platform
> I get a lot of:
> Dwarf Error: Cannot handle DW_FORM_<unknown> in DWARF reader [in module
> /Local/Library/Bundles/IBViewViewer.inspector/IBViewViewer]
>
> and it doesn't stop in [NSException raise].
>
> The first thing however would be to understand if it is a clang problem,
> an OS problem or whatever, depending on who can reproduce this problem
> and who not!

I'm not sure, I've seen the Exception, but what I have seen is:
click on quit in the menu, and then also in the panel, and nothing happens.
Then try logout afterward, and it will log you out.
Same thing the other way around, first trying logout, and nothing happens,
then quit afterward, and you are out.

Seen on OpenBSD, i386, using gcc as compiler, and libobjc from gcc.

Sebastian


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






Riccardo Mottola

unread,
Oct 24, 2012, 6:15:31 AM10/24/12
to Sebastian Reitenbach, Discuss GNUstep
Hi,

On 2012-10-24 09:49:44 +0200 "Sebastian Reitenbach"
<seba...@l00-bugdead-prods.de> wrote:


> I'm not sure, I've seen the Exception, but what I have seen is:
> click on quit in the menu, and then also in the panel, and nothing
> happens.
> Then try logout afterward, and it will log you out.
> Same thing the other way around, first trying logout, and nothing
> happens,
> then quit afterward, and you are out.
>
> Seen on OpenBSD, i386, using gcc as compiler, and libobjc from gcc.
>
good (or bad...) it means that it is not a "clang/libobjc2" only thing.
I did nto try to mix logout/quit. However I noticed that on a system
where this is happening it happens consistently (so the race condition
is always satisfied) and that issuing a second time quit always works
too!

I was thinking this is a strange bug in the GWorkspace code but if
David sees its also in the tests, then it might be base.

Riccardo


0 new messages