celix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bjoern Petri <bjoern.pe...@sundevil.de>
Subject Re: Crashes due to logHelper in RemoteServiceAdmin
Date Mon, 22 Dec 2014 16:35:31 GMT

works fine for me!

On 2014-12-22 17:12, Alexander Broekhuis wrote:
> I've pushed a fix for this, can you please check if it is ok now?
> 
> 2014-12-22 16:55 GMT+01:00 Alexander Broekhuis <a.broekhuis@gmail.com>:
> 
>> I've found the problem.
>> 
>> What happens: The LogService uses a ServiceFactory. Following the 
>> spec, a
>> ServiceFactory will only create an actual service the first time a 
>> bundle
>> calls "getService". This service is cached, and reused each time a 
>> bundle
>> does a getService on the factory.
>> So for the logger, this means that each bundle has an own instance of 
>> the
>> logger.
>> 
>> In the case of the RSA, the RSA does a getService, which creates the
>> initial log service. Then during an import a new loghelper is created
>> (still within the RSA bundle). If for that specific import no proxy 
>> bundle
>> is available, the import will be destroyed.
>> Along with destroying the import, the loghelper is also destroyed. 
>> Since
>> one bundle only has one log_service, that log_service is nog 
>> "unget"ed.
>> Which results in the segfault.
>> 
>> A possible solution would be to pass the log_helper via the API to all
>> parts of the RSA bundle. Instead of retrieving it again for every 
>> object.
>> 
>> Wdyt?
>> 
>> 
>> 2014-12-22 16:04 GMT+01:00 Bjoern Petri <bjoern.petri@sundevil.de>:
>> 
>>> 
>>> Hi Alexander,
>>> 
>>> I see the same, but only with the latest commit. So I assume some of 
>>> your
>>> (correct) changes in the last commit is triggering this now. I'll 
>>> check
>>> whether I can figure out what's going on here ...
>>> 
>>> Regards,
>>>   Bjoern
>>> 
>>> 
>>> 
>>> On 2014-12-22 15:01, Alexander Broekhuis wrote:
>>> 
>>>> Hi,
>>>> 
>>>> I'm working on the current remote_proxy_factory to make it more 
>>>> generic,
>>>> so
>>>> that it is easier to use.
>>>> 
>>>> During testing I ran into a crash when an endpoint is published for 
>>>> which
>>>> no proxy bundle is available. This crash is due to a call to the
>>>> logHelper_log function. I tried to trace the problem but don't see
>>>> anything
>>>> whats going on. At some point an internal pointer of the log_service
>>>> becomes invalid...
>>>> 
>>>> @Bjoern: I see you pushed the changes to the RSA with the LogHelper, 
>>>> have
>>>> you seen this before? I can reproduce it by simply running the 
>>>> calculator
>>>> example of the current master.
>>>> 
>>> 
>> 
>> 
>> --
>> Met vriendelijke groet,
>> 
>> Alexander Broekhuis
>> 

Mime
View raw message