celix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexander Broekhuis <a.broekh...@gmail.com>
Subject Re: Crashes due to logHelper in RemoteServiceAdmin
Date Mon, 22 Dec 2014 15:55:33 GMT
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

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.


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

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message