commit 1cca4b16b4cf2060c7b7e6d18b9d279188d90dd6 (HEAD -> develop, 
origin/develop, ticket-3018)
Author: canht32 <[email protected]>
Date:   Mon Apr 1 17:16:30 2019 +0700

    log: fix logd crash due to well known stream has numOpeners=0 [#3018]

    If client closes stream is successful in active node but it cannot be 
checkpointed
    to standby node. This causes the "numOpeners" is different between active 
and standby.
    It also different number of streams that client opened  between standby and 
active.
    When the client open again that stream, the "numOpeners" is updated to be 
equal between
    active and standby while the client own number of streams is still 
different betwwen
    active and standby. This will causes the logd crash.

    Should restart standby node if handling the checkpoint of reopening stream
    with different of "numOpeners" between active and standby node.



---

** [tickets:#3018] log: logd crash due to well known stream has numOpeners = 0**

**Status:** review
**Milestone:** 5.19.06
**Created:** Thu Mar 14, 2019 09:37 AM UTC by Canh Truong
**Last Updated:** Thu Mar 28, 2019 06:16 AM UTC
**Owner:** Canh Truong


osaflogd[14677]: src/log/logd/lgs_stream.cc:852: log_stream_close: Assertion 
'stream->streamType >= STREAM_TYPE_APPLICATION_RT' failed.

osafamfnd[14733]: Rebooting OpenSAF NodeId = 131599 EE Name = , Reason: 
Component faulted: recovery is node failfast, OwnNodeId = 131599, 
SupervisionTime = 60
opensaf_reboot: Rebooting local node; timeout=60
opensaf_reboot: daemonize_job opensaf_kill returned=0
opensaf_reboot: opensaf_kill  child process SUBPID=17690


(gdb) bt full
#0  0x00007f8938eeef67 in raise () from /lib64/libc.so.6
No symbol table info available.
#1  0x00007f8938ef033a in abort () from /lib64/libc.so.6
No symbol table info available.
#2  0x00007f8939c6646e in __osafassert_fail (__file=<optimized out>, 
__line=<optimized out>, __func=<optimized out>, __assertion=<optimized out>) at 
src/base/sysf_def.c:296
No locals.
#3  0x0000558ff611c304 in log_stream_close (s=s@entry=0x7ffdf2741a78, 
close_time_ptr=close_time_ptr@entry=0x7ffdf2741a48) at 
src/log/logd/lgs_stream.cc:852
        file_to_rename = {
          static npos = <optimized out>, 
          _M_dataplus = {
            <std::allocator<char>> = {
              <__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data 
fields>}, 
            members of std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >::_Alloc_hider: 
            _M_p = 0x7f8939a1dd58 <std::string::_Rep::_S_empty_rep_storage+24> 
""
          }
        }
        trace_num_openers = 0
        closetime_tspec = {
          tv_sec = 140728671148672, 
          tv_nsec = 140728671148560
        }
        root_path = {
          static npos = <optimized out>, 
          _M_dataplus = {
            <std::allocator<char>> = {
              <__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data 
fields>}, 
            members of std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >::_Alloc_hider: 
            _M_p = 0x558ff7867c28 "/storage/no-backup/coremw/var/log/saflog"
          }
        }
        t_ = {
          trace_leave_called = false, 
          file_ = 0x558ff61337ad "src/log/logd/lgs_stream.cc", 
          function_ = 0x558ff6134240 <log_stream_close(log_stream**, 
long*)::__FUNCTION__> "log_stream_close"
        }
        errno_ret = 0
        stream = 0x558ff78689d0
        __FUNCTION__ = "log_stream_close"
        rc = 0
        timeString = 0x0
        emptyStr = {
          static npos = <optimized out>, 
          _M_dataplus = {
            <std::allocator<char>> = {
              <__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data 
fields>}, 
            members of std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >::_Alloc_hider: 
            _M_p = 0x7f8939a1dd58 <std::string::_Rep::_S_empty_rep_storage+24> 
""
          }
        }
#4  0x0000558ff60f2628 in lgs_client_delete (client_id=16, 
closetime_ptr=closetime_ptr@entry=0x7ffdf2741b88) at src/log/logd/lgs_evt.cc:213
        tmp_rec = <optimized out>
        stream = 0x558ff78689d0
        status = 0
        cur_rec = 0x558ff786ab20
        closetime = 1552070466
        closetime_tspec = {
          tv_sec = 2048, 
          tv_nsec = 140227354156352
        }
        client_rec = <optimized out>
        __FUNCTION__ = "lgs_client_delete"
        clientMap = 0x558ff7854490
        client = 0x558ff786aa20
        t_ = {
          trace_leave_called = false, 
          file_ = 0x558ff612c49f "src/log/logd/lgs_evt.cc", 
          function_ = 0x558ff612d030 <lgs_client_delete(unsigned int, 
long*)::__FUNCTION__> "lgs_client_delete"
        }
#5  0x0000558ff60f2874 in lgs_client_delete_by_mds_dest 
(mds_dest=586104137566712, closetime_ptr=closetime_ptr@entry=0x7ffdf2741b88) at 
src/log/logd/lgs_evt.cc:343
        it = {
          _M_node = 0x558ff786aae0
        }
        rp = 0x558ff786aa20
        __FUNCTION__ = "lgs_client_delete_by_mds_dest"
        clientMap = 0x558ff7854490
        rc = 0
        t_ = {
          trace_leave_called = false, 
          file_ = 0x558ff612c49f "src/log/logd/lgs_evt.cc", 
          function_ = 0x558ff612cfd0 <lgs_client_delete_by_mds_dest(unsigned 
long, long*)::__FUNCTION__> "lgs_client_delete_by_mds_dest"
        }
#6  0x0000558ff60f3020 in lgs_process_lga_down_list () at 
src/log/logd/lgs_evt.cc:534
        temp_lga_down_rec = 0x558ff786b0e0
        closetime = 1552070466
        lga_down_rec = 0x558ff786b0e0
        closetime_tspec = {
          tv_sec = 1552070466, 
          tv_nsec = 152364897
        }
#7  proc_rda_cb_msg (evt=0x7f892c0008c0) at src/log/logd/lgs_evt.cc:577
        count = <optimized out>
        stream = <optimized out>
        endloop = (unknown: 1552070466)
        jstart = <optimized out>
        rc = <optimized out>
        t_ = {
          trace_leave_called = false, 
          file_ = 0x558ff612c49f "src/log/logd/lgs_evt.cc", 
          function_ = 0x558ff612ce60 
<proc_rda_cb_msg(lgsv_lgs_evt*)::__FUNCTION__> "proc_rda_cb_msg"
        }
#8  lgs_process_mbx (mbx=<optimized out>) at src/log/logd/lgs_evt.cc:1568
        msg = 0x7f892c0008c0
#9  0x0000558ff60e72ec in main (argc=<optimized out>, argv=<optimized out>) at 
src/log/logd/lgs_main.cc:620
        oi_handle = 0
        oi_selection_object = <optimized out>
        ret = <optimized out>
        mbx_fd = <optimized out>
        term_fd = 19
        __FUNCTION__ = "main"
        ais_rc = <optimized out>
        rc = <optimized out>
        cltimer_fd = -1
        t_ = {
          trace_leave_called = false, 
          file_ = 0x558ff6130a67 "src/log/logd/lgs_main.cc", 
          function_ = 0x558ff6130ebf <main::__FUNCTION__> "main"
        }


---

Sent from sourceforge.net because [email protected] is 
subscribed to https://sourceforge.net/p/opensaf/tickets/

To unsubscribe from further messages, a project admin can change settings at 
https://sourceforge.net/p/opensaf/admin/tickets/options.  Or, if this is a 
mailing list, you can unsubscribe from the mailing list.
_______________________________________________
Opensaf-tickets mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-tickets

Reply via email to