Hi,

My application is getting crashed with SIGABRT on Vmware (Esx 3.5 & Esx 4) when 
it sends the event to Syslog host (using UDP Port# 514). But, syslog port 514 
is blocked by Esx Firewall by default. I added try & catch block to 
LOG4CXX_INFO(loggerSyslog, syslogBuf) macro and it didn't help.

The Application runs very well if Syslog's port 514 is open by firewall.

Is there any way to avoid the application crash even if syslog's port 514 
blocked by firewall? I would like to avoid checking the firewall status on 
Syslog's port 514 each time before I send the event to Syslog host.

Here are the versions I use:
apache-log4cxx-0.10.0
apr-1.2.12
apr-util-1.2.12

As per the stack trace of core file:

The application throws IO Exception at:

// send the datagram packet
   apr_size_t len = p->getLength();
   status = apr_socket_sendto(socket, addr, 0,
                              (char *)p->getData(), &len);
   if (status != APR_SUCCESS) {
     throw IOException(status);

Here is the stack trace of core dump:

terminate called after throwing an instance of 'log4cxx::helpers::IOException'
  what():  IO Exception : status code = 1
Unable to get event information. status: 1Unable to get event information. 
status: 1
Program received signal SIGABRT, Aborted.
[Switching to Thread -134305552 (LWP 23857)]
0x009b77f2 in _dl_sysinfo_int80 ()
    at ../../../src/main/include/log4cxx/helpers/objectptr.h:100
100     ../../../src/main/include/log4cxx/helpers/objectptr.h: No such file or 
directory.
        in ../../../src/main/include/log4cxx/helpers/objectptr.h
(gdb) where
#0  0x009b77f2 in _dl_sysinfo_int80 ()
    at ../../../src/main/include/log4cxx/helpers/objectptr.h:100
#1  0x009fdd10 in raise ()
    at ../../../src/main/include/log4cxx/helpers/objectptr.h:100
#2  0x009ff621 in abort ()
    at ../../../src/main/include/log4cxx/helpers/objectptr.h:100
#3  0x083a95e0 in __gnu_cxx::__verbose_terminate_handler ()
#4  0x083a6935 in __cxxabiv1::__terminate ()
#5  0x083a6972 in std::terminate ()
#6  0x083a687a in __cxa_throw ()
#7  0x0819ce82 in log4cxx::helpers::DatagramSocket::send (this=0xc19e830,
    p...@0xffaaf274) at datagramsocket.cpp:184
#8  0x08188c67 in log4cxx::helpers::SyslogWriter::write (this=0xc19e898,
    sour...@0xffaaf2c0) at syslogwriter.cpp:66
#9  0x08186f74 in log4cxx::net::SyslogAppender::append (this=0xc19e0c8,
    eve...@0xffaaf3e4, p...@0xffaaf3ec) at syslogappender.cpp:296
#10 0x081367d7 in log4cxx::AppenderSkeleton::doAppend (this=0xc19e0c8,
    eve...@0xffaaf3e4, poo...@0xffaaf3ec) at appenderskeleton.cpp:142
#11 0x08133c19 in 
log4cxx::helpers::AppenderAttachableImpl::appendLoopOnAppenders 
(this=0xc19dea0, eve...@0xffaaf3e4, p...@0xffaaf3ec)
    at appenderattachableimpl.cpp:69
#12 0x0810e7c3 in log4cxx::Logger::callAppenders (this=0xc17c9c8,
    eve...@0xffaaf3e4, p...@0xffaaf3ec) at logger.cpp:93
#13 0x0810ee5a in log4cxx::Logger::forcedLog (this=0xc17c9c8,
    leve...@0xffaafed4, messa...@0xffaafdd4, locati...@0xffaafec8)
    at logger.cpp:124
#14 0x081e9e16 in hba_eventBufferUpdate (eventCategory=4, eventId=1,
    eventSeverity=4, eventTime=1251874231,
    portWWN=0xffab014c "10:00:00:05:1E:53:08:A5",
    eventMsg=0xffaaff9c "Remote port (WWN = 10:00:00:05:1E:53:08:A4) online for 
logical port (WWN = 10:00:00:05:1E:53:08:A5).", eventData=0xffab0204 "",
    eventDataSize=40) at AgtLibEvent.cpp:272
#15 0x081ed734 in hba_RPortEventCallback (user_data=0x0,
    event=BFA_RPORT_AEN_ONLINE, data=0xffab0204, tv=
      {tv_sec = 1251874161, tv_usec = 965034}) at AgtLibEvent.cpp:750
#16 0x081ef49f in hba_getOldEvents () at AgtLibEvent.cpp:1597
#17 0x081efcd2 in hba_registerForEvents () at AgtLibEvent.cpp:1653
#18 0x081fb1cb in agent_bfal_init () at AgtLibInit.cpp:599
---Type <return> to continue, or q <return> to quit---
#19 0x081fc2b5 in init_hba_lib () at AgtLibInit.cpp:642
#20 0x08066649 in MethodRegistration::registerMethods ()
    at MethodRegistration.cpp:21
#21 0x080639cd in JsonRpcManager::instance () at JsonRpcManager.cpp:20
#22 0x08058aaa in hba_api_init () at extension.cpp:60
#23 0x08058f3d in CUnixAgent::run (this=0xffac3cec, srv=0xffac3c70,
    as_daemon=false) at unixAgent.cpp:124
#24 0x08056df5 in main (argc=1, argv=0xffac3db8) at main.cpp:288
(gdb)

Thanks,
-- Shyam

Reply via email to