Re: [lttng-dev] [PATCH lttng-ust 2/8] Fix: missing event removal from the event hashtable

2018-02-08 Thread Mathieu Desnoyers
- On Feb 8, 2018, at 3:42 PM, Francis Deslauriers 
francis.deslauri...@efficios.com wrote:

> 2018-02-07 15:50 GMT-05:00 Mathieu Desnoyers :
>>
>>
>> - On Feb 2, 2018, at 2:48 PM, Francis Deslauriers
>> francis.deslauri...@efficios.com wrote:
>>
>> Is this really a fix ? Or is it a preparation step in order to be able to
>> remove events before the end of the session lifetime ?
> 
> It's not a fix in the sense that it was not causing issues because it
> was only called at session destruction.
> But it's a fix in the sense that the _lttng_event_destroy function was
> not doing all the work necessary to destroy an event passed as
> argument. Taken by itself, a call to this function would leave one of
> the hlists of the hash table in a incorrect state by freeing an
> element without cds_hlist_del() it from the hlist before.
> 
> That was my thought process. What do you think?

A fix is something I need to backport to make things work. I don't see
this as a fix based on that definition.

Thanks,

Mathieu

> 
> Thank you,
> Francis
> 
>> Thanks,
>>
>> Mathieu
>>
>>
>>> Signed-off-by: Francis Deslauriers 
>>> ---
>>> liblttng-ust/lttng-events.c | 4 
>>> 1 file changed, 4 insertions(+)
>>>
>>> diff --git a/liblttng-ust/lttng-events.c b/liblttng-ust/lttng-events.c
>>> index f4a7ccc..7419f78 100644
>>> --- a/liblttng-ust/lttng-events.c
>>> +++ b/liblttng-ust/lttng-events.c
>>> @@ -883,7 +883,11 @@ void _lttng_event_destroy(struct lttng_event *event)
>>> {
>>>   struct lttng_enabler_ref *enabler_ref, *tmp_enabler_ref;
>>>
>>> + /* Remove from event list. */
>>>   cds_list_del(&event->node);
>>> + /* Remove from event hash table. */
>>> + cds_hlist_del(&event->hlist);
>>> +
>>>   lttng_destroy_context(event->ctx);
>>>   lttng_free_event_filter_runtime(event);
>>>   /* Free event enabler refs */
>>> --
>>> 2.7.4
>>
>> --
>> Mathieu Desnoyers
>> EfficiOS Inc.
>> http://www.efficios.com
> 
> 
> 
> --
> Francis Deslauriers
> Software developer
> EfficiOS inc.

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
___
lttng-dev mailing list
lttng-dev@lists.lttng.org
https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev


Re: [lttng-dev] [PATCH lttng-ust 2/8] Fix: missing event removal from the event hashtable

2018-02-08 Thread Francis Deslauriers
2018-02-07 15:50 GMT-05:00 Mathieu Desnoyers :
>
>
> - On Feb 2, 2018, at 2:48 PM, Francis Deslauriers 
> francis.deslauri...@efficios.com wrote:
>
> Is this really a fix ? Or is it a preparation step in order to be able to
> remove events before the end of the session lifetime ?

It's not a fix in the sense that it was not causing issues because it
was only called at session destruction.
But it's a fix in the sense that the _lttng_event_destroy function was
not doing all the work necessary to destroy an event passed as
argument. Taken by itself, a call to this function would leave one of
the hlists of the hash table in a incorrect state by freeing an
element without cds_hlist_del() it from the hlist before.

That was my thought process. What do you think?

Thank you,
Francis

> Thanks,
>
> Mathieu
>
>
>> Signed-off-by: Francis Deslauriers 
>> ---
>> liblttng-ust/lttng-events.c | 4 
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/liblttng-ust/lttng-events.c b/liblttng-ust/lttng-events.c
>> index f4a7ccc..7419f78 100644
>> --- a/liblttng-ust/lttng-events.c
>> +++ b/liblttng-ust/lttng-events.c
>> @@ -883,7 +883,11 @@ void _lttng_event_destroy(struct lttng_event *event)
>> {
>>   struct lttng_enabler_ref *enabler_ref, *tmp_enabler_ref;
>>
>> + /* Remove from event list. */
>>   cds_list_del(&event->node);
>> + /* Remove from event hash table. */
>> + cds_hlist_del(&event->hlist);
>> +
>>   lttng_destroy_context(event->ctx);
>>   lttng_free_event_filter_runtime(event);
>>   /* Free event enabler refs */
>> --
>> 2.7.4
>
> --
> Mathieu Desnoyers
> EfficiOS Inc.
> http://www.efficios.com



-- 
Francis Deslauriers
Software developer
EfficiOS inc.
___
lttng-dev mailing list
lttng-dev@lists.lttng.org
https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev


Re: [lttng-dev] [PATCH lttng-ust 2/8] Fix: missing event removal from the event hashtable

2018-02-07 Thread Mathieu Desnoyers


- On Feb 2, 2018, at 2:48 PM, Francis Deslauriers 
francis.deslauri...@efficios.com wrote:

Is this really a fix ? Or is it a preparation step in order to be able to
remove events before the end of the session lifetime ?

Thanks,

Mathieu


> Signed-off-by: Francis Deslauriers 
> ---
> liblttng-ust/lttng-events.c | 4 
> 1 file changed, 4 insertions(+)
> 
> diff --git a/liblttng-ust/lttng-events.c b/liblttng-ust/lttng-events.c
> index f4a7ccc..7419f78 100644
> --- a/liblttng-ust/lttng-events.c
> +++ b/liblttng-ust/lttng-events.c
> @@ -883,7 +883,11 @@ void _lttng_event_destroy(struct lttng_event *event)
> {
>   struct lttng_enabler_ref *enabler_ref, *tmp_enabler_ref;
> 
> + /* Remove from event list. */
>   cds_list_del(&event->node);
> + /* Remove from event hash table. */
> + cds_hlist_del(&event->hlist);
> +
>   lttng_destroy_context(event->ctx);
>   lttng_free_event_filter_runtime(event);
>   /* Free event enabler refs */
> --
> 2.7.4

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
___
lttng-dev mailing list
lttng-dev@lists.lttng.org
https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev


[lttng-dev] [PATCH lttng-ust 2/8] Fix: missing event removal from the event hashtable

2018-02-02 Thread Francis Deslauriers
Signed-off-by: Francis Deslauriers 
---
 liblttng-ust/lttng-events.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/liblttng-ust/lttng-events.c b/liblttng-ust/lttng-events.c
index f4a7ccc..7419f78 100644
--- a/liblttng-ust/lttng-events.c
+++ b/liblttng-ust/lttng-events.c
@@ -883,7 +883,11 @@ void _lttng_event_destroy(struct lttng_event *event)
 {
struct lttng_enabler_ref *enabler_ref, *tmp_enabler_ref;
 
+   /* Remove from event list. */
cds_list_del(&event->node);
+   /* Remove from event hash table. */
+   cds_hlist_del(&event->hlist);
+
lttng_destroy_context(event->ctx);
lttng_free_event_filter_runtime(event);
/* Free event enabler refs */
-- 
2.7.4

___
lttng-dev mailing list
lttng-dev@lists.lttng.org
https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev