You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4cxx-user@logging.apache.org by da...@l-3com.com on 2009/03/18 16:29:11 UTC

Segfault on application exit (sometimes)

Hello,
 
We're seeing a strange occurance which I'm able to reproduce pretty
well.  We're running RHEL 4.0, with LOG4CXX 0.10.0.
 
 
The short version, is that we have objects, each with a LoggerPtr member
variable.  We init the ptr in the constructor, and are seeing occasional
seg faults when the application terminates.  (The application is
actually a boost automated unit test).
 
 
I've caught the segfault in DDD, and it is in Transcoder::encode, where
the static CharsetEncoder local variable ends up being set to null.
 
 
I haven't tracked down exactly *why* yet, but my gut tells me that it
has to do with the LOG4CXX subsystem being destroyed prior to all of the
class users being destroyed.
 
 
So, some questions:
 
    Is this a reasonable hypotheses?  I obviously have some more
tracking down to do, but I will not be able to provide any core dump
unfortunately.
 
    Is it a bad idea to log messages in a class destructor?
 
    Any suggestions to prevent this segfault from occuring?
 
 
Thanks
 
--dw

Re: Segfault on application exit (sometimes)

Posted by "rhosyn@purplescarab.com" <rh...@purplescarab.com>.
John Barker wrote:
>
> We’ve seen this as well, this seems to be related:
>
> http://www.nabble.com/Fix-possible-crash-on-exit-when-using-static-Loggers-td19473591.html
>
> *From:* david.weber@l-3com.com [mailto:david.weber@l-3com.com]
> *Sent:* 18 March 2009 17:31
> *To:* Log4CXX User
> *Subject:* RE: Segfault on application exit (sometimes)
>
> I think that this is different, looking at the stack trace compared to 
> what I'm seeing.
>
> I'm looking at the SVN HEAD, and I think I'm going to grab that, and 
> try compiling it.
>
> I think our version of 0.10.0 is *really* old in comparison to this..
>
> I'll try that, and let you guys know.
>
> --dw
>
>     ------------------------------------------------------------------------
>
>     *From:* Unnikrishnan Udinoor [mailto:uudinoor@Brocade.COM]
>     *Sent:* Wednesday, March 18, 2009 12:10 PM
>     *To:* Log4CXX User
>     *Subject:* RE: Segfault on application exit (sometimes)
>
>     Hi David,
>
>     Copying a mail thread discussing similar issues. Hope this will
>     help to know the root cause.
>
>     Regards
>
>     Unni
>
>     -----Original Message-----
>     From: Unnikrishnan Udinoor
>     Sent: Thursday, May 29, 2008 2:18 PM
>     To: Log4CXX User
>     Subject: RE: Segmentation fault log4cxx 0.10.0 on app exit ( RH Linux)
>
>     I am facing similar issue with Solaris.
>
>     The following link explains my issue.
>
>     http://mail-archives.apache.org/mod_mbox/logging-log4cxx-user/200804.mbo
>
>     x/%3cEB4C465FC146B54DAADF4C8C0637BC6202BA6C6D@HQ-EXCH-4.corp.brocade.com
>
>     %3e
>
>     Couldn't really get out of this yet.
>
>     Regards
>
>     Unni
>
>     -----Original Message-----
>
>     From: Dale King [mailto:dalewking@gmail.com]
>
>     Sent: Thursday, May 29, 2008 2:06 PM
>
>     To: Log4CXX User
>
>     Subject: Re: Segmentation fault log4cxx 0.10.0 on app exit ( RH Linux)
>
>     Do you have any of the network appenders or possibly the AsyncAppender
>
>     configured? I'm guessing this is the same thread shutdown issues I
>
>     reported on Windows in this thread:
>
>     http://www.nabble.com/A-few-problems-to-report-to17013024.html
>
>     The tip should be a bit better, but you might get a delay on shutdown.
>
>     On Thu, May 29, 2008 at 3:15 PM, GregN <gr...@yahoo.com> wrote:
>
>     >
>
>     > Segmentation fault on app exit.
>
>     >
>
>     > log4cxx, apr-1.2.12 and apr-util-1.2.12 had been build from tar
>     file.
>
>     >
>
>     > gcc -v
>
>     > Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.3/specs
>
>     > Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
>
>     > --infodir=/usr/share/info --enable-shared --enable-threads=posix
>
>     > --disable-checking --with-system-zlib --enable-__cxa_atexit
>
>     > --disable-libunwind-exceptions --enable-java-awt=gtk
>
>     > --host=i386-redhat-linux
>
>     > Thread model: posix
>
>     > gcc version 3.4.3 20050227 (Red Hat 3.4.3-22.1)
>
>     >
>
>     > $ uname -a
>
>     > Linux gredhat4 2.6.9-11.EL #1 Fri May 20 18:17:57 EDT 2005 i686 i686
>
>     i386
>
>     > GNU/Linux
>
>     >
>
>     >
>
>     > Test app successfully writes one line in log file with code:
>
>     > int main() {
>
>     > PropertyConfigurator::configure(LOG_PROPERTIES_FILE_LOCATION);
>
>     > LoggerPtr LogManager::cplusLoggerPtr = Logger::getLogger("API");
>
>     > LOG4CXX_INFO(cplusLoggerPtr , "test_info");
>
>     > return 0;
>
>     > }
>
>     >
>
>     >
>
>     > C++ [C/C++ Local Application]
>
>     > gdb/mi (5/29/08 2:31 PM) (Suspended)
>
>     > Thread [1] (Suspended: Signal 'SIGSEGV' received.
>
>     Description:
>
>     > Segmentation fault.)
>
>     > 8 apr_atomic_dec32()
>
>     atomic/unix/apr_atomic.c:310 0xb7d1efba
>
>     > 7 log4cxx::helpers::ObjectImpl::releaseRef()
>
>     >
>
>     /home/grn/Projects/apache-log4cxx-0.10.0/src/main/cpp/objectimpl.cpp:44
>
>     > 0xb7e36da0
>
>     > 6 log4cxx::Logger::releaseRef()
>
>     > /home/grn/Projects/apache-log4cxx-0.10.0/src/main/cpp/logger.cpp:62
>
>     > 0xb7e20c5d
>
>     > 5 ~ObjectPtrT()
>
>     /usr/local/include/log4cxx/helpers/objectptr.h:100
>
>     > 0x080550e3
>
>     > 4 __tcf_1() /home/..project specific...
>
>     > 3 exit() 0x004ce467
>
>     > 2 __libc_start_main() 0x004b8e2d
>
>     > 1 _start() 0x080545ad
>
>     >
>
>     > Any suggestion is welcome...
>
>     >
>
>     > Thanks,
>
>     > Gregory
>
>     >
>
>     > --
>
>     > View this message in context:
>
>     http://www.nabble.com/Segmentation-fault-log4cxx-0.10.0-on-app-exit-%28-
>
>     RH-Linux%29-tp17543738p17543738.html
>
>     > Sent from the Log4cxx - Users mailing list archive at Nabble.com.
>
>     >
>
>     >
>
>     -- 
>
>     Dale King
>
>     ------------------------------------------------------------------------
>
>     *From:* david.weber@l-3com.com [mailto:david.weber@l-3com.com]
>     *Sent:* Wednesday, March 18, 2009 8:29 AM
>     *To:* log4cxx-user@logging.apache.org
>     *Subject:* Segfault on application exit (sometimes)
>
>     Hello,
>
>     We're seeing a strange occurance which I'm able to reproduce
>     pretty well. We're running RHEL 4.0, with LOG4CXX 0.10.0.
>
>     The short version, is that we have objects, each with a LoggerPtr
>     member variable. We init the ptr in the constructor, and are
>     seeing occasional seg faults when the application terminates. (The
>     application is actually a boost automated unit test).
>
>     I've caught the segfault in DDD, and it is in Transcoder::encode,
>     where the static CharsetEncoder local variable ends up being set
>     to null.
>
>     I haven't tracked down exactly *why* yet, but my gut tells me that
>     it has to do with the LOG4CXX subsystem being destroyed prior to
>     all of the class users being destroyed.
>
>     So, some questions:
>
>     Is this a reasonable hypotheses? I obviously have some more
>     tracking down to do, but I will not be able to provide any core
>     dump unfortunately.
>
>     Is it a bad idea to log messages in a class destructor?
>
>     Any suggestions to prevent this segfault from occuring?
>
>     Thanks
>
>     --dw
>

