Bug#695751: gdm: gdm3 update fails due to conflict with laptop-mode-tools

2013-01-04 Thread Russ Allbery
Control: -1 found insserv/1.14.0-2
Control: -1 retitle depending on a script that depends on $all (including by 
not having LSB headers) creates loop

We've encountered this problem many times with locally-written init
scripts without LSB headers, since they get an implicit dependency on
$all, which will create a loop if there is any other header with an
implicit dependency on $all.  But the best solution is to just add LSB
headers.

This problem already existed in exactly this form in squeeze.  Setting the
found version accordingly.

I think the severity for this bug is wrong, although I was hesitant to
change it when the maintainers are involved in the discussion.  But I
think it's important at worst.  This behavior is unchanged since stable
and really represents a bug in the local init script, which doesn't have
the headers to be properly fit into the dependency tree.

-- 
Russ Allbery (r...@debian.org)   http://www.eyrie.org/~eagle/


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#695751: gdm: gdm3 update fails due to conflict with laptop-mode-tools

2012-12-14 Thread Roger Leigh
On Thu, Dec 13, 2012 at 09:15:12AM +0100, Adrin wrote:
 This is the find output:
 # find /etc -name '*vpnagentd_init*'
 /etc/rc5.d/K25vpnagentd_init
 /etc/rc5.d/S85vpnagentd_init
 /etc/init.d/vpnagentd_init
 /etc/rc4.d/K25vpnagentd_init
 /etc/rc4.d/S85vpnagentd_init
 /etc/rc2.d/K25vpnagentd_init
 /etc/rc2.d/S85vpnagentd_init
 /etc/rc3.d/K25vpnagentd_init
 /etc/rc3.d/S85vpnagentd_init

OK, I've solved the problem.  If you adjust your symlinks like this:

(sid)root@hufflepuff:/# find /etc -name '*vpnagentd_init' | sort | xargs ls -l
-rwxr-xr-x 1 root root 1153 Dec  4 08:46 /etc/init.d/vpnagentd_init
lrwxrwxrwx 1 root root   24 Dec 14 22:52 /etc/rc0.d/K01vpnagentd_init - 
../init.d/vpnagentd_init
lrwxrwxrwx 1 root root   24 Dec 14 22:52 /etc/rc1.d/K01vpnagentd_init - 
../init.d/vpnagentd_init
lrwxrwxrwx 1 root root   26 Dec  4 08:46 /etc/rc2.d/S21vpnagentd_init - 
/etc/init.d/vpnagentd_init
lrwxrwxrwx 1 root root   26 Dec  4 08:46 /etc/rc3.d/S21vpnagentd_init - 
/etc/init.d/vpnagentd_init
lrwxrwxrwx 1 root root   26 Dec  4 08:46 /etc/rc4.d/S21vpnagentd_init - 
/etc/init.d/vpnagentd_init
lrwxrwxrwx 1 root root   26 Dec  4 08:46 /etc/rc5.d/S21vpnagentd_init - 
/etc/init.d/vpnagentd_init
lrwxrwxrwx 1 root root   24 Dec 14 22:52 /etc/rc6.d/K01vpnagentd_init - 
../init.d/vpnagentd_init

And then run insserv:

(sid)root@hufflepuff:/# insserv
insserv: warning: script 'K01vpnagentd_init' missing LSB tags and overrides
insserv: warning: script 'vpnagentd_init' missing LSB tags and overrides

It will then adjust the links and all will be well.  Not entirely sure
why this shows two warnings though.

I think the cryptic errors you were getting were a result of S85 being
higher than the biggest runlevel S21 in used by insserv.  This then
makes it get placed after $all and hence the dependency loop.  That's
my theory anyway--I haven't looked at the code yet.  The stop number
is adjusted to be first, and has also been removed from runlevels
2-5 and added to runlevels 0, 1 and 6.

However, it does look like there's room for improvement here.  If
we haven't got an LSB header, why does the number get used at all?
Isn't its presence in this runlevel sufficient?  If so, we could
just ignore the number and have insserv assign it one appropriately.
Likewise for stop links.

I hope this makes some degree of sense.  I'm still not entirely
sure about how the internals work here.  I didn't notice issues
like this testing upgrades, possibly due to there always being
a script at S99.


Regards,
Roger

-- 
  .''`.  Roger Leigh
 : :' :  Debian GNU/Linuxhttp://people.debian.org/~rleigh/
 `. `'   schroot and sbuild  http://alioth.debian.org/projects/buildd-tools
   `-GPG Public Key  F33D 281D 470A B443 6756 147C 07B3 C8BC 4083 E800


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#695751: gdm: gdm3 update fails due to conflict with laptop-mode-tools

2012-12-13 Thread Roger Leigh
On Thu, Dec 13, 2012 at 09:15:12AM +0100, Adrin wrote:
 This is the find output:
 # find /etc -name '*vpnagentd_init*'
 /etc/rc5.d/K25vpnagentd_init
 /etc/rc5.d/S85vpnagentd_init
 /etc/init.d/vpnagentd_init
 /etc/rc4.d/K25vpnagentd_init
 /etc/rc4.d/S85vpnagentd_init
 /etc/rc2.d/K25vpnagentd_init
 /etc/rc2.d/S85vpnagentd_init
 /etc/rc3.d/K25vpnagentd_init
 /etc/rc3.d/S85vpnagentd_init
 
 And the attached is what you asked for.

Thanks.  With this, I can reproduce the issue in a chroot environment.
I don't see this with just the script alone, so I can only assume this
is a result of the symlinks you have in the rc.d directories.

