5839.353174748:main Q:Reg/w0 : iminternal.c: signaling new internal message via SIGTTOU: 'action 'action 0' suspended, next retry is Sun Aug 13 03:04:29 2000 [v8.29.0 try http://www.rsyslog.com/e/2007 ]'
I am not sure but I have the feelings you are just running badly out
of memory which will cause the segmentation fault.


True, I noticed the message reschedule, but the console is filled with these messages:

5839.354769610:main Q:Reg/w0 : ../action.c: actionTryResume: action 0x800a4180 state: susp, next retry (if applicable): 966135869 [now 966135839] 5839.354994710:main Q:Reg/w0 : ../action.c: doTransaction: action 0, currIParam 1 5839.355200970:main Q:Reg/w0 : ../action.c: actionTryResume: action 0x800a4180 state: susp, next retry (if applicable): 966135869 [now 966135839] 5839.355398190:main Q:Reg/w0 : omrelp.c: omrelp: shutdownImmediate ptr now is 0x800a11e8 5839.355571450:main Q:Reg/w0 : ../action.c: doTransaction: action 0, processing msg -1, result -2123 5839.355778480:main Q:Reg/w0 : ../action.c: actionTryResume: action 0x800a4180 state: susp, next retry (if applicable): 966135869 [now 966135839] 5839.355962950:main Q:Reg/w0 : omrelp.c: omrelp: shutdownImmediate ptr now is 0x800a11e8 5839.356130840:main Q:Reg/w0 : ../action.c: doTransaction: action 0, processing msg -1, result -2123 5839.356323210:main Q:Reg/w0 : ../action.c: actionTryResume: action 0x800a4180 state: susp, next retry (if applicable): 966135869 [now 966135839]


So, I was able to make some progress in the meantime:
I turned off compiler optimizations and rsyslog doesn't crash anymore
though I have yet to figure out, what optimization breaks the program.

Nevertheless, an issue remains:
When rsyslog cannot connect to a remote host (because the port is closed),
(one of) the worker threads goes into an endless loop clogging the CPU, the following lines repeat over and over:

5839.355962950:main Q:Reg/w0 : omrelp.c: omrelp: shutdownImmediate ptr now is 0x800a11e8 5839.356130840:main Q:Reg/w0 : ../action.c: doTransaction: action 0, processing msg -1, result -2123 5839.356323210:main Q:Reg/w0 : ../action.c: actionTryResume: action 0x800a4180 state: susp, next retry (if applicable): 966135869 [now 966135839]

I traced it down to doTransaction() in action.c.

for(i = 0 ; i < wrkrInfo->p.tx.currIParam ; ++i) {
    /* Note: we provide the message's base iparam - actionProcessMessage()
        * uses this as *base* address.
        */
    iRet = actionProcessMessage(pThis,
&actParam(wrkrInfo->p.tx.iparams, pThis->iNumTpls, i, 0), pWti);
    if(iRet != RS_RET_DEFER_COMMIT && iRet != RS_RET_PREVIOUS_COMMITTED &&
        iRet != RS_RET_OK)
            --i; /* we need to re-submit */
    DBGPRINTF("doTransaction: action %d, processing msg %d, result %d\n",
        pThis->iActionNbr, i,iRet);
}


actionProcessMessage() always returns RS_RET_ACTION_FAILED (which is -2123),
meaning i will be decremented for re-submit and the loop starts all over again.


Best regards,
Andreas

_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of 
sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE 
THAT.

Reply via email to