hi
my process is stucked by confd read() several times, not always,sometimes stucked around one time or 2 times within 1hour, sometimes not stuck several hours or several days. the related API will called 10000 times with 1 hour. what is the issue ? how to resolve it?
-
.stacktrace dump as the following:
#0 0x00007ff3776a475d in read () from /lib64/libpthread.so.0
No symbol table info available.
#1 0x000000000068921d in read_fill ()
No symbol table info available.
#2 0x000000000068bb10 in term_read ()
No symbol table info available.
#3 0x000000000068bfb4 in op_request_term ()
No symbol table info available.
#4 0x0000000000685bb4 in cdb_start_session2 ()
No symbol table info available.
#5 0x00000000006520a2 in EmOperWrapper::createCdbSession(int) ()
No symbol table info available.
#6 0x0000000000656ab9 in EmOperWrapper::cdbSetValuesToDb(int, confd_tag_value*, int, char*, int) ()
No symbol table info available.
…
#0 0x00007f12958b175d in read () from /lib64/libpthread.so.0
No symbol table info available.
#1 0x000000000068921d in read_fill ()
No symbol table info available.
#2 0x000000000068bb10 in term_read ()
No symbol table info available.
#3 0x000000000068bfb4 in op_request_term ()
No symbol table info available.
#4 0x0000000000680997 in cdb_set_timeout ()
No symbol table info available.
#5 0x0000000000656b1d in EmOperWrapper::cdbSetValuesToDb(int, confd_tag_value*, int, char*, int) ()
No symbol table info available.…
#0 0x00007f764913d75d in read () from /lib64/libpthread.so.0
No symbol table info available.
#1 0x000000000068921d in read_fill ()
No symbol table info available.
#2 0x000000000068bb10 in term_read ()
No symbol table info available.
#3 0x000000000068bfb4 in op_request_term ()
No symbol table info available.
#4 0x000000000067f4ce in ?? ()
No symbol table info available.
#5 0x000000000067f7a0 in cdb_set_values ()
No symbol table info available.
#6 0x0000000000656b3e in EmOperWrapper::cdbSetValuesToDb(int, confd_tag_value*, int, char*, int) ()
No symbol table info available.
… -
find some error log in confd.log
24-Jun-2020::17:16:52.433 vm47_rms_robo2 confd[3722]: - CDB client (app) timed out, waiting for end_session()
24-Jun-2020::17:18:22.999 vm47_rms_robo2 confd[3722]: - CDB client (app) timed out, waiting for end_session()
24-Jun-2020::17:20:07.683 vm47_rms_robo2 confd[3722]: - Daemon app died24-Jun-2020::18:12:35.788 vm47_rms_robo2 confd[3722]: - CDB client (app) timed out, waiting for end_session()
24-Jun-2020::18:14:22.026 vm47_rms_robo2 confd[3722]: - CDB client (app) timed out, waiting for end_session()
…
the following is related confd API calling scenario:
mCdbSocket = socket(PF_INET, SOCK_STREAM, 0)
cdb_connect()
cdb_load_flags = CDB_LOCK_REQUEST|CDB_LOCK_WAIT|CDB_LOCK_PARTIAL;
cdb_start_session2(mCdbSocket, CDB_OPERATIONAL, cdb_load_flags)
cdb_set_namespace(mCdbSocket, nameSpace)
cdb_set_timeout(mCdbSocket,60);
cdb_set_values(mCdbSocket, tVal, numberOfEntries, tablePath )
cdb_end_session(mCdbSocket);
cdb_close(mCdbSocket);
thx