An update on the cvs pserver manifest

Well somewhere along the great BFU way my manifest for the CVS pserver stopped working. It's been quite some time since I've had it working and what with work and uni (oh, and a holiday in Europe...) I didn't get back to it until today. I keep getting errors like these:
Aug 22 06:31:25 broken inetd[100282]: [ID 702911 daemon.error] Property 'name' of instance svc:/network/cvspserver/tcp:default is missing, inconsistent or invalid
Aug 22 06:31:25 broken inetd[100282]: [ID 702911 daemon.error] Property 'proto' of instance svc:/network/cvspserver/tcp:default is missing, inconsistent or invalid
Which was darned annoying, because my /etc/inet/inetd.conf and /etc/services looked just fine. So I plugged "inetconv invalid inconsistent fields" into sunsolve and got back an infodoc on Samba (contract-only unfortunately) and found a CR involving the libinetsvc.so library which inetconv(1M) uses. Joining the dots together I ran a series of trusses:
# truss -f -a -topen -u libsocket -u libinetsvc /usr/sbin/inetconv -n -i /tmp/pserver.conf
108712: execve("/usr/sbin/inetconv", 0x08047CD4, 0x08047CE8)  argc = 4
108712:  argv: /usr/sbin/inetconv -n -i /tmp/pserver.conf
108712: open("/var/ld/ld.config", O_RDONLY)             Err#2 ENOENT
108712: open("/lib/libscf.so.1", O_RDONLY)              = 3
108712: open("/usr/lib/libinetsvc.so.1", O_RDONLY)      = 3
108712: open("/lib/libc.so.1", O_RDONLY)                = 3
108712: open("/lib/libuutil.so.1", O_RDONLY)            = 3
108712: open("/lib/libsocket.so.1", O_RDONLY)           = 3
108712: open("/lib/libnsl.so.1", O_RDONLY)              = 3
108712: open("/lib/libmd5.so.1", O_RDONLY)              = 3
108712/1:       open("/tmp/pserver.conf", O_RDONLY)             = 3
108712/1:       open64("/var/run/name_service_door", O_RDONLY)  = 4
108712/1@1:     -> libinetsvc:get_prop_table(0x803fba8)
108712/1@1:     <- libinetsvc:get_prop_table() = 0xfef752a0
108712/1@1:     -> libinetsvc:put_prop_value(0x806b6b8, 0x80664e8, 0x8068768)
108712/1@1:     <- libinetsvc:put_prop_value() = 0
108712/1@1:     -> libinetsvc:put_prop_value(0x806b6b8, 0x80664e0, 0x8068764)
108712/1@1:     <- libinetsvc:put_prop_value() = 0
108712/1@1:     -> libinetsvc:put_prop_value(0x806b6b8, 0x80664ac, 0x80687a8)
108712/1@1:     <- libinetsvc:put_prop_value() = 0
108712/1@1:     -> libinetsvc:put_prop_value(0x806b6b8, 0x80664a4, 0x8068798)
108712/1@1:     <- libinetsvc:put_prop_value() = 0
108712/1@1:     -> libinetsvc:put_prop_value(0x806b6b8, 0x806649c, 0x80687b8)
108712/1@1:     <- libinetsvc:put_prop_value() = 0
108712/1@1:     -> libinetsvc:valid_props(0x806b6b8, 0x0, 0x0, 0x0)
108712/1@1:       -> libsocket:getservbyname_r(0x8068828, 0x8068848, 0x803eef0, 0x803ef00)
108712/1:       open("/etc/netconfig", O_RDONLY|O_LARGEFILE)    = 5
108712/1:       open("/dev/udp", O_RDONLY)                      = 5
108712/1:       open("/dev/udp", O_RDONLY)                      = 5
108712/1:       open("/etc/nsswitch.conf", O_RDONLY|O_LARGEFILE) = 5
108712/1:       open("/lib/nss_files.so.1", O_RDONLY)           = 5
108712/1:       open("/etc/services", O_RDONLY|O_LARGEFILE)     = 5
108712/1@1:       <- libsocket:getservbyname_r() = 0
108712/1@1:       -> libsocket:getservbyname_r(0x8068828, 0x0, 0x803eef0, 0x803ef00)
108712/1:       open("/etc/services", O_RDONLY|O_LARGEFILE)     = 5
108712/1@1:       <- libsocket:getservbyname_r() = 0
108712/1@1:     <- libinetsvc:valid_props() = 0
inetconv: Error /tmp/pserver.conf line 1 invalid or inconsistent fields: service-name protocol
108712/1@1:     -> libinetsvc:free_instance_props(0x806b6b8)
108712/1@1:     <- libinetsvc:free_instance_props() = 0xfed62000
There it is again - that error which just looked out of place. At this point I thought that perhaps I should check out /etc/services. Sure enough, I had a different service name (cvs). Changing that to match my inetd.conf-like file and re-running gave me the manifest I wanted. Here's the tail end of the truss:
108718/1:       open("/etc/services", O_RDONLY|O_LARGEFILE)     = 5
108718/1@1:       <- libsocket:getservbyname_r() = 0x803eef0
108718/1@1:       -> libsocket:getservbyname_r(0x8068828, 0x0, 0x803eef0, 0x803ef00)
108718/1:       open("/etc/services", O_RDONLY|O_LARGEFILE)     = 5
108718/1@1:       <- libsocket:getservbyname_r() = 0x803eef0
108718/1@1:     <- libinetsvc:valid_props() = 1
108718/1@1:     -> libinetsvc:free_instance_props(0x806b6b8)
108718/1@1:     <- libinetsvc:free_instance_props() = 0xfed62000
108718/1:       open("/var/svc/manifest/network/pserver-tcp.xml", O_WRONLY|O_CREAT|O_EXCL, 0644) = 5
pserver -> /var/svc/manifest/network/pserver-tcp.xml
So with a quick flick of the wrist I had a new service imported and enabled:
# svccfg import /var/svc/manifest/network/pserver-tcp.xml
# svcadm enable svc:/network/pserver/tcp:default
Here's a link to the manifest
Comments:

Post a Comment:
Comments are closed for this entry.
About

I work at Oracle in the Solaris group. The opinions expressed here are entirely my own, and neither Oracle nor any other party necessarily agrees with them.

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today