If I delete all the rc?.d/*vpnagentd_init links, insserv runs without
error.  Also, if I create a Snnvpnagentd_init link in rcS.d, it also
works without error.  But, if I create an S link in rc[2345].d, the
error is then triggered.  So this looks like the implicit $all
dependency is only working in the context of rcS.

Small note: You don't need the K links in rc[2345].d; restricting
them to rc[016] is fine.  This doesn't have any effect on the
problem in question.

One thing I'm not entirely clear on is how $all interacts with
runlevels.  Is there a $all at the end of every runlevel, or is
this restricted to rcS?


Regards,
Roger

-- 
  .''`.  Roger Leigh
 : :' :  Debian GNU/Linuxhttp://people.debian.org/~rleigh/
 `. `'   schroot and sbuild  http://alioth.debian.org/projects/buildd-tools
   `-GPG Public Key  F33D 281D 470A B443 6756 147C 07B3 C8BC 4083 E800


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#695751: gdm: gdm3 update fails due to conflict with laptop-mode-tools

2012-12-13 Thread Petter Reinholdtsen

[Roger Leigh]
 One thing I'm not entirely clear on is how $all interacts with
 runlevels.  Is there a $all at the end of every runlevel, or is
 this restricted to rcS?

$all do not work the way you think. :)

I'm told by the insserv author that all init.d scripts are sorted into a
global dependency based ordering across all runlevels.  This is used to
decide the order number for each script.  When this is done, all scripts
depending on $all is assigned the highest order number plus one, to
ensure they all end up at the end of the boot sequence.

Because of this, I recommend to avoid $all if at all possible.  It do
not work the way most people (myself included) expect, and can lead to
incorrect boot ordering if a script depend on a script which in turn
depend on $all.

-- 
Happy hacking
Petter Reinholdtsen


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#695751: gdm: gdm3 update fails due to conflict with laptop-mode-tools

2012-12-13 Thread Michael Biebl
On 13.12.2012 21:19, Petter Reinholdtsen wrote:

 Because of this, I recommend to avoid $all if at all possible.  It do
 not work the way most people (myself included) expect, and can lead to
 incorrect boot ordering if a script depend on a script which in turn
 depend on $all.

Seems we do have quite a few packages using $all (see attached file).

Seing that $all can lead to such unwanted behaviour, maybe it would be
worth investigating if all those sysv init scripts actually need $all
(and file bugs accordingly).

Michael


-- 
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth?
boinc-client/init.d/boinc-client:# Required-Start:$all
bootchart/init.d/bootchart:# Required-Start:$remote_fs $all
bootlogd/init.d/stop-bootlogd:# Required-Start:$local_fs $all
bootlogd/init.d/stop-bootlogd-single:# Required-Start:$local_fs $all
cardstories/init.d/cardstories:# Required-Start:$all
cardstories/init.d/cardstories:# Required-Stop: $all
collectl/init.d/collectl:# Required-Start:$all
collectl/init.d/collectl:# Required-Stop: $all
debian-edu-install/init.d/xdebian-edu-firstboot:# Required-Start:$remote_fs 
$all
dhcp-probe/init.d/dhcp-probe:# Required-Start:$local_fs $remote_fs $syslog 
$network $all
dtc-xen-firewall/init.d/dtc-xen-firewall:# Required-Start:$remote_fs $all
dtc-xen/init.d/dtc-xen:# Required-Start:$all
flashybrid/init.d/flashybrid:# Required-Start:$all
gunicorn/init.d/gunicorn:# Required-Start:  $all
gunicorn/init.d/gunicorn:# Required-Stop:   $all
initscripts/init.d/rc.local:# Required-Start:$all
initscripts/init.d/rmnologin:# Required-Start:$remote_fs $all
initscripts/init.d/single:# Required-Start:$local_fs $all killprocs
laptop-mode-tools/init.d/laptop-mode:# Should-Start:  $all
mediatomb-daemon/init.d/mediatomb:# Should-Start:  $all
mediatomb-daemon/init.d/mediatomb:# Should-Stop:   $all
minidlna/init.d/minidlna:# Should-Start:  $all
minidlna/init.d/minidlna:# Should-Stop:   $all
minissdpd/init.d/minissdpd:# Required-Start:$remote_fs $all
mon/init.d/mon:# Required-Start:$remote_fs $all
monit/init.d/monit:# Should-Start:  $all
monit/init.d/monit:# Should-Stop:   $all
ngetty/init.d/ngetty:# Required-Start:$all
ngetty/init.d/ngetty:# Required-Stop: $all
noflushd/init.d/noflushd:# Required-Start:  $syslog $remote_fs $all
oar-node/init.d/oar-node:# Required-Start:   $all
oar-node/init.d/oar-node:# Required-Stop:$all
oar-server/init.d/oar-server:# Required-Start:$network $local_fs $remote_fs 
$all
plymouth/init.d/plymouth:# Required-Start:  udev $remote_fs $all
portsentry/init.d/portsentry:# Required-Start:$remote_fs $syslog $all
readahead-fedora/init.d/stop-readahead-fedora:# Required-Start:$all
reniced/init.d/reniced:# Required-Start:$all
reniced/init.d/reniced:# Required-Stop: $all
shinken-arbiter/init.d/shinken-arbiter:# Required-Start:$all
shinken-arbiter/init.d/shinken-arbiter:# Required-Stop: $all
shinken-broker/init.d/shinken-broker:# Required-Start:$all
shinken-broker/init.d/shinken-broker:# Required-Stop: $all
shinken-poller/init.d/shinken-poller:# Required-Start:$all
shinken-poller/init.d/shinken-poller:# Required-Stop: $all
shinken-reactionner/init.d/shinken-reactionner:# Required-Start:$all
shinken-reactionner/init.d/shinken-reactionner:# Required-Stop: $all
shinken-receiver/init.d/shinken-receiver:# Required-Start:$all
shinken-receiver/init.d/shinken-receiver:# Required-Stop: $all
shinken-scheduler/init.d/shinken-scheduler:# Required-Start:$all
shinken-scheduler/init.d/shinken-scheduler:# Required-Stop: $all
torque-scheduler/init.d/torque-scheduler:# Required-Start:$all
torque-scheduler/init.d/torque-scheduler:# Required-Stop: $all
torque-scheduler/init.d/torque-scheduler:# Should-Start:  $all
torque-scheduler/init.d/torque-scheduler:# Should-Stop:   $all
watchdog/init.d/watchdog:# Required-Start:$all
watchdog/init.d/watchdog:# Required-Stop: $all
watchdog/init.d/wd_keepalive:# X-Start-Before:$all
xymon-client/init.d/hobbit-client:# Should-Start:  $all
xymon/init.d/hobbit:# Should-Start:  $all


signature.asc
Description: OpenPGP digital signature


Bug#695751: gdm: gdm3 update fails due to conflict with laptop-mode-tools

2012-12-13 Thread Petter Reinholdtsen
[Michael Biebl]
 Seems we do have quite a few packages using $all (see attached file).

Yes.  But it only become a problem if there are any scripts that
depend on any of the scripts that depend on $all. :)

 Seing that $all can lead to such unwanted behaviour, maybe it would
 be worth investigating if all those sysv init scripts actually need
 $all (and file bugs accordingly).

Yeah. :)

-- 
Happy hacking
Petter Reinholdtsen


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#695751: gdm: gdm3 update fails due to conflict with laptop-mode-tools

2012-12-12 Thread Simon McVittie
On 12/12/12 09:32, adrin wrote:
 I can not upgrade gdm3 as follows.

This does not necessarily look like gdm3's fault to me.

 dpkg: error processing gdm3 (--configure):
  subprocess installed post-installation script returned error exit
  status 1

There does seem to be a bug of some sort here: gdm3.postinst shouldn't
exit unsuccessfully without a message. If you edit
/var/lib/dpkg/gdm3.postinst and add a line set -x just below the set
-e, then retry the installation, it might become clearer what went wrong?

 insserv: warning: script 'K25vpnagentd_init' missing LSB tags and overrides
 insserv: warning: script 'vpnagentd_init' missing LSB tags and overrides
 insserv: Starting vpnagentd_init depends on laptop-mode and therefore on 
 system facility `$all' which can not be true!

Where does this /etc/init.d/vpnagentd_init script come from? I think
this is what's causing the problem.

It looks as though that script needs LSB tags
(http://wiki.debian.org/LSBInitScripts) in order for the installation
of any package with an init script to succeed.

As a result, laptop-mode-tools, gdm3 and exim4-base (which each contain
an init script) all fail to install:

 insserv: Starting vpnagentd_init depends on laptop-mode and therefore on 
 system facility `$all' which can not be true!
...
 insserv: There is a loop at service laptop-mode if started
 insserv: There is a loop at service vpnagentd_init if started
...
 insserv: There is a loop between service laptop-mode and mountkernfs if 
 started
 insserv:  loop involving service mountkernfs at depth 1
 insserv: Starting vpnagentd_init depends on laptop-mode and therefore on 
 system facility `$all' which can not be true!
...
 insserv: exiting now without changing boot order!
 update-rc.d: error: insserv rejected the script header
 dpkg: error processing exim4-base (--configure):
  subprocess installed post-installation script returned error exit status 1

Regards,
S


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#695751: gdm: gdm3 update fails due to conflict with laptop-mode-tools

2012-12-12 Thread Michael Biebl
reassign 695751 insserv
thanks

Hi adrin,

On 12.12.2012 12:14, Simon McVittie wrote:
 On 12/12/12 09:32, adrin wrote:

 insserv: warning: script 'K25vpnagentd_init' missing LSB tags and overrides
 insserv: warning: script 'vpnagentd_init' missing LSB tags and overrides
 insserv: Starting vpnagentd_init depends on laptop-mode and therefore on 
 system facility `$all' which can not be true!
 
 Where does this /etc/init.d/vpnagentd_init script come from? I think
 this is what's causing the problem.
 
 It looks as though that script needs LSB tags
 (http://wiki.debian.org/LSBInitScripts) in order for the installation
 of any package with an init script to succeed.
 
 As a result, laptop-mode-tools, gdm3 and exim4-base (which each contain
 an init script) all fail to install:
 
 insserv: Starting vpnagentd_init depends on laptop-mode and therefore on 
 system facility `$all' which can not be true!
 ...
 insserv: There is a loop at service laptop-mode if started
 insserv: There is a loop at service vpnagentd_init if started
 ...
 insserv: There is a loop between service laptop-mode and mountkernfs if 
 started
 insserv:  loop involving service mountkernfs at depth 1
 insserv: Starting vpnagentd_init depends on laptop-mode and therefore on 
 system facility `$all' which can not be true!
 ...
 insserv: exiting now without changing boot order!
 update-rc.d: error: insserv rejected the script header
 dpkg: error processing exim4-base (--configure):
  subprocess installed post-installation script returned error exit status 1

I've re-assigned the bug report to insserv and so their maintainers can
have a look at what is causing the problem.

To diagnose the problem we need more information:
1/ the output of /usr/share/insserv/make-testsuite
2/ the contents of /etc/init.d/: tar czf etc-initd.tar.gz /etc/init.d/

Please attach this information when you reply.

Michael
-- 
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth?



signature.asc
Description: OpenPGP digital signature


Bug#695751: gdm: gdm3 update fails due to conflict with laptop-mode-tools

2012-12-12 Thread Petter Reinholdtsen
[Michael Biebl]
 insserv: warning: script 'K25vpnagentd_init' missing LSB tags and overrides
 insserv: warning: script 'vpnagentd_init' missing LSB tags and overrides
 insserv: Starting vpnagentd_init depends on laptop-mode and therefore on 
 system facility `$all' which can not be true!
 
 Where does this /etc/init.d/vpnagentd_init script come from? I think
 this is what's causing the problem.

I agree.  The boot sequence system seem to refuse to continue to avoid
leaving the boot system in an unknown and possibly broken state.  The
fix is to add correct LSB headers in /etc/init.d/vpnagentd_init.

 To diagnose the problem we need more information:
 1/ the output of /usr/share/insserv/make-testsuite
 2/ the contents of /etc/init.d/: tar czf etc-initd.tar.gz /etc/init.d/

The output from make-testsuite is most likely enough to reproduce the
problem.  It repliactes the LSB info in /etc/init.d/.

There is also a problem with insserv here, as it should provide
scripts without LSB headers with a sensible default.  This no longer
seem to happen.  No idea why.

-- 
Happy hacking
Petter Reinholdtsen


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#695751: gdm: gdm3 update fails due to conflict with laptop-mode-tools

2012-12-12 Thread Roger Leigh
On Wed, Dec 12, 2012 at 01:41:26PM +0100, Adrin wrote:
 Hi,
 
 Thanks for the fast follow up. Two files are attached and this is the more
 comprehensive report by adding set -x:

Thanks for the files.  The trigger for the problem is vpnagentd_init,
which lacks LSB headers.  But there's nothing strictly wrong with this
in and of itself.  And there's nothing explicitly tying it to laptop-mode.

/etc/init.d/laptop-mode contains:
# Should-Start:  $all
# Required-Start:$remote_fs

Could you change this to
# Should-Start:  
# Required-Start:$remote_fs $all

and then retry the apt-get install -f command?

I think the reason this is causing problems is that Should-Start:  $all
isn't strict enough, which leads to the loop in the dependency graph;
making it required should fix things (I hope).


Thanks,
Roger

-- 
  .''`.  Roger Leigh
 : :' :  Debian GNU/Linuxhttp://people.debian.org/~rleigh/
 `. `'   schroot and sbuild  http://alioth.debian.org/projects/buildd-tools
   `-GPG Public Key  F33D 281D 470A B443 6756 147C 07B3 C8BC 4083 E800


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#695751: gdm: gdm3 update fails due to conflict with laptop-mode-tools

2012-12-12 Thread Roger Leigh
On Wed, Dec 12, 2012 at 01:41:26PM +0100, Adrin wrote:
 Hi,
 
 Thanks for the fast follow up. Two files are attached and this is the more
 comprehensive report by adding set -x:

I've tried to reproduce the failure on a clean wheezy install this
evening using the /etc/init.d directory you provided.  I'm afraid
that I can't reproduce the failure at all.  I just get a warning,
and insserv completes without error.  Possibly this is also dependent
upon the links in the rcn.d directories.  What does
  find /etc -name '*vpnagentd_init*' show?

Would it be possible to have the entire content of your initscripts
e.g.
  tar cfvz /tmp/initfiles.tar.gz /etc/rc?.d /etc/insserv* /etc/init.d
so I can try to reproduce with the exact setup you have?


Thanks,
Roger

-- 
  .''`.  Roger Leigh
 : :' :  Debian GNU/Linux http://people.debian.org/~rleigh/
 `. `'   Printing on GNU/Linux?   http://gutenprint.sourceforge.net/
   `-GPG Public Key: 0x25BFB848   Please GPG sign your mail.


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org