I'm having a problem on a system I upgraded from 3.4.1 to 4.0.1. Starting ncs always results in a failure. I installed it as:
$ sudo sh NSO-4.0.1.linux.x86_64.installer.bin --system-install
but starting always fails.
$ sudo /etc/init.d/ncs start
Starting ncs (via systemctl): Job for ncs.service failed. See 'systemctl status ncs.service' and 'journalctl -xn' for details.
[FAILED]
$ cat /etc/centos-release
CentOS Linux release 7.1.1503 (Core)
$ uname -a
Linux ip-172-31-41-138.ec2.internal 3.10.0-229.11.1.el7.x86_64 #1 SMP Thu Aug 6 01:06:18 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Basically taking the startup steps from the init script:
ncsdir=/opt/ncs/current
confdir=/etc/ncs
rundir=/var/opt/ncs
logdir=/var/log/ncs
ncs=${ncsdir}/bin/ncs
prog=ncs
conf="-c ${confdir}/ncs.conf"
heart="--heart"
. $ncsdir/ncsrc
NCS_CONFIG_DIR=${confdir}
NCS_RUN_DIR=${rundir}
NCS_LOG_DIR=${logdir}
export NCS_CONFIG_DIR NCS_RUN_DIR NCS_LOG_DIR
# $ncs --foreground
"Failed to load file /var/opt/ncs/state/packages-in-use/1/cisco-nx/load-dir/tailf-ned-cisco-nx-meta.fxs: /var/opt/ncs/state/packages-in-use/1/cisco-nx/load-dir/tailf-ned-cisco-nx-meta.fxs: Must be recompiled!\n"
# echo $?
21
This is not unique to the cisco-nx ned. At first I thought it was stale neds, but I copied everything from /opt/ncs/current/neds/packages into the packages-in-use.cur directory. I also got the same error with some other packages. Recompiling and re-copying does not help. At this point I'm not sure what else to do. I've tried starting with the reload options
# NCS_RELOAD_PACKAGES=true /etc/init.d/ncs start
Starting ncs (via systemctl): Job for ncs.service failed. See 'systemctl status ncs.service' and 'journalctl -xn' for details.
[FAILED]
# journalctl -xn
-- Logs begin at Tue 2015-08-25 17:17:55 UTC, end at Thu 2015-09-17 13:58:47 UTC. --
Sep 17 13:58:47 hostname ncs[9654]: - Loading file /var/opt/ncs/state/packages-in-use/1/cisco-nx/package-meta-data.xml
Sep 17 13:58:47 hostname ncs[9654]: - Loading file /var/opt/ncs/state/packages-in-use/1/cisco-iosxr/package-meta-data.xml
Sep 17 13:58:47 hostname ncs[9654]: - Loading file /var/opt/ncs/state/packages-in-use/1/cisco-ios/package-meta-data.xml
Sep 17 13:58:47 hostnamel ncs[9654]: - Loading file /var/opt/ncs/state/packages-in-use/1/cisco-nx/load-dir/tailf-ned-cisco-nx-meta.fxs
Sep 17 13:58:47 hostname ncs[9654]: - Failed to load file /var/opt/ncs/state/packages-in-use/1/cisco-nx/load-dir/tailf-ned-cisco-nx-meta.fxs: /var/opt/ncs/state/packages-in-use/1/ci
Sep 17 13:58:47 hostname ncs[9648]: Starting ncs: Failed to load file /var/opt/ncs/state/packages-in-use/1/cisco-nx/load-dir/tailf-ned-cisco-nx-meta.fxs: /var/opt/ncs/state/packages
Sep 17 13:58:47 hostname ncs[9648]: Daemon died status=21
Sep 17 13:58:47 hostname systemd[1]: ncs.service: control process exited, code=exited status=21
Sep 17 13:58:47 hostname systemd[1]: Failed to start NCS Service.
-- Subject: Unit ncs.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit ncs.service has failed.
--
-- The result is failed.
Sep 17 13:58:47 hostname systemd[1]: Unit ncs.service entered failed state.
lines 1-18/18 (END)
Hi,
As the log message indicates, you need to recompile the cisco-nx NED.
Another option is to download a NED already compiled for version 4.0
Cheers, Gustavo
Hi Gustavo,
I forgot to mention it, but yes, I attempted recompiling all of the NEDs and packages. In fact, that is the first thing I did given the errors. What is especially puzzling is that these are the NEDs that shipped with 4.0.1, but again, the problem is not specific to NEDs, as all packages are affected.
Hi,
I had this problem here and it was related to cached objects.
In my case, it was an old cached version of cisco-ios ned.
To solve it, I've removed the directory state/packages-in-use/1/cisco-ios and reloaded the packages.
Cheers
And from man ncs:
--with-package-reload When NCS starts, if the private package directory tree already exists, NCS will load the packages from this directory tree and not search the load-path for packages. If the --with-package-reload option is given when starting NCS, the load-path will be searched and the packages found there copied to the private package directory tree, replacing the previous contents, before loading. This should always be used when upgrading to a new version of NCS in an existing directory structure, to make sure that new packages are loaded together with the other parts of the new system.
When NCS is started from the /etc/init.d scripts, that get generated by the --system-install option to the NCS installer, the environment variable NCS_RELOAD_PACKAGES can be set to 'true' to attempt a package reload.