[OGo-Developer] gsmake2 branch segmentation fault
Sebastian Reitenbach
developer@opengroupware.org
Sun, 24 Feb 2008 21:33:30 +0100
Hi,
developer@opengroupware.org wrote:
> On 19.02.2008, at 22:40, Will Hawkins wrote:
> > When I compile gstep-base with the suggested [anObject class]
> > instead of GSObjCClass(anObject) I get the following (interesting)
> > debug info:
> >
> > Deallocated LSCompanyInfo (0xb52fad0) sent release
> > Deallocated object (0x13b67c0) sent instanceMethodForSelector:
with that variable, it was immediately followed by an exception:
/usr/local/sbin/ogo-webui-1.1: Uncaught exception
NSInternalInconsistencyException, reason: nul release for object in
autorelease pool
> >
> > The ui still segvs at the same spot, but that is interesting
> > behavior. The selector is looking for the release method of each
> > object in the release pool. Is it possible that the ogo/sope code is
> > overwriting that method for one of those objects due to a bounds
> > error? Or, are we inheriting from something that we assume provides
> > a release method that actually doesn't? (The second seems less
> > likely but would be easier to fix!).
>
I also added the [NSObject enableDoubleReleseCheck: YES] directly to the
main function of ogo-webui. It generated this output, and stopped
immediately:
2008-02-21 19:49:26.724 ogo-webui-1.1[8491] autorelease called without pool
for object (80f7288) of class NSMethodSignature in thread <NSThread:
0x80e1738>
2008-02-21 19:49:26.729 ogo-webui-1.1[8491] autorelease called without pool
for object (81ade48) of class GSAutoreleasedMemory in thread <NSThread:
0x80e1738>
2008-02-21 19:49:26.730 ogo-webui-1.1[8491] autorelease called without pool
for object (81946f8) of class GSCInlineString in thread <NSThread:
0x80e1738>
2008-02-21 19:49:26.730 ogo-webui-1.1[8491] autorelease called without pool
for object (819a610) of class NSException in thread <NSThread: 0x80e1738>
2008-02-21 19:49:26.730 ogo-webui-1.1[8491] autorelease called without pool
for object (818ce70) of class GSMutableArray in thread <NSThread: 0x80e1738>
/usr/local/sbin/ogo-webui-1.1: Uncaught exception
NSInvalidArgumentException, reason: Can not determine type information for
+[NSObject enableDoubleReleseCheck:]
Aborted
I'm not perfectly sure, whethe adding it there, is the correct place, or
whether I do have to do more?
>
> Well, LSCompanyInfo is an EnterpriseObject (a GDL1 database object).
> Or it might be an EOFault which fakes being an LSCompanyInfo.
>
> In any case, GDL1 does 'interesting' stuff with caching and faulting
> objects. Its not unlikely that the issue is hidden in there.
>
needs more investigation.
cheers
Sebastian
PS: /me is whooha on IRC.