We had many problems with crashes-on-process exit() as discussed in this 
thread:

http://www.nabble.com/Crashes-on-exit()-from-multithreaded-program-using-log4cxx-to21502030.html 


They manifested in a variety of different ways.

The underlying problem we had, fundamentally, was with initialisation 
(and hence destruction) order of statics in different translation units 
in C++

If you have an object which tries to trace in it's destructor - and it's 
destructor runs after that of one of the log4cxx objects - then trouble 
ensues.

A (slightly nasty) workaround/patch which helped us (essentially by 
leaking the log4cxx statics and preventing them from ever being 
destructed on exit - and in particular, from being destructed before 
they had _definitely_ been completely finished with) was attached as a 
patch.

Hth,

Rhosyn


RE: Segfault on application exit (sometimes)

Posted by John Barker <jo...@secerno.com>.
We've seen this as well, this seems to be related:

 

http://www.nabble.com/Fix-possible-crash-on-exit-when-using-static-Logge
rs-td19473591.html

 

From: david.weber@l-3com.com [mailto:david.weber@l-3com.com] 
Sent: 18 March 2009 17:31
To: Log4CXX User
Subject: RE: Segfault on application exit (sometimes)

 

I think that this is different, looking at the stack trace compared to
what I'm seeing.

 

I'm looking at the SVN HEAD, and I think I'm going to grab that, and try
compiling it.

 

I think our version of 0.10.0 is *really* old in comparison to this..

 

 

I'll try that, and let you guys know.

 

--dw

	 

________________________________

	From: Unnikrishnan Udinoor [mailto:uudinoor@Brocade.COM] 
	Sent: Wednesday, March 18, 2009 12:10 PM
	To: Log4CXX User
	Subject: RE: Segfault on application exit (sometimes)

	Hi David,

	Copying a mail thread discussing similar issues.   Hope this
will help to know the root cause.

	 

	Regards

	Unni

	 

	 

	-----Original Message-----
	From: Unnikrishnan Udinoor 
	Sent: Thursday, May 29, 2008 2:18 PM
	To: Log4CXX User
	Subject: RE: Segmentation fault log4cxx 0.10.0 on app exit ( RH
Linux)

	 

	I am facing similar issue with Solaris. 

	The following link explains my issue.

	 

	
http://mail-archives.apache.org/mod_mbox/logging-log4cxx-user/200804.mbo

	
x/%3cEB4C465FC146B54DAADF4C8C0637BC6202BA6C6D@HQ-EXCH-4.corp.brocade.com

	%3e

	 

	Couldn't really get out of this yet.

	 

	Regards

	Unni

	-----Original Message-----

	From: Dale King [mailto:dalewking@gmail.com] 

	Sent: Thursday, May 29, 2008 2:06 PM

	To: Log4CXX User

	Subject: Re: Segmentation fault log4cxx 0.10.0 on app exit ( RH
Linux)

	 

	Do you have any of the network appenders or possibly the
AsyncAppender

	configured? I'm guessing this is the same thread shutdown issues
I

	reported on Windows in this thread:

	 

	http://www.nabble.com/A-few-problems-to-report-to17013024.html

	 

	The tip should be a bit better, but you might get a delay on
shutdown.

	 

	On Thu, May 29, 2008 at 3:15 PM, GregN <gr...@yahoo.com>
wrote:

	> 

	> Segmentation fault on app exit.

	> 

	> log4cxx, apr-1.2.12 and apr-util-1.2.12 had been build from
