Read only archive ; use https://github.com/JacORB/JacORB/issues for new issues

Bug 985

Summary: Missing config parameter OAIAddr leads to an only locally working IOR
Product: JacORB Reporter: Christian Bindseil <christian.bindseil>
Component: SSL/IIOPAssignee: Nicolas Noffke <Nicolas.Noffke>
Status: RESOLVED FIXED    
Severity: enhancement CC: jacorb
Priority: P5    
Version: 3.4   
Hardware: PC   
OS: Windows NT   

Description Christian Bindseil 2014-05-21 13:05:53 UTC
In Bug 984 Nick Cross asked me to open a new ticket for an issue we discovered while trying jacorb 3.4:

After starting the server our client can only connect when it's runnig on the same machine. 

While debugging jacorb I found out, that the IOR-File written by the server does not have the same contents as with jacorb 3.1: now we are missing the value for "host", it is empty. 

This fact leads to the assumption that the error happens on server side. There I found out, that the property "OAIAddr" is used to determine the local IP-address of the server. In IIOPAddress.init_host() there is a check source_name.length()==0 (it is in our case "") which sets the host=null to indicate a wildcard listener (see code-comment). This value of null seems to be the cause of the empty host-parameter in the IOR. The wildcard-idea is working only on localhost. 

After adding OAIAddr=<real IP of the Server> ist works. But this isn't a good solution and also not a well documented change in behavior. And it is unnecessary on an non-multihomed system. 

Could you please fix this issue so that jacorb behaves like before when OAIAddr is not defined? Thank you!
Comment 1 Nick Cross 2014-05-21 15:17:39 UTC
Would it be possible to try GIT head as there have been a few fixes in this area?
Comment 2 Nick Cross 2014-05-21 16:29:03 UTC
Could you also clarify your server settings - e.g. what properties are you setting (e.g. OAIAddr etc) ?

Could you print the output of running "jaco org.jacorb.util.Diagnostic" ?
Comment 3 Christian Bindseil 2014-05-22 12:02:47 UTC
If you can provide the GIT head as JAR-files, we will try.

Here are the informations you have requested... I censored some things for security reason and replaced them with a comment in <>.

jaco org.jacorb.util.Diagnostic:
JacORB Version: JacORB V3.4 (www.jacorb.org)
        (C) The JacORB project 1997-2014
        15 January 2014 10:34:03 with SHA bcb5122a

Operating system name: Windows Server 2008 R2
Operating system version: 6.1
Operating system architecture: amd64
Java Vendor: Oracle Corporation
Java Version: 1.7.0_55

Default local host address <WINDOWS-HOSTNAME-UPPERCASE-WITHOUT-DOMAIN>/<IPv4-Address>
Preferred non-loopback address <the same as one line above>

Default locale en_US (which is English (United States))
System file encoding property: Cp1252
Cannonical encoding: Cp1252
Default WChar encoding: UTF16




Our config on server side:

System-properties (set by the Main-class as first action):
org.omg.CORBA.ORBClass=org.jacorb.orb.ORB
org.omg.CORBA.ORBSingletonClass=org.jacorb.orb.ORBSingleton


file jacorb.properties (effective lines, all others are comments):
ORBInitRef.NameService=http://www.x.y.z/~user/NS_Ref
jacorb.orb.print_version=on
jacorb.log.default.verbosity=2
jacorb.logfile.maxLogSize=4
jacorb.logfile=<a path on our server>
jacorb.logfile.append=false
jacorb.debug.dump_outgoing_messages=off
jacorb.debug.dump_incoming_messages=off
jacorb.giop_minor_version=2
jacorb.retries=5
jacorb.retry_interval=500
jacorb.maxManagedBufSize=27
jacorb.deferredArrayQueue=8
jacorb.hashtable_class=java.util.Hashtable
jacorb.use_bom=off
jacorb.giop.add_1_0_profiles=off
jacorb.dns.enable=off
jacorb.dns.eager_resolve=true
jacorb.compactTypecodes=off
jacorb.cacheTypecodes=off
jacorb.cachePoaNames=off
jacorb.disableClientOrbPolicies=off
jacorb.acceptor_exception_listener=org.jacorb.orb.listener.DefaultAcceptorExceptionListener
jacorb.enhanced_thread_name=off
jacorb.interop.indirection_encoding_disable=off
jacorb.interop.comet=off
jacorb.interop.lax_boolean_encoding=off
jacorb.interop.strict_check_on_tc_creation=on
jacorb.interop.chunk_custom_rmi_valuetypes=on
jacorb.interop.sun=off
jacorb.interop.null_string_encoding=off
org.omg.PortableInterceptor.ORBInitializerClass.standard_init=org.jacorb.orb.standardInterceptors.IORInterceptorInitializer
jacorb.use_imr=off
jacorb.use_imr_endpoint=on
jacorb.imr.allow_auto_register=off
jacorb.imr.check_object_liveness=off
ORBInitRef.ImplementationRepository=http://www.x.y.z/~user/ImR_Ref
jacorb.imr.table_file=Z:\table.dat
jacorb.imr.backup_file=z:\backup.dat
jacorb.imr.ior_file=/home/bwana/brose/public_html/ImR_Ref
jacorb.imr.timeout=
jacorb.imr.endpoint_host=
jacorb.imr.endpoint_port_number=
jacorb.imr.connection_timeout=2000
jacorb.imr.object_activation_retries=5
jacorb.imr.object_activation_sleep=50
jacorb.implname=StandardImplName
jacorb.java_exec=java -Dorg.omg.CORBA.ORBClass=org.jacorb.orb.ORB -Dorg.omg.CORBA.ORBSingletonClass=org.jacorb.orb.ORBSingleton
jacorb.security.support_ssl=on
OASSLPort=<port number>
jacorb.ssl.socket_factory=org.jacorb.security.ssl.sun_jsse.SSLSocketFactory
jacorb.ssl.server_socket_factory=org.jacorb.security.ssl.sun_jsse.SSLServerSocketFactory
jacorb.security.ssl.client.supported_options=20
jacorb.security.ssl.client.required_options=20
jacorb.security.ssl.server.supported_options=20
jacorb.security.ssl.server.required_options=20
jacorb.security.keystore=<path to keystore>
jacorb.security.keystore_password=<password>
jacorb.security.jsse.trustees_from_ks=off
jacorb.security.ssl.server.cipher_suites=SSL_DH_anon_WITH_RC4_128_MD5
jacorb.security.ssl.client.cipher_suites=SSL_DH_anon_WITH_RC4_128_MD5
jacorb.security.randomClassPlugin=
jacorb.security.ssl.ssl_listener=
jacorb.poa.monitoring=off
jacorb.poa.log.verbosity=2
jacorb.poa.thread_pool_max=20
jacorb.poa.thread_pool_min=5
jacorb.poa.threadtimeout=0
jacorb.poa.queue_wait=off
jacorb.poa.queue_max=100
jacorb.poa.queue_min=10
jacorb.poa.useServantClassLoader=off
jacorb.naming.log.verbosity=2
jacorb.naming.purge=on
jacorb.naming.ping=on
jacorb.naming.ior_filename=c:/NS_Ref
jacorb.notification.filter.thread_pool_size = 2
jacorb.notification.proxyconsumer.thread_pool_size = 2
jacorb.notification.proxysupplier.thread_pool_size = 4
jacorb.notification.supplier.poll_intervall = 1000
jacorb.notification.max_batch_size = 1
jacorb.notification.max_events_per_consumer = 100
jacorb.notification.order_policy = PriorityOrder
jacorb.notification.discard_policy = PriorityOrder
jacorb.notification.consumer.backout_interval = 5000
jacorb.notification.consumer.error_threshold = 3
jacorb.notification.proxysupplier.threadpolicy = ThreadPool
jacorb.notification.default_filter_factory = builtin
jacorb.notification.stop_time_supported = on
jacorb.notification.proxy.destroy_causes_disconnect = on
jacorb.security.sas.log.verbosity=3
jacorb.security.sas.TSS.log.verbosity=3
jacorb.security.sas.CSS.log.verbosity=3
Comment 4 Christian Bindseil 2014-05-26 09:37:05 UTC
(In reply to Nick Cross from comment #1)
> Would it be possible to try GIT head as there have been a few fixes in this
> area?

Thank you for providing the jar-file by email. With this version the bug has disappeared.
Comment 5 Nick Cross 2014-06-06 03:34:32 UTC
Closing as resolved as works with 3.5-SNAPSHOT