[
https://issues.apache.org/jira/browse/LOGCXX-491?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16097732#comment-16097732
]
Sean P. Miller commented on LOGCXX-491:
---------------------------------------
I use the following configuration, which works well:
{noformat}
<?xml version="1.0" encoding="UTF-8" ?>
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="AppLog"
class="org.apache.log4j.rolling.RollingFileAppender">
<param name="Threshold" value="Info" />
<rollingPolicy
class="org.apache.log4j.rolling.FixedWindowRollingPolicy">
<param name="FileNamePattern" value="/var/log/[...omitted...].%i"/>
<param name="MinIndex" value="0"/>
<param name="MaxIndex" value="2"/>
</rollingPolicy>
<triggeringPolicy
class="org.apache.log4j.rolling.SizeBasedTriggeringPolicy">
<param name="maxFileSize" value="10MB"/>
</triggeringPolicy>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c] - %m%n" />
</layout>
</appender>
<root>
<priority value="all" />
<appender-ref ref="AppLog" />
</root>
</log4j:configuration>
{noformat}
> SizeBasedRollingTest cases fail when defining LOG4CXX_MULTI_PROCESS
> -------------------------------------------------------------------
>
> Key: LOGCXX-491
> URL: https://issues.apache.org/jira/browse/LOGCXX-491
> Project: Log4cxx
> Issue Type: Bug
> Components: Tests
> Affects Versions: 0.11.0
> Environment: gcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC)
> gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
> Reporter: Sean P. Miller
> Priority: Minor
>
> I've encountered this with revisions 1755031 and 1802636 on both environments
> listed. Abbreviated debugging session:
> {noformat}
> ubuntu@ip-[...]:~/dev/log4cxx$ gdb src/test/cpp/.libs/lt-testsuite
> [...]
> Reading symbols from src/test/cpp/.libs/lt-testsuite...done.
> (gdb) run -v sizebasedrollingtest
> Starting program: /home/ubuntu/dev/log4cxx/src/test/cpp/.libs/lt-testsuite -v
> sizebasedrollingtest
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
> LC_CTYPE: en_US.UTF-8
> sizebasedrollingtest: -2017-07-21 19:28:52,889 DEBUG
> org.apache.log4j.rolling.SizeBasedRollingTest -Hello---0
> 2017-07-21 19:28:52,889 DEBUG org.apache.log4j.rolling.SizeBasedRollingTest
> -Hello---1
> [...]
> 2017-07-21 19:28:52,898 DEBUG org.apache.log4j.rolling.SizeBasedRollingTest
> -Hello---9
> 2017-07-21 19:28:52,898 DEBUG org.apache.log4j.rolling.SizeBasedRollingTest
> -Hello--10
> log4cxx: Exception during rollover
> Program received signal SIGSEGV, Segmentation fault.
> log4cxx::rolling::RollingFileAppenderSkeleton::subAppend (this=0x757d40,
> event=..., p=...) at rollingfileappender.cpp:378
> 378 apr_file_t* _fd =
> getWriter()->getOutPutStreamPtr()->getFileOutPutStreamPtr().getFilePtr();
> (gdb) bt
> #0 log4cxx::rolling::RollingFileAppenderSkeleton::subAppend (this=0x757d40,
> event=..., p=...) at rollingfileappender.cpp:378
> #1 0x00007ffff766adc2 in log4cxx::AppenderSkeleton::doAppend (this=0x757d40,
> event=..., pool1=...) at appenderskeleton.cpp:142
> #2 0x00007ffff7668abf in
> log4cxx::helpers::AppenderAttachableImpl::appendLoopOnAppenders
> (this=0x7574e0, event=..., p=...) at appenderattachableimpl.cpp:69
> #3 0x00007ffff76b07e8 in log4cxx::Logger::callAppenders
> (this=this@entry=0x757400, event=..., p=...) at logger.cpp:96
> #4 0x00007ffff76b0a3e in log4cxx::Logger::forcedLog (this=0x757400,
> level1=..., message="Hello--10", location=...) at logger.cpp:127
> #5 0x00000000004845e3 in SizeBasedRollingTest::common (logger1=...,
> this=0x7fffffffe150) at rolling/sizebasedrollingtest.cpp:88
> #6 SizeBasedRollingTest::test6 (this=0x7fffffffe150) at
> rolling/sizebasedrollingtest.cpp:339
> #7 0x0000000000489366 in LogUnit::runTest<SizeBasedRollingTest>
> (tc=0x7fffffffe3a0, func=(void (SizeBasedRollingTest::*)(SizeBasedRollingTest
> * const)) 0x483e30 <SizeBasedRollingTest::test6()>) at
> rolling/../logunit.h:112
> #8 0x00000000004898c0 in
> SizeBasedRollingTest::RegisterSuite::test6Registration::run (tc=<optimized
> out>) at rolling/sizebasedrollingtest.cpp:57
> #9 0x00000000004b4005 in abts_run_test (ts=ts@entry=0x74ee20, f=0x4898b0
> <SizeBasedRollingTest::RegisterSuite::test6Registration::run(abts_case*,
> void*)>, value=value@entry=0x0) at abts.cpp:174
> #10 0x00000000004c7cf1 in LogUnit::TestSuite::run (this=0x734f20
> <SizeBasedRollingTest::getSuite()::suite>, suite=suite@entry=0x74ee20) at
> logunit.cpp:232
> #11 0x00000000004c7f28 in abts_run_suites (suite=0x74ee20, suite@entry=0x0)
> at logunit.cpp:59
> #12 0x000000000041bd7d in main (argc=3, argv=0x7fffffffe558) at abts.cpp:433
> (gdb)
> {noformat}
> Diff applied for multi-process support:
> {noformat}
> diff -urN log4cxx-0.11.0.orig/configure.ac log4cxx-0.11.0/configure.ac
> --- log4cxx-0.11.0.orig/configure.ac 2016-08-26 16:32:29.205000000 +0000
> +++ log4cxx-0.11.0/configure.ac 2016-08-26 16:32:55.919000000 +0000
> @@ -55,6 +55,8 @@
> AC_PROG_CXXCPP
> AC_LANG(C++)
>
> +AC_DEFINE(LOG4CXX_MULTI_PROCESS)
> +
> # CXX fine tuning
> case "$host" in
> *-dec-osf*)
> {noformat}
> Tests run via {{make check}}. I believe this is v0.11.0 code (?).
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)