tar file.

	> 

	> gcc -v

	> Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.3/specs

	> Configured with: ../configure --prefix=/usr
--mandir=/usr/share/man

	> --infodir=/usr/share/info --enable-shared
--enable-threads=posix

	> --disable-checking --with-system-zlib --enable-__cxa_atexit

	> --disable-libunwind-exceptions --enable-java-awt=gtk

	> --host=i386-redhat-linux

	> Thread model: posix

	> gcc version 3.4.3 20050227 (Red Hat 3.4.3-22.1)

	> 

	> $ uname -a

	> Linux gredhat4 2.6.9-11.EL #1 Fri May 20 18:17:57 EDT 2005
i686 i686

	i386

	> GNU/Linux

	> 

	> 

	> Test app successfully writes one line in log file with code:

	> int main() {

	>
PropertyConfigurator::configure(LOG_PROPERTIES_FILE_LOCATION);

	>    LoggerPtr LogManager::cplusLoggerPtr =
Logger::getLogger("API");

	>    LOG4CXX_INFO(cplusLoggerPtr , "test_info");

	>    return 0;

	> }

	> 

	> 

	> C++ [C/C++ Local Application]

	>        gdb/mi (5/29/08 2:31 PM) (Suspended)

	>                Thread [1] (Suspended: Signal 'SIGSEGV'
received.

	Description:

	> Segmentation fault.)

	>                        8 apr_atomic_dec32()

	atomic/unix/apr_atomic.c:310 0xb7d1efba

	>                        7
log4cxx::helpers::ObjectImpl::releaseRef()

	> 

	
/home/grn/Projects/apache-log4cxx-0.10.0/src/main/cpp/objectimpl.cpp:44

	> 0xb7e36da0

	>                        6 log4cxx::Logger::releaseRef()

	>
/home/grn/Projects/apache-log4cxx-0.10.0/src/main/cpp/logger.cpp:62

	> 0xb7e20c5d

	>                        5 ~ObjectPtrT()

	/usr/local/include/log4cxx/helpers/objectptr.h:100

	> 0x080550e3

	>                        4 __tcf_1() /home/..project specific...

	>                        3 exit()  0x004ce467

	>                        2 __libc_start_main()  0x004b8e2d

	>                        1 _start()  0x080545ad

	> 

	> Any suggestion is welcome...

	> 

	> Thanks,

	> Gregory

	> 

	> --

	> View this message in context:

	
http://www.nabble.com/Segmentation-fault-log4cxx-0.10.0-on-app-exit-%28-

	RH-Linux%29-tp17543738p17543738.html

	> Sent from the Log4cxx - Users mailing list archive at
Nabble.com.

	> 

	> 

	 

	 

	 

	-- 

	Dale King

	 

	 

________________________________

	From: david.weber@l-3com.com [mailto:david.weber@l-3com.com] 
	Sent: Wednesday, March 18, 2009 8:29 AM
	To: log4cxx-user@logging.apache.org
	Subject: Segfault on application exit (sometimes)

	 

	Hello,

	 

	We're seeing a strange occurance which I'm able to reproduce
pretty well.  We're running RHEL 4.0, with LOG4CXX 0.10.0.

	 

	 

	The short version, is that we have objects, each with a
LoggerPtr member variable.  We init the ptr in the constructor, and are
seeing occasional seg faults when the application terminates.  (The
application is actually a boost automated unit test).

	 

	 

	I've caught the segfault in DDD, and it is in
Transcoder::encode, where the static CharsetEncoder local variable ends
up being set to null.

	 

	 

	I haven't tracked down exactly *why* yet, but my gut tells me
that it has to do with the LOG4CXX subsystem being destroyed prior to
all of the class users being destroyed.

	 

	 

	So, some questions:

	 

	    Is this a reasonable hypotheses?  I obviously have some more
tracking down to do, but I will not be able to provide any core dump
unfortunately.

	 

	    Is it a bad idea to log messages in a class destructor?

	 

	    Any suggestions to prevent this segfault from occuring?

	 

	 

	Thanks

	 

	--dw


RE: Segfault on application exit (sometimes)

Posted by da...@l-3com.com.
I think that this is different, looking at the stack trace compared to
what I'm seeing.
 
I'm looking at the SVN HEAD, and I think I'm going to grab that, and try
compiling it.
 
I think our version of 0.10.0 is *really* old in comparison to this..
 
 
I'll try that, and let you guys know.
 
--dw


________________________________

	From: Unnikrishnan Udinoor [mailto:uudinoor@Brocade.COM] 
	Sent: Wednesday, March 18, 2009 12:10 PM
	To: Log4CXX User
	Subject: RE: Segfault on application exit (sometimes)
	
	

	Hi David,

	Copying a mail thread discussing similar issues.   Hope this
will help to know the root cause.

	 

	Regards

	Unni

	 

	 

	-----Original Message-----
	From: Unnikrishnan Udinoor 
	Sent: Thursday, May 29, 2008 2:18 PM
	To: Log4CXX User
	Subject: RE: Segmentation fault log4cxx 0.10.0 on app exit ( RH
Linux)

	 

	I am facing similar issue with Solaris. 

	The following link explains my issue.

	 

	
http://mail-archives.apache.org/mod_mbox/logging-log4cxx-user/200804.mbo

	
x/%3cEB4C465FC146B54DAADF4C8C0637BC6202BA6C6D@HQ-EXCH-4.corp.brocade.com

	%3e

	 

	Couldn't really get out of this yet.

	 

	Regards

	Unni

	-----Original Message-----

	From: Dale King [mailto:dalewking@gmail.com] 

	Sent: Thursday, May 29, 2008 2:06 PM

	To: Log4CXX User

	Subject: Re: Segmentation fault log4cxx 0.10.0 on app exit ( RH
Linux)

	 

	Do you have any of the network appenders or possibly the
AsyncAppender

	configured? I'm guessing this is the same thread shutdown issues
I

	reported on Windows in this thread:

	 

	http://www.nabble.com/A-few-problems-to-report-to17013024.html

	 

	The tip should be a bit better, but you might get a delay on
shutdown.

	 

	On Thu, May 29, 2008 at 3:15 PM, GregN <gr...@yahoo.com>
wrote:

	> 

	> Segmentation fault on app exit.

	> 

	> log4cxx, apr-1.2.12 and apr-util-1.2.12 had been build from
tar file.

	> 

	> gcc -v

	> Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.3/specs

	> Configured with: ../configure --prefix=/usr
--mandir=/usr/share/man

	> --infodir=/usr/share/info --enable-shared
--enable-threads=posix

	> --disable-checking --with-system-zlib --enable-__cxa_atexit

	> --disable-libunwind-exceptions --enable-java-awt=gtk

	> --host=i386-redhat-linux

	> Thread model: posix

	> gcc version 3.4.3 20050227 (Red Hat 3.4.3-22.1)

	> 

	> $ uname -a

	> Linux gredhat4 2.6.9-11.EL #1 Fri May 20 18:17:57 EDT 2005
i686 i686

	i386

	> GNU/Linux

	> 

	> 

	> Test app successfully writes one line in log file with code:

	> int main() {

	>
PropertyConfigurator::configure(LOG_PROPERTIES_FILE_LOCATION);

	>    LoggerPtr LogManager::cplusLoggerPtr =
Logger::getLogger("API");

	>    LOG4CXX_INFO(cplusLoggerPtr , "test_info");

	>    return 0;

	> }

	> 

	> 

	> C++ [C/C++ Local Application]

	>        gdb/mi (5/29/08 2:31 PM) (Suspended)

	>                Thread [1] (Suspended: Signal 'SIGSEGV'
received.

	Description:

	> Segmentation fault.)

	>                        8 apr_atomic_dec32()

	atomic/unix/apr_atomic.c:310 0xb7d1efba

	>                        7
log4cxx::helpers::ObjectImpl::releaseRef()

	> 

	
/home/grn/Projects/apache-log4cxx-0.10.0/src/main/cpp/objectimpl.cpp:44

	> 0xb7e36da0

	>                        6 log4cxx::Logger::releaseRef()

	>
/home/grn/Projects/apache-log4cxx-0.10.0/src/main/cpp/logger.cpp:62

	> 0xb7e20c5d

	>                        5 ~ObjectPtrT()

	/usr/local/include/log4cxx/helpers/objectptr.h:100

	> 0x080550e3

	>                        4 __tcf_1() /home/..project specific...

	>                        3 exit()  0x004ce467

	>                        2 __libc_start_main()  0x004b8e2d

	>                        1 _start()  0x080545ad

	> 

	> Any suggestion is welcome...

	> 

	> Thanks,

	> Gregory

	> 

	> --

	> View this message in context:

	
http://www.nabble.com/Segmentation-fault-log4cxx-0.10.0-on-app-exit-%28-

	RH-Linux%29-tp17543738p17543738.html

	> Sent from the Log4cxx - Users mailing list archive at
Nabble.com.

	> 

	> 

	 

	 

	 

	-- 

	Dale King

	 

	 

	
________________________________


	From: david.weber@l-3com.com [mailto:david.weber@l-3com.com] 
	Sent: Wednesday, March 18, 2009 8:29 AM
	To: log4cxx-user@logging.apache.org
	Subject: Segfault on application exit (sometimes)

	 

	Hello,

	 

	We're seeing a strange occurance which I'm able to reproduce
pretty well.  We're running RHEL 4.0, with LOG4CXX 0.10.0.

	 

	 

	The short version, is that we have objects, each with a
LoggerPtr member variable.  We init the ptr in the constructor, and are
seeing occasional seg faults when the application terminates.  (The
application is actually a boost automated unit test).

	 

	 

	I've caught the segfault in DDD, and it is in
Transcoder::encode, where the static CharsetEncoder local variable ends
up being set to null.

	 

	 

	I haven't tracked down exactly *why* yet, but my gut tells me
that it has to do with the LOG4CXX subsystem being destroyed prior to
all of the class users being destroyed.

	 

	 

	So, some questions:

	 

	    Is this a reasonable hypotheses?  I obviously have some more
tracking down to do, but I will not be able to provide any core dump
unfortunately.

	 

	    Is it a bad idea to log messages in a class destructor?

	 

	    Any suggestions to prevent this segfault from occuring?

	 

	 

	Thanks

	 

	--dw


RE: Segfault on application exit (sometimes)

Posted by Unnikrishnan Udinoor <uu...@Brocade.COM>.
Hi David,

Copying a mail thread discussing similar issues.   Hope this will help
to know the root cause.

 

Regards

Unni

 

 

-----Original Message-----
From: Unnikrishnan Udinoor 
Sent: Thursday, May 29, 2008 2:18 PM
To: Log4CXX User
Subject: RE: Segmentation fault log4cxx 0.10.0 on app exit ( RH Linux)

 

I am facing similar issue with Solaris. 

The following link explains my issue.

 

http://mail-archives.apache.org/mod_mbox/logging-log4cxx-user/200804.mbo

x/%3cEB4C465FC146B54DAADF4C8C0637BC6202BA6C6D@HQ-EXCH-4.corp.brocade.com

%3e

 

Couldn't really get out of this yet.

 

Regards

Unni

-----Original Message-----

From: Dale King [mailto:dalewking@gmail.com] 

Sent: Thursday, May 29, 2008 2:06 PM

To: Log4CXX User

Subject: Re: Segmentation fault log4cxx 0.10.0 on app exit ( RH Linux)

 

Do you have any of the network appenders or possibly the AsyncAppender

configured? I'm guessing this is the same thread shutdown issues I

reported on Windows in this thread:

 

http://www.nabble.com/A-few-problems-to-report-to17013024.html

 

The tip should be a bit better, but you might get a delay on shutdown.

 

On Thu, May 29, 2008 at 3:15 PM, GregN <gr...@yahoo.com> wrote:

> 

> Segmentation fault on app exit.

> 

> log4cxx, apr-1.2.12 and apr-util-1.2.12 had been build from tar file.

> 

> gcc -v

> Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.3/specs

> Configured with: ../configure --prefix=/usr --mandir=/usr/share/man

> --infodir=/usr/share/info --enable-shared --enable-threads=posix

> --disable-checking --with-system-zlib --enable-__cxa_atexit

> --disable-libunwind-exceptions --enable-java-awt=gtk

> --host=i386-redhat-linux

> Thread model: posix

> gcc version 3.4.3 20050227 (Red Hat 3.4.3-22.1)

> 

> $ uname -a

> Linux gredhat4 2.6.9-11.EL #1 Fri May 20 18:17:57 EDT 2005 i686 i686

i386

> GNU/Linux

> 

> 

> Test app successfully writes one line in log file with code:

> int main() {

>    PropertyConfigurator::configure(LOG_PROPERTIES_FILE_LOCATION);

>    LoggerPtr LogManager::cplusLoggerPtr = Logger::getLogger("API");

>    LOG4CXX_INFO(cplusLoggerPtr , "test_info");

>    return 0;

> }

> 

> 

> C++ [C/C++ Local Application]

>        gdb/mi (5/29/08 2:31 PM) (Suspended)

>                Thread [1] (Suspended: Signal 'SIGSEGV' received.

Description:

> Segmentation fault.)

>                        8 apr_atomic_dec32()

atomic/unix/apr_atomic.c:310 0xb7d1efba

>                        7 log4cxx::helpers::ObjectImpl::releaseRef()

> 

/home/grn/Projects/apache-log4cxx-0.10.0/src/main/cpp/objectimpl.cpp:44

> 0xb7e36da0

>                        6 log4cxx::Logger::releaseRef()

> /home/grn/Projects/apache-log4cxx-0.10.0/src/main/cpp/logger.cpp:62

> 0xb7e20c5d

>                        5 ~ObjectPtrT()

/usr/local/include/log4cxx/helpers/objectptr.h:100

> 0x080550e3

>                        4 __tcf_1() /home/..project specific...

>                        3 exit()  0x004ce467

>                        2 __libc_start_main()  0x004b8e2d

>                        1 _start()  0x080545ad

> 

> Any suggestion is welcome...

> 

> Thanks,

> Gregory

> 

> --

> View this message in context:

http://www.nabble.com/Segmentation-fault-log4cxx-0.10.0-on-app-exit-%28-

RH-Linux%29-tp17543738p17543738.html

> Sent from the Log4cxx - Users mailing list archive at Nabble.com.

> 

> 

 

 

 

-- 

Dale King

 

 

________________________________

From: david.weber@l-3com.com [mailto:david.weber@l-3com.com] 
Sent: Wednesday, March 18, 2009 8:29 AM
To: log4cxx-user@logging.apache.org
Subject: Segfault on application exit (sometimes)

 

Hello,

 

We're seeing a strange occurance which I'm able to reproduce pretty
well.  We're running RHEL 4.0, with LOG4CXX 0.10.0.

 

 

The short version, is that we have objects, each with a LoggerPtr member
variable.  We init the ptr in the constructor, and are seeing occasional
seg faults when the application terminates.  (The application is
actually a boost automated unit test).

 

 

I've caught the segfault in DDD, and it is in Transcoder::encode, where
the static CharsetEncoder local variable ends up being set to null.

 

 

I haven't tracked down exactly *why* yet, but my gut tells me that it
has to do with the LOG4CXX subsystem being destroyed prior to all of the
class users being destroyed.

 

 

So, some questions:

 

    Is this a reasonable hypotheses?  I obviously have some more
tracking down to do, but I will not be able to provide any core dump
unfortunately.

 

    Is it a bad idea to log messages in a class destructor?

 

    Any suggestions to prevent this segfault from occuring?

 

 

Thanks

 

--dw