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: Remote service using shared mem
Date Tue, 17 Sep 2013 19:03:37 GMT
Hi Gerrit,

Thanks for the reply, but lets keep the list communication in English
please ;). One new patch would be great!

Regarding the code:
I have found another (the last) issue as well. In the example_proxy_shm a
direct method of the RSA is used for sending data. Since the proxy and the
rsa are in 2  bundles this doesn't work on a mac. Funny thing is, there is
already some code for setting a callback method. Simply enabling this code
made everything work for me...

Is there a reason why it isn't used?

2013/9/17 Gerrit Binnenmars <gerritbinnenmars@gmail.com>

> Op 17-9-2013 19:50, Alexander Broekhuis schreef:
>  I did some more testing/debugging and have some changes :)
>> 1) In remote_services/CMakeLists.txt you re-enabled the inclusion of the
>> utils directory.
>> 2) The thread in Discovery and the RSA itself do not have a return value,
>> also the thread_exit is only called if a precondition is met, otherwise
>> the
>> method just return without an exit. This can be solved by always calling
>> apr_thread_exit and returning NULL at the end.
>> 3) As mentioned in the other mail, the RSA needs to be updated for
>> CELIX-82. Simple fix, take a look at the other RSA for the code :).
>> 4) When creating a thread in the RSA you add a NULL pointer to the hashmap
>> and only later on create an actual pointer. This results in a NULL pointer
>> in the hashmap and the pointer to the thread being "lost".  Simply putting
>> the thread pointer in the hashmap after thread creation is enough to fix
>> this. This one was also the reason for the segfault when the framework
>> stops and not the use of shmem etc.
>> Ps: I can make those changes and add the code, but if you prefer to verify
>> my remarks and make a new patch I can wait a bit.
>> Pps: The code looks good! And together with a few simple fixes Pepijn
>> committed today I think not a lot of extra work is needed before
>> committing
>> this.
>> 2013/9/17 Alexander Broekhuis <a.broekhuis@gmail.com>
>>  Hi,
>>> Unrelated to the previous problems, Pepijn today fixed issue CELIX-82
>>> [1].
>>> This also requires an update in the SHM code. Could you also port that
>>> change to your code?
>>> 2013/9/17 Björn Petri <bjoern.petri@sundevil.de>
>>>  Hi Alexander,
>>>> I already updated the issues we spoke about, so stopping the
>>>> example-service does not segfault any more.
>>> I tried a bit with the new patch, and still have a problem. I haven't
>>> tested it in detail, but during the stop of the RSA something unexpected
>>> happens.
>>> The problem reported is: celix(82209,0x10ff7a180) malloc: *** error for
>>> object 0x7f9ff48dda00: pointer being freed was not allocated
>>> *** set a breakpoint in malloc_error_break to debug
>>> A reason for such errors can be the use of pools and still freeing
>>> pointers. If a pointer which is in a pool is being freed, during the apr
>>> shutdown it is freed again.
>>> In this case I suspect it has to do with the use of APR for some shmem
>>> functions, while other parts are done using standard (low level) api
>>> calls.
>>> [1]: https://issues.apache.org/**jira/browse/CELIX-82<https://issues.apache.org/jira/browse/CELIX-82>
>>> --
>>> Met vriendelijke groet,
>>> Alexander Broekhuis
>>  Hallo Alexander,
> Bedankt voor de snelle review. Het handigste is het denk ik als we 1
> nieuwe patch maken voor alles.
> Zal ik morgen vragen aan Bjorn.
> Groeten Gerrit

Met vriendelijke groet,

Alexander Broekhuis

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