1

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?

4
  • What's the output from ls -lad /dev/dld and ls -Ll /dev/dld? Jul 14, 2017 at 12:06
  • 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
    – NoGotnu
    Jul 17, 2017 at 5:46
  • What's the output from grep dld /etc/name_to_major? You should see output like dld 48. What's the output from grep dld /etc/minor_perm? You should see dld: * 0666 root sys. If those are correct, run truss -o /path/to/some/output/file dladm, find write(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/… Jul 17, 2017 at 12:18
  • From the OpenSolaris code (which is somewhat different from the Solaris 11.3 code because the OpenSolaris code always needs an argument and doesn't default to show-link as the Solaris 11 code does), the only way to get the dladm: could not open /dev/dld: operation failed error message is for the call to open( "/dev/dld" ... ); to fail with an unexpected errno. The Solaris 11 code likely behaves the same, which means something unexpected is going on. Hence the truss command to find out what that unexpected errno actually is. Jul 17, 2017 at 12:20

1 Answer 1

1

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

1
  • I'm impressed. There were lots of svc.startds 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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .