First, a traceback; second, diffs of my actuator.py.
thx, --emk
bosco:work-109-4:/var/svc# pkg uninstall EMK-1
The Boot Environment work-109-4 failed to be updated. A snapshot was
taken before the failed attempt and is mounted here /tmp/tmp8usBow. Use
'beadm unmount work-109-5' and then 'beadm activate work-109-5' if you
wish to boot to this BE.
pkg: An unexpected error happened during uninstallation: Cmd
('/usr/sbin/svcadm', 'disable -s',
'svc:/application/emk/myservice:default') exited with status 2, and
output '['Usage: svcadm [-v] [cmd [args ... ]]\n', '\n', '\tsvcadm
enable [-rst] <service> ...\t- enable and online service(s)\n',
'\tsvcadm disable [-st] <service> ...\t- disable and offline
service(s)\n', '\tsvcadm restart <service> ...\t\t- restart specified
service(s)\n', '\tsvcadm refresh <service> ...\t\t- re-read service
configuration\n', '\tsvcadm mark [-It] <state> <service> ...\t- set
maintenance state\n', '\tsvcadm clear <service> ...\t\t- clear
maintenance state\n', '\tsvcadm milestone [-d] <milestone>\t- advance to
a service milestone\n', '\n', '\tServices can be specified using an
FMRI, abbreviation, or fnmatch(5)\n', '\tpattern, as shown in these
examples for svc:/network/smtp:sendmail\n', '\n', '\tsvcadm <cmd>
svc:/network/smtp:sendmail\n', '\tsvcadm <cmd> network/smtp:sendmail\n',
'\tsvcadm <cmd> network/*mail\n', '\tsvcadm <cmd> network/smtp\n',
'\tsvcadm <cmd> smtp:sendmail\n', '\tsvcadm <cmd> smtp\n', '\tsvcadm
<cmd> sendmail\n']'
Traceback (most recent call last):
File "/usr/bin/pkg", line 2274, in ?
__ret = main_func()
File "/usr/bin/pkg", line 2225, in main_func
return uninstall(mydir, pargs)
File "/usr/bin/pkg", line 862, in uninstall
api_inst.execute_plan()
File "/usr/lib/python2.4/vendor-packages/pkg/client/api.py", line 498,
in execute_plan
self.img.imageplan.execute()
File "/usr/lib/python2.4/vendor-packages/pkg/client/imageplan.py",
line 680, in execute
self.actuators.exec_pre_actuators(self.image)
File "/usr/lib/python2.4/vendor-packages/pkg/client/actuator.py", line
180, in exec_pre_actuators
self.__call(args + params)
File "/usr/lib/python2.4/vendor-packages/pkg/client/actuator.py", line
298, in __call
raise NonzeroExitException(args, ret, buf)
NonzeroExitException: Cmd ('/usr/sbin/svcadm', 'disable -s',
'svc:/application/emk/myservice:default') exited with status 2, and
output '['Usage: svcadm [-v] [cmd [args ... ]]\n', '\n', '\tsvcadm
enable [-rst] <service> ...\t- enable and online service(s)\n',
'\tsvcadm disable [-st] <service> ...\t- disable and offline
service(s)\n', '\tsvcadm restart <service> ...\t\t- restart specified
service(s)\n', '\tsvcadm refresh <service> ...\t\t- re-read service
configuration\n', '\tsvcadm mark [-It] <state> <service> ...\t- set
maintenance state\n', '\tsvcadm clear <service> ...\t\t- clear
maintenance state\n', '\tsvcadm milestone [-d] <milestone>\t- advance to
a service milestone\n', '\n', '\tServices can be specified using an
FMRI, abbreviation, or fnmatch(5)\n', '\tpattern, as shown in these
examples for svc:/network/smtp:sendmail\n', '\n', '\tsvcadm <cmd>
svc:/network/smtp:sendmail\n', '\tsvcadm <cmd> network/smtp:sendmail\n',
'\tsvcadm <cmd> network/*mail\n', '\tsvcadm <cmd> network/smtp\n',
'\tsvcadm <cmd> smtp:sendmail\n', '\tsvcadm <cmd> smtp\n', '\tsvcadm
<cmd> sendmail\n']'
pkg: This is an internal error. Please let the developers know about this
problem by filing a bug at http://defect.opensolaris.org and including the
above traceback and this message. The version of pkg(5) is '7c5784221914+'.
bosco:work-109-4:/var/svc#
bosco:work-109-4:/usr/lib/python2.4/vendor-packages/pkg/client# diff -c
actuator.py actuator.py.7264-fixed
*** actuator.py 2009-03-24 12:50:37.545139558 -0700
--- actuator.py.7264-fixed 2009-03-24 12:47:45.819739393 -0700
***************
*** 166,179 ****
self.suspend_fmris = suspend_fmris
self.tmp_suspend_fmris = tmp_suspend_fmris
! args = (svcadm_path, "disable", "-st")
params = tuple(suspend_fmris | tmp_suspend_fmris)
if params:
self.__call(args + params)
! args = (svcadm_path, "disable -s")
params = tuple(disable_fmris)
if params:
--- 166,179 ----
self.suspend_fmris = suspend_fmris
self.tmp_suspend_fmris = tmp_suspend_fmris
! args = (svcadm_path, "disable", "-t")
params = tuple(suspend_fmris | tmp_suspend_fmris)
if params:
self.__call(args + params)
! args = (svcadm_path, "disable")
params = tuple(disable_fmris)
if params:
bosco:work-109-4:/usr/lib/python2.4/vendor-packages/pkg/client#
Bart Smaalders wrote:
Bart Smaalders wrote:
Ed McKnight wrote:
My package is delivering an smf service to preform self-assembly and
teardown:
...
<exec_method
type='method'
name='start'
exec='/var/emk/svc_method %m'
timeout_seconds='10' >
</exec_method>
<exec_method
type='method'
name='stop'
exec='/var/emk/svc_method %m'
timeout_seconds='10' >
</exec_method>
...
The smf manifest, the worker script (/var/emk/svc_method) are
delivered in the same IPS package as the 'content' they are to set
up and tear down.
...
file /workspace/emk/sc/tinkering/smf-service/myservice.xml mode=0444
owner=root group=sys
path=var/svc/manifest/application/emk/myservice.xml
restart_fmri=svc:/system/manifest-import:default
disable_fmri=svc:/application/emk/myservice:default
file /workspace/emk/sc/tinkering/smf-service/svc_method mode=0555
owner=root group=sys path=var/emk/svc_method
...
After install and enable (my start() does all the right things) I
have this:
bosco:work-109-4:/var/svc# svcs -a | grep emk
online 19:45:11 svc:/application/emk/myservice:default
When I do pkg uninstall I get this:
...
[ Mar 24 11:12:45 Stopping because service disabled. ]
[ Mar 24 11:12:45 Executing stop method ("/var/emk/svc_method stop"). ]
/sbin/sh[1]: exec: /var/emk/svc_method: not found
[ Mar 24 11:12:45 Method "stop" exited with status 127. ]
...
I'd have expected the stop method to run to completion before files
are removed, but seemingly not so..
Am I doing something obviously wrong?
This is likely a bug. Investigating...
- Bart
If you have a working test, could you add "-s" to disable
lines in
/usr/lib/python2.4/vendor-packages/pkg/client/actuator.py
like this:
diff -r 0397a56d195d src/modules/client/actuator.py
--- a/src/modules/client/actuator.py Tue Mar 24 09:13:15 2009 -0700
+++ b/src/modules/client/actuator.py Tue Mar 24 10:25:27 2009 -0700
@@ -166,14 +166,14 @@
self.suspend_fmris = suspend_fmris
self.tmp_suspend_fmris = tmp_suspend_fmris
- args = (svcadm_path, "disable", "-t")
+ args = (svcadm_path, "disable", "-st")
params = tuple(suspend_fmris | tmp_suspend_fmris)
if params:
self.__call(args + params)
- args = (svcadm_path, "disable")
+ args = (svcadm_path, "disable", "-s")
params = tuple(disable_fmris)
and see if that resolves your problem?
Thanks-
- Bart
_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss