【问题标题】:ONOS Service Start FrameworkEvent Error and GUI not ready yetONOS 服务启动 FrameworkEvent 错误和 GUI 尚未准备好
【发布时间】:2020-03-18 17:10:37
【问题描述】:

我已经按照以下步骤在 Hyper-V 上运行的 Ubuntu Server 18.04.4 虚拟机上安装了 ONOS 2.3.0(取自 herehere):

  1. 首先,我安装了 Java 11(openjdk-11-jdk 和 openjdk-11-jre)、maven 和 curl;
  2. 然后我从here下载了ONOS 2.3.0,并用tar xzf onos-2.3.0.tar.gz解压;
  3. 最后,我导出了所需的环境变量export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

当我尝试使用命令./onos-service start 启动它时(已从普通用户和 sudo 测试),它给了我以下错误:

21:54:57.869 ERROR [onos-core-net] FrameworkEvent ERROR - org.onosproject.onos-core-net
org.osgi.framework.ServiceException: Service factory returned null. (Component: org.onosproject.store.cfg.DistributedComponentConfigStore (6))
at org.apache.felix.framework.ServiceRegistrationImpl.getFactoryUnchecked(ServiceRegistrationImpl.java:380)
at org.apache.felix.framework.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:247) org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:834)
[...]
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1373)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308) at java.base/java.lang.Thread.run(Thread.java:834)
[...]
21:54:57.881 WARN  [NettyMessagingService] Failed to bind TCP server to port 0.0.0.0:9876 due to {}
java.net.BindException: Address already in use
    at java.base/sun.nio.ch.Net.bind0(Native Method)
[...]
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:906)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at java.base/java.lang.Thread.run(Thread.java:834)
21:54:57.899 ERROR [onos-core-primitives] bundle org.onosproject.onos-core-primitives:2.3.0 (192)[org.onosproject.store.atomix.impl.AtomixManager(115)] : The activate method has thrown an exception
java.util.concurrent.CompletionException: java.net.BindException: Address already in use
    at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:331)
[...]
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.net.BindException: Address already in use
    at java.base/sun.nio.ch.Net.bind0(Native Method)
    at java.base/sun.nio.ch.Net.bind(Net.java:455)
    at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:227)
    at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:132)
    at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:563)
    ... 12 more

使用ssh -p 8101 karaf@localhost 连接到karaf 实例确认ONOS 正在工作(至少部分),Web 界面登录加载,但登录后它挂起说ONOS GUI not ready yet... please stand by...

有人知道如何解决这个问题吗?

提前致谢。

2020 年 3 月 19 日更新:我在另一台使用 VirtualBox 的 PC 上按照完全相同的步骤准备了另一台虚拟机,并且分配了更少的虚拟资源,并且它可以工作。老实说,我不明白为什么它在 Hyper-V 配置上失败。

更新 20-03-2020:我已经重新安装了 Ubuntu,直接从安装程序配置网络,以及 ONOS 离线的先决条件和依赖项(通过 sudo apt install --download-only <package-name> 下载到另一台机器上)并且它工作正常。我认为问题与网络配置中的某些内容有关,该配置无法让他识别端口 9876 上的自己的进程(请参阅上面的 WARN)。 希望这对其他人有帮助。

【问题讨论】:

    标签: java linux ubuntu-18.04 sdn onos


    【解决方案1】:

    我遇到了这个问题。 ONOS 在第一次安装时被锁定到 IP。我在 /onos 文件夹中搜索了我的 IP,并且能够通过删除以下包含 IP 的文件来重置绑定。它们在下次 ONOS 运行时重建。

    grep -rl 192.168. --exclude=*.log ~/onos
    
    rm ~/onos/apache-karaf-4.2.9/data/db/partitions/data/partitions/1/raft-partition-1.conf
    rm ~/onos/apache-karaf-4.2.9/data/db/partitions/data/partitions/1/raft-partition-1.meta
    rm ~/onos/apache-karaf-4.2.9/data/db/partitions/data/partitions/1/.raft-partition-1.lock
    rm ~/onos/apache-karaf-4.2.9/data/db/partitions/system/partitions/1/.system-partition-1.lock
    rm ~/onos/apache-karaf-4.2.9/data/db/partitions/system/partitions/1/system-partition-1.conf
    rm ~/onos/apache-karaf-4.2.9/data/db/partitions/system/partitions/1/system-partition-1.meta
    

    【讨论】:

      【解决方案2】:

      我在更改控制器(主机)的 IP 地址后遇到了这个问题。

      解决此问题的快速方法是将 IP 控制器设置为原样(静态)

      然后重启你的机器

      放上网址后(YourIP:8181/onos/ui/index.html)

      Karaf 会要求您输入凭据,使用 (username:karaf/password:karaf)

      然后在 ONOS 的登录页面上,使用 onos/rocks 作为凭据。

      祝你好运..

      【讨论】:

        猜你喜欢
        • 2021-08-16
        • 2020-09-22
        • 2021-02-23
        • 1970-01-01
        • 2018-06-05
        • 2019-07-01
        • 2016-01-24
        • 2016-01-25
        • 1970-01-01
        相关资源
        最近更新 更多