Uploaded image for project: 'Karaf'
  1. Karaf
  2. KARAF-7694

Using system environment variables does not propagate to property usage in same cfg file

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 4.3.3
    • None
    • karaf
    • None
    • Karaf 4.3.3 on Linux openjdk-17

    Description

      Generally environment variable usage as described here works, but it does not propagate back to the config admin system and therefore it seems that referencing the property in the same cfg file does not resolve to the overriden value:

      Steps to reproduce:

      1. Using clean Karaf 4.3.3 on Linux openjdk 17
      2. export ORG_APACHE_KARAF_MANAGEMENT_RMIREGISTRYPORT=4242
      3. bin/karaf

      results in:

      Unable to find source-code formatter for language: shell. Available languages are: actionscript, ada, applescript, bash, c, c#, c++, cpp, css, erlang, go, groovy, haskell, html, java, javascript, js, json, lua, none, nyan, objc, perl, php, python, r, rainbow, ruby, scala, sh, sql, swift, visualbasic, xml, yamlkaraf: Enabling Java debug options: -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
      Listening for transport dt_socket at address: 5005
      Exception in thread "JMX Connector Thread [service:jmx:rmi://127.0.0.1:44444/jndi/rmi://127.0.0.1:1099/karaf-root]" java.lang.RuntimeException: Could not start JMX connector server
      	at org.apache.karaf.management.ConnectorServerFactory.lambda$init$0(ConnectorServerFactory.java:438)
      	at java.base/java.lang.Thread.run(Thread.java:833)
      Caused by: java.io.IOException: Cannot bind to URL [rmi://127.0.0.1:1099/karaf-root]: javax.naming.CommunicationException [Root exception is java.rmi.NoSuchObjectException: no such object in table]
      	at java.management.rmi/javax.management.remote.rmi.RMIConnectorServer.newIOException(RMIConnectorServer.java:834)
      	at java.management.rmi/javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.java:481)
      	at org.apache.karaf.management.ConnectorServerFactory.lambda$init$0(ConnectorServerFactory.java:421)
      	... 1 more
      Caused by: javax.naming.CommunicationException [Root exception is java.rmi.NoSuchObjectException: no such object in table]
      	at jdk.naming.rmi/com.sun.jndi.rmi.registry.RegistryContext.bind(RegistryContext.java:163)
      	at java.naming/com.sun.jndi.toolkit.url.GenericURLContext.bind(GenericURLContext.java:243)
      	at java.naming/javax.naming.InitialContext.bind(InitialContext.java:417)
      	at java.management.rmi/javax.management.remote.rmi.RMIConnectorServer.bind(RMIConnectorServer.java:693)
      	at java.management.rmi/javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.java:476)
      	... 2 more
      Caused by: java.rmi.NoSuchObjectException: no such object in table
      	at java.rmi/sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:304)
      	at java.rmi/sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:280)
      	at java.rmi/sun.rmi.server.UnicastRef.invoke(UnicastRef.java:381)
      	at java.rmi/sun.rmi.registry.RegistryImpl_Stub.bind(RegistryImpl_Stub.java:73)
      	at jdk.naming.rmi/com.sun.jndi.rmi.registry.RegistryContext.bind(RegistryContext.java:157)
      	... 6 more
      

       

      listing the config:

      karaf@root()> cl org.apache.karaf.management
      ----------------------------------------------------------------
      Pid:            org.apache.karaf.management
      BundleLocation: ?
      Properties:
         daemon = true
         felix.fileinstall.filename = file:/home/af/Desktop/apache-karaf-4.4.3/etc/org.apache.karaf.management.cfg
         jmxRealm = karaf
         jmxmpEnabled = false
         jmxmpHost = 127.0.0.1
         jmxmpObjectName = connector:name=jmxmp
         jmxmpPort = 9999
         jmxmpServiceUrl = service:jmx:jmxmp://127.0.0.1:9999
         objectName = connector:name=rmi
         rmiRegistryHost = 127.0.0.1
         rmiRegistryPort = 4242
         rmiServerHost = 127.0.0.1
         rmiServerPort = 44444
         service.pid = org.apache.karaf.management
         serviceUrl = service:jmx:rmi://127.0.0.1:44444/jndi/rmi://127.0.0.1:1099/karaf-root
         threaded = true

      rmiRegistryPort = 4242 is properly set.

      serviceUrl = service:jmx:rmi://${rmiServerHost}:${rmiServerPort}/jndi/rmi://${rmiRegistryHost}:${rmiRegistryPort}/karaf-${karaf.name}

      referencing rmiRegistryPort is still on 1099.

      assumably this should fail on other indirect variable usages as well.

      Attachments

        Activity

          People

            jbonofre Jean-Baptiste Onofré
            apf Andre Flakowski
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: