[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.