Package: ace-netsvcs
Version: 6.0.1-1
Severity: grave

I am an ACE newb and while working through the examples in the BlueBook (ACE Programmer's Guide), I was unable to get the simple logging client (section 3.6, page 67) but seem to have discovered a build configuration issue using strace.

No indication of successful communication between the application and client, nor client and server, nor output logged by the server (to the file "foobar") was obtained with the below.
--------------------------------
logger.cpp (builds successfully with >LDFLAGS=-lACE make logger):
#define ACE_TRACEN 0
#include "ace/Log_Msg.h"

int ACE_TMAIN( int argc, char *argv[] )
{
ACE_LOG_MSG->open( argv[0], ACE_Log_Msg::LOGGER, ACE_DEFAULT_LOGGER_KEY );
  ACE_TRACE( "main" );

  ACE_DEBUG( (LM_DEBUG, "%IHi Mom\n") );
  ACE_DEBUG( (LM_INFO, "%IGoodnight\n") );

  return 0;
}

server.conf (instantiated via >ace_netsvcs -f server.conf):
dynamic Logger Service_Object * ACE:_make_ACE_Logging_Strategy() "-s foobar -f STDERR|OSTREAM|VERBOSE" dynamic Server_Logging_Service Service_Object * netsvcs:_make_ACE_Server_Logging_Acceptor() active "-p 20009"

client.conf (instantiated via >ace_netsvcs -f client.conf):
dynamic Client_Logging_Service Service_Object * netsvcs:_make_ACE_Client_Logging_Acceptor() active "-h localhost -p 20009"
--------------------------------

Using strace allowed me to determine a search for "netsvcs" was failing and required changing "netsvcs:" to "/usr/bin/ace_netsvcs:" in both server.conf and client.conf. This isn't documented anywhere in the README or changelogs in /usr/share/doc/ace-netsvcs that I could find.

ace_netsvcs made it further with the following updated configuration files
--------------------------------
server.conf (instantiated via >ace_netsvcs -f server.conf):
dynamic Logger Service_Object * ACE:_make_ACE_Logging_Strategy() "-s foobar -f STDERR|OSTREAM|VERBOSE" dynamic Server_Logging_Service Service_Object * /usr/bin/ace_netsvcs:_make_ACE_Server_Logging_Acceptor() active "-p 20009"

client.conf (instantiated via >ace_netsvcs -f client.conf):
dynamic Client_Logging_Service Service_Object * /usr/bin/ace_netsvcs:_make_ACE_Client_Logging_Acceptor() active "-h localhost -p 20009"
--------------------------------

However, strace still showed that a search for the netsvcs library (libace_netsvcs.so or ace_netsvcs.so) was failing (on path /usr/bin that is coincidentally specified as the fully qualified path for ace_netsvcs in the {server|client}.conf files). That was resolved with a very ugly hack:

ln -s /usr/lib/libnetsvcs-6.0.1.so /usr/bin/libace_netsvcs.so

After that things worked as expected (with localhost replaced by my true local host name or 127.0.1.1 where the server was actually listening rather than on 127.0.0.1 associated with localhost as normally configured by debian). I tried all of the above with ACE_ROOT set to /usr/lib/ace and unset as well with no apparent difference. I may be missing something obvious to others.

Regards,
-Ken Gregson



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to