Hi Canh,
You are right about that configuration streams except the "well known" ones can
be deleted but if the stream configuration object exist and numOpeners = 0
there is an inconsistency that must be considered as "out of synch" that
requires a restart.
Regards
Lennart
From: Canh Van
Thanks Lennart,
Please my comments.
Regards
Canh
From: Lennart Lund
Sent: Tuesday, March 26, 2019 3:41 PM
To: Canh Van Truong ; Vu Minh Nguyen
Cc: opensaf-devel@lists.sourceforge.net; Lennart Lund
Subject: RE: [PATCH 1/1] log: logd crash due to well known stream has
numOpeners = 0
Hi Canh,
I don't really understand what you suggest and how this will keep standby and
active in sync. However, there are two things I would like to mention:
1. It is not only the "well known streams" if you by this means the alarm,
notification and system streams that must never have 0
Thanks all,
With the case that causes the osaflogd crash (the "numOpeners" of "well know
stream" is 0), I suggest solution is that when the standby process the
checkpoint of open stream, it should always check if the ("numOpeners" ckpt
from active) less than ("numOpeners" of standby + 1), The
Hi Canh,
Just a small comment.
For "Well known streams" it shall never be possible that numOpeners becomes 0
since the log service itself is one of the "openers" (the first opener) and
that "opener" is never closed. This also applies for any configuration stream
(well known streams are also
Hi Canh,
Thanks for your good finding.
There is other possibility that well-known streams can be deleted as well.
Looking at below code, proc_stream_open_msg().
rc = lgs_mds_msg_send(cb, , >fr_dest, >mds_ctxt,
MDS_SEND_PRIORITY_HIGH);
// Checkpoint the
Hi Lennart and aVu,
Thanks for your review.
I check the code again and guess the condition for the crash:
1/Current "numOpeners" of one well known stream = 2. This mean that just one
client open this stream. LOGD get close that stream request from client. The
closing stream is successful on
Hi Canh,
Log stream is allocated with brackets, (), going with new operator; It means
numOpeners field is already zero-initialized.
log_stream_t *stream = new (std::nothrow) log_stream_t();
So, I don't think your change will address the issue. The bug may locate at
another place.
Hi Canh,
Ack
Thanks
Lennart
-Original Message-
From: Canh Van Truong
Sent: den 14 mars 2019 12:49
To: Lennart Lund ; Vu Minh Nguyen
Cc: opensaf-devel@lists.sourceforge.net; Canh Van Truong
Subject: [PATCH 1/1] log: logd crash due to well known stream has numOpeners =
0 [#3018]
When the stream is created, the numOpeners is not initialized and
may be started with unexpected value (e.g max value of unsigned int32).
It is not correct. That may cause when client close the well known stream
and numOpeners may be 0. The crash happens.
The "numOpeners" should be initialized
10 matches
Mail list logo