After update (i think, but may be something else) from Solaris 11.1 to 11.3, dladm and dlstat commands was broken. Invoking dladm or dlstat gives error:
$ dladm
dladm: could not open /dev/dld: operation failed
How to fix this?
Check the service status:
# svcs -av
svcs: Could not bind to repository server: repository server unavailable. Exiting.
CAUSE: Checking the services status shows the the repository daemon was not up:
SOL: Send a SIGTERM to svc.startd. That will cause svc.startd to restart and spawn a new svc.configd daemon that remains under control of svc.startd
# /lib/svc/bin/svc.configd
to refresh the repository
svc.startd
s so I did a kill -TERM
on the one with the -s
and it also had the smallest PID.
Nov 10, 2023 at 15:52
ls -lad /dev/dld
andls -Ll /dev/dld
?root@CFTTEST:~# ls -lad /dev/dld
lrwxrwxrwx 1 root root 27 Dec 7 2013 /dev/dld -> ../devices/pseudo/dld@0:ctl
root@CFTTEST:~# ls -Ll /dev/dld
crw-rw-rw- 1 root sys 48, 0 Dec 26 2016 /dev/dld
grep dld /etc/name_to_major
? You should see output likedld 48
. What's the output fromgrep dld /etc/minor_perm
? You should seedld: * 0666 root sys
. If those are correct, runtruss -o /path/to/some/output/file dladm
, findwrite(2,
in the output file - which is where it emits the "operation failed" error message and see what it's trying to do. The OpenSolaris source code can be found at src.illumos.org/source/xref/illumos-gate/usr/src/cmd/dladm/… and src.illumos.org/source/xref/illumos-gate/usr/src/lib/libdladm/…show-link
as the Solaris 11 code does), the only way to get thedladm: could not open /dev/dld: operation failed
error message is for the call toopen( "/dev/dld" ... );
to fail with an unexpectederrno
. The Solaris 11 code likely behaves the same, which means something unexpected is going on. Hence thetruss
command to find out what that unexpectederrno
actually is.