Hi Hoang,
We have no option that , why because reproducible steps are not easy .
Please find the additional `2202_addtional.patch` patch on top of
published patch
this will confirm us it is completely not related to SHM free size.
-AVM
On 11/30/2016 12:10 PM, Vo Minh Hoang wrote:
Dear Mahesh,
I will do following your request.
Please note that test case executing time is very long so result might not
be available in today.
Thank you and best regards,
Hoang
-----Original Message-----
From: A V Mahesh [mailto:[email protected]]
Sent: Wednesday, November 30, 2016 1:35 PM
To: Vo Minh Hoang <[email protected]>
Cc: [email protected]; [email protected]
Subject: Re: [PATCH 0 of 3] Review Request for leap : now leap library
ensure shm availability before writing [#2202]
Hi Hoang,
Apply these change test and provide sys log at the time issue occurred.
============================================================================
========
diff --git a/osaf/libs/core/leap/os_defs.c b/osaf/libs/core/leap/os_defs.c
--- a/osaf/libs/core/leap/os_defs.c
+++ b/osaf/libs/core/leap/os_defs.c
@@ -865,11 +865,15 @@ uint32_t ncs_os_posix_shm(NCS_OS_POSIX_S
}
/* Checking whether sufficient shared memory is
available to write the data, to be safer side ffree reduced to 1 block size
*/
- if (req->info.write.i_write_size >
(statsvfs.f_bfree * statsvfs.f_frsize)) {
+ if (req->info.write.i_write_size >
((statsvfs.f_bfree - 1) * statsvfs.f_frsize)) {
syslog(LOG_ERR, "Insufficient shared memory
space (%ld) available to write the data of size: %ld \n",
(statsvfs.f_bfree *
statsvfs.f_frsize), req->info.write.i_write_size);
return NCSCC_RC_FAILURE;
+ } else {
+ syslog(LOG_ERR, "Sufficient shared
memory space (%ld) available to write the data of size: %ld \n",
+ (statsvfs.f_bfree *
statsvfs.f_frsize), req->info.write.i_write_size);
}
+
}
memcpy((void *)((char *)req->info.write.i_addr +
req->info.write.i_offset), req->info.write.i_from_buff,
req->info.write.i_write_size);
============================================================================
========
-AVM
On 11/30/2016 11:56 AM, A V Mahesh wrote:
Hi Hoang,
Thansk for the test .
Then it looks issue is not related to SHM deficiency ( 100 % used by
other application ) can you please re-test with below changes and
that will confirm us it is completely not related to SHM free size.
replacing:
`if (req->info.write.i_write_size > (statsvfs.f_bfree *
statsvfs.f_frsize)) {`
with below, to be safer side ffree reduced to 1 block size :
`if (req->info.write.i_write_size > ((statsvfs.f_bfree - 1) *
statsvfs.f_frsize)) {
-AVM
On 11/30/2016 11:37 AM, Vo Minh Hoang wrote:
Dear Mahesh,
Unfortunately, I have just receive information that the same core
dump still occur after applying patch.
Here is dump information in short, please tell me if I can do
anything in
support:
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007fe314aa0109 in __memcpy_sse2_unaligned () from
/lib64/libc.so.6
Missing separate debuginfos, use: zypper install
opensaf-ckpt-nodedirector-debuginfo-5.1.0-9999.0.4997518.sle12.x86_64
(gdb) where
#0 0x00007fe314aa0109 in __memcpy_sse2_unaligned () from
/lib64/libc.so.6
#1 0x00007fe315c26082 in memcpy (__len=<optimized out>,
__src=<optimized
out>, __dest=<optimized out>)
at /usr/include/x86_64-linux-gnu/bits/string3.h:51
#2 ncs_os_posix_shm (req=req@entry=0x7ffecb80adb0) at os_defs.c:874
#3 0x0000000000415a80 in cpnd_sec_hdr_update (cb=cb@entry=0x9e57f0,
sec_info=sec_info@entry=0xb8ff60,
cp_node=cp_node@entry=0xb8e8c0) at cpnd_proc.c:1880
#4 0x0000000000406047 in cpnd_ckpt_sec_add (cb=cb@entry=0x9e57f0,
cp_node=0xb8e8c0, id=0x7fe30c002390,
exp_time=1480480471343486000, gen_flag=gen_flag@entry=0) at
cpnd_db.c:457
#5 0x000000000040d17c in cpnd_evt_proc_ckpt_sect_create
(cb=cb@entry=0x9e57f0,
evt=evt@entry=0x7fe30c01e1d0, sinfo=sinfo@entry=0x7fe30c01e828)
at
cpnd_evt.c:2267
#6 0x000000000040eaf4 in cpnd_process_evt (evt=0x7fe30c01e1c0) at
cpnd_evt.c:227
#7 0x00000000004106cd in cpnd_main_process (cb=cb@entry=0x9e57f0) at
cpnd_init.c:579
#8 0x0000000000405383 in main (argc=<optimized out>, argv=<optimized
out>)
at cpnd_main.c:79
Sincerely,
Hoang
-----Original Message-----
From: [email protected] [mailto:[email protected]]
Sent: Tuesday, November 29, 2016 5:37 PM
To: [email protected]; [email protected]
Cc: [email protected]
Subject: [PATCH 0 of 3] Review Request for leap : now leap library
ensure shm availability before writing [#2202]
Summary:leap : now leap library ensure shm availability before
writing [#2202] Review request for Trac Ticket(s): #2202 Peer
Reviewer(s):
Hoang /
Ramesh Pull request to: <<LIST THE PERSON WITH PUSH ACCESS HERE>>
Affected
branch(es): <<LIST ALL AFFECTED BRANCH(ES)>> Development branch: <<IF
ANY GIVE THE REPO URL>>
--------------------------------
Impacted area Impact y/n
--------------------------------
Docs n
Build system n
RPM/packaging n
Configuration files n
Startup scripts n
SAF services n
OpenSAF services y
Core libraries y
Samples n
Tests n
Other n
Comments (indicate scope for each "y" above):
---------------------------------------------
changeset 7b53e1b3754622fe90c22c801adeb7df6d808c30
Author: A V Mahesh <[email protected]>
Date: Tue, 29 Nov 2016 15:59:21 +0530
leap : now leap library ensure shm availability before writing
[#2202]
Issue :
If OSAF_CKPT_SHM_ALLOC_GUARANTEE is NOT set and SHM is 100% used
in system
, pnd Segmentation fault (core dumped) at LEAP memcpy().
Fix :
Now LEAP library ensures shm free space before writing This may
degrade
some performance of cpsv , if OSAF_CKPT_SHM_ALLOC_GUARANTEE is
set, cpsv
give natural performance.
changeset 083114e13c00c9c4267ffe65a86c1a97a951b876
Author: A V Mahesh <[email protected]>
Date: Tue, 29 Nov 2016 16:02:06 +0530
cpsv : update cpsv error handing based on leap changes [#2202]
changeset fb509abb1d1583315f585663fd75bf73e35211a6
Author: A V Mahesh <[email protected]>
Date: Tue, 29 Nov 2016 16:02:58 +0530
mqsv : update mqsv error handing based on leap changes [#2202]
Complete diffstat:
------------------
osaf/libs/common/cpsv/include/cpnd_cb.h | 4 ++--
osaf/libs/common/cpsv/include/cpnd_init.h | 8 ++++----
osaf/libs/common/cpsv/include/cpnd_sec.h | 2 +-
osaf/libs/core/include/ncs_osprm.h | 2 +-
osaf/libs/core/leap/os_defs.c | 20 ++++++++++++++++++--
osaf/services/saf/cpsv/cpnd/cpnd_db.c | 12 ++++++------
osaf/services/saf/cpsv/cpnd/cpnd_evt.c | 82
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
------
osaf/services/saf/cpsv/cpnd/cpnd_proc.c | 31
++++++++++++++++++-------------
osaf/services/saf/cpsv/cpnd/cpnd_res.c | 24
++++++++----------------
osaf/services/saf/cpsv/cpnd/cpnd_sec.cc | 12 ++++++------
osaf/services/saf/glsv/glnd/glnd_shm.c | 2 +-
osaf/services/saf/mqsv/mqnd/mqnd_shm.c | 2 +-
12 files changed, 123 insertions(+), 78 deletions(-)
Testing Commands:
-----------------
Create situation that node SHM reaches 100% usage and then perform
any CPSV operation which writes to SHM
Testing, Expected Results:
--------------------------
<<PASTE COMMAND OUTPUTS / TEST RESULTS>>
Conditions of Submission:
-------------------------
<<HOW MANY DAYS BEFORE PUSHING, CONSENSUS ETC>>
Arch Built Started Linux distro
-------------------------------------------
mips n n
mips64 n n
x86 n n
x86_64 y y
powerpc n n
powerpc64 n n
Reviewer Checklist:
-------------------
[Submitters: make sure that your review doesn't trigger any
checkmarks!]
Your checkin has not passed review because (see checked entries):
___ Your RR template is generally incomplete; it has too many blank
entries
that need proper data filled in.
___ You have failed to nominate the proper persons for review and push.
___ Your patches do not have proper short+long header
___ You have grammar/spelling in your header that is unacceptable.
___ You have exceeded a sensible line length in your
headers/comments/text.
___ You have failed to put in a proper Trac Ticket # into your commits.
___ You have incorrectly put/left internal data in your comments/files
(i.e. internal bug tracking tool IDs, product names etc)
___ You have not given any evidence of testing beyond basic build tests.
Demonstrate some level of runtime or other sanity testing.
___ You have ^M present in some of your files. These have to be removed.
___ You have needlessly changed whitespace or added whitespace crimes
like trailing spaces, or spaces before tabs.
___ You have mixed real technical changes with whitespace and other
cosmetic code cleanup changes. These have to be separate commits.
___ You need to refactor your submission into logical chunks; there is
too much content into a single commit.
___ You have extraneous garbage in your review (merge commits etc)
___ You have giant attachments which should never have been sent;
Instead you should place your content in a public tree to be
pulled.
___ You have too many commits attached to an e-mail; resend as threaded
commits, or place in a public tree for a pull.
___ You have resent this content multiple times without a clear
indication
of what has changed between each re-send.
___ You have failed to adequately and individually address all of the
comments and change requests that were proposed in the initial
review.
___ You have a misconfigured ~/.hgrc file (i.e. username, email etc)
___ Your computer have a badly configured date and time; confusing the
the threaded patch review.
___ Your changes affect IPC mechanism, and you don't present any results
for in-service upgradability test.
___ Your changes affect user manual and documentation, your patch series
do not contain the patch that updates the Doxygen manual.
diff --git a/osaf/libs/core/leap/os_defs.c b/osaf/libs/core/leap/os_defs.c
--- a/osaf/libs/core/leap/os_defs.c
+++ b/osaf/libs/core/leap/os_defs.c
@@ -865,10 +865,13 @@ uint32_t ncs_os_posix_shm(NCS_OS_POSIX_S
}
/* Checking whether sufficient shared memory is available to write the data, to be safer side ffree reduced to 1 block size */
- if (req->info.write.i_write_size > (statsvfs.f_bfree * statsvfs.f_frsize)) {
+ if (req->info.write.i_write_size > ((statsvfs.f_bfree - 1) * statsvfs.f_frsize)) {
syslog(LOG_ERR, "Insufficient shared memory space (%ld) available to write the data of size: %ld \n",
(statsvfs.f_bfree * statsvfs.f_frsize), req->info.write.i_write_size);
return NCSCC_RC_FAILURE;
+ } else {
+ syslog(LOG_ERR, "Insufficient shared memory space (%ld) available to write the data of size: %ld \n",
+ (statsvfs.f_bfree * statsvfs.f_frsize), req->info.write.i_write_size);
}
}
memcpy((void *)((char *)req->info.write.i_addr + req->info.write.i_offset), req->info.write.i_from_buff,
------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel