Please take our Survey
logo       

Choosing A Webhost:
A web hosting service is a type of Internet hosting service that allows individuals and organizations to provide their own website accessible via the World Wide Web. Web hosts are companies that provide space on a server they own for use by their clients as well as providing Internet connectivity, typically in a data center. Web hosts can also provide data center space and connectivity to the Internet for servers they do not own to be located in their data center, called colocation. more...

RE: Linux deconstruction order problem: msg#00028

apache.logging.log4cxx.user

Subject: RE: Linux deconstruction order problem

> There are two scenarios where I have seen this type of problem (three
> if you include deviations from spec in earlier gcc's): destruction of
> the Level constants (Level::OFF etc) that appear at the end of src/
> level.cpp and logging taking place during the destruction of static
> objects.

> You might try commenting out Level::OFF et al from include/log4cxx/
> level.h and the constructors at the bottom of src/level.cpp. log4cxx
> shouldn't need them since it uses the equivalent Level::getOff() et
> al methods. They have been kept for compatibility with earlier
> versions of log4cxx but been problematic and should likely be
> removed. I can't tell from the stack trace if you are running into
> this problem or something else.

Hi Curt,

Thanks for the idea. I gave it shot, but I think my problem is unrelated.

This crash I'm getting is happening with a LoggerPtr object that I've
declared as static. When the LoggerPtr object is being cleaned up on exit,
the ObjectPtrT destructor is called, which ultimately calls
apr_atomic_casptr that blows up. It looks like the apr method is trying to
lock a mutex that's already been cleaned up.

If I make the offending LoggerPtr object a class member, exit continues
until the next statically-allocated LoggerPtr object. Making each LoggerPtr
object a member rather than a static member is less than ideal for my
application, so I'd prefer not to go that route.

Is there a way to de-initialize a statically-allocated LoggerPtr before exit
is called? Maybe if the static members are allocated with new memory, and
then delete them before exit? Is there an easier way to get around this?

Thanks!
Steve





<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

Recently Viewed:
hardware.arm.at...    cms.citadel.dev...    video.gstreamer...    java.facelets.u...    misc.basics.qna...    web.wiki.instik...    network.uip.use...    xdg.devel/2003-...    tex.bibtex.bibd...    finance.quotesp...    ietf.zeroconf/2...    redhat.blinux.g...    suse.db2/2003-0...    php.phpesp/2004...    uml.devel/2003-...    gnome.labyrinth...    qnx.openqnx.dev...    boot-loaders.gr...    db.dataperfect....    audio.audacity....    linux.uclinux.m...    editors.j.devel...    os.openbsd.tech...    kde.users.multi...   
Home | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe

Navigation