Bug#553338: sysvinit: display manager started before interactive initscripts

View: New views
14 Messages — Rating Filter:   Alert me  

Bug#553338: sysvinit: display manager started before interactive initscripts

by Jonas Meurer :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

Package: sysvinit
Version: 2.87dsf-8
Severity: important

hello,

the startpar patch 05_pri_kdm_gdm.patch added in sysvinit 2.87dsf-7
seems to introduce a new bug: the display manager (gdm on this machine)
now is started before scripts that are marked as interactive.

interactive scripts cause the boot process to hang forever if no input
is submitted.

display managers make the boot screen disappear, and many users never
change back to tty1 afterwards. that way they don't recognize that user
input is required in order to finish the boot process.

in my situation, openvpn is started after gdm. openvpn requests a
passphrase in order to unlock a private key. my mailserver (exim4) is
started even after openvn. in case that i miss to change back to tty1
and enter the passphrase for openvpn, my mailserver is never started and
that way my outgoing mail is not sent.

greetings,
 jonas

-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.31-1-amd64-resivo (SMP w/2 CPU cores)
Locale: LANG=C, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages sysvinit depends on:
ii  initscripts                   2.87dsf-8  scripts for initializing and shutt
ii  libc6                         2.10.1-3   GNU C Library: Shared libraries
ii  libselinux1                   2.0.88-1   SELinux runtime shared libraries
ii  libsepol1                     2.0.39-1   SELinux library for manipulating b
ii  sysv-rc                       2.87dsf-8  System-V-like runlevel change mech
ii  sysvinit-utils                2.87dsf-8  System-V-like utilities

sysvinit recommends no packages.

sysvinit suggests no packages.

-- no debconf information


signature.asc (501 bytes) Download Attachment

Bug#553338: sysvinit: display manager started before interactive initscripts

by Petter Reinholdtsen :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

reassign 553338 openvpn
retitle 553338 openvpn need to start before the display managers
thanks

[Jonas Meurer]
> the startpar patch 05_pri_kdm_gdm.patch added in sysvinit 2.87dsf-7
> seems to introduce a new bug: the display manager (gdm on this
> machine) now is started before scripts that are marked as
> interactive.

Interesting.  Had not thought about that consequence.  Will consider
to back out this patch until the affected packages are fixed.  Are you
aware of more than openvpn that need to fix its dependencies?

> in my situation, openvpn is started after gdm. openvpn requests a
> passphrase in order to unlock a private key. my mailserver (exim4)
> is started even after openvn. in case that i miss to change back to
> tty1 and enter the passphrase for openvpn, my mailserver is never
> started and that way my outgoing mail is not sent.

If openvpn need to start before gdm, it need to declare this in its
init.d script header.

Adding 'X-Start-Before: xdm kdm gdm ldm sdm' to the openvpn init.d
script header should solve it.

The concurrent booting require all dependencies to be correct, and we
are not quite there yet.  This is the reason concurrent booting is not
enabled by default.

Happy hacking,
--
Petter Reinholdtsen



--
To UNSUBSCRIBE, email to debian-bugs-dist-REQUEST@...
with a subject of "unsubscribe". Trouble? Contact listmaster@...


Bug#553338: sysvinit: display manager started before interactive initscripts

by Jonas Meurer :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

hey,

On 30/10/2009 Petter Reinholdtsen wrote:
> [Jonas Meurer]
> > the startpar patch 05_pri_kdm_gdm.patch added in sysvinit 2.87dsf-7
> > seems to introduce a new bug: the display manager (gdm on this
> > machine) now is started before scripts that are marked as
> > interactive.
>
> Interesting.  Had not thought about that consequence.  Will consider
> to back out this patch until the affected packages are fixed.  Are you
> aware of more than openvpn that need to fix its dependencies?

i didn't discover any other conflict yet, but i think that _all_
interactive boot scripts be it console-setup, cryptdisks, kbd, openvpn
or whatever _need_ to be started before a display manager. and i don't
see a reason why they would need to declare X-Start-Before headers for
every display manager in the archive. instead the X-Interactive header
should be used by mechanisms which sort the initscripts. every
initscript that has the X-Interactive header should be started before a
display manager.

> > in my situation, openvpn is started after gdm. openvpn requests a
> > passphrase in order to unlock a private key. my mailserver (exim4)
> > is started even after openvn. in case that i miss to change back to
> > tty1 and enter the passphrase for openvpn, my mailserver is never
> > started and that way my outgoing mail is not sent.
>
> If openvpn need to start before gdm, it need to declare this in its
> init.d script header.
>
> Adding 'X-Start-Before: xdm kdm gdm ldm sdm' to the openvpn init.d
> script header should solve it.
i don't think that it's a bug in openvpn, but rather in the sysvinit/
initscripts/insserv system.

greetings,
 jonas


signature.asc (501 bytes) Download Attachment

Bug#553338: sysvinit: display manager started before interactive initscripts

by Alberto Gonzalez Iniesta :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

On Fri, Oct 30, 2009 at 03:43:08PM +0100, Jonas Meurer wrote:

> hey,
>
> On 30/10/2009 Petter Reinholdtsen wrote:
> > If openvpn need to start before gdm, it need to declare this in its
> > init.d script header.
> >
> > Adding 'X-Start-Before: xdm kdm gdm ldm sdm' to the openvpn init.d
> > script header should solve it.
>
> i don't think that it's a bug in openvpn, but rather in the sysvinit/
> initscripts/insserv system.

Hi,

openvpn already has the X-Interactive header (since 2.1~rc20-2). Adding
a X-Start-Before: doesn't seem right at all. No one can track all the
display managers available (or any other things that may arise later).

Regards,


Alberto, who doesn't like the whole new init system based on events and
fancy stuff and is happy with the time his severs take to boot (once
every 2 years, or his laptop twice a day). SCNR


--
Alberto Gonzalez Iniesta    | Formación, consultoría y soporte técnico
agi@(inittab.org|debian.org)| en GNU/Linux y software libre
Encrypted mail preferred    | http://inittab.com

Key fingerprint = 9782 04E7 2B75 405C F5E9  0C81 C514 AF8E 4BA4 01C3



--
To UNSUBSCRIBE, email to debian-bugs-dist-REQUEST@...
with a subject of "unsubscribe". Trouble? Contact listmaster@...


Bug#553338: sysvinit: display manager started before interactive initscripts

by Petter Reinholdtsen :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

[Alberto Gonzalez Iniesta]
> openvpn already has the X-Interactive header (since
> 2.1~rc20-2). Adding a X-Start-Before: doesn't seem right at all. No
> one can track all the display managers available (or any other
> things that may arise later).

Well, I believe X-Start-Before is the correct solution if the script
need to start before the display managers. X-Interactive is not the
same thing as needing to run before display managers. :)

One way to avoid having to list the display managers by name in
scripts that need a relationship on them is to use virtual facilities.
This need to be implemented by each package providing a display
manager.  See
<URL:http://wiki.debian.org/LSBInitScripts/DebianVirtualFacilities>
for information on how that work.

Happy hacking,
--
Petter Reinholdtsen



--
To UNSUBSCRIBE, email to debian-bugs-dist-REQUEST@...
with a subject of "unsubscribe". Trouble? Contact listmaster@...


Bug#553338: sysvinit: display manager started before interactive initscripts

by Jonas Meurer :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

hey petter,

On 04/11/2009 Petter Reinholdtsen wrote:
> [Alberto Gonzalez Iniesta]
> > openvpn already has the X-Interactive header (since
> > 2.1~rc20-2). Adding a X-Start-Before: doesn't seem right at all. No
> > one can track all the display managers available (or any other
> > things that may arise later).
>
> Well, I believe X-Start-Before is the correct solution if the script
> need to start before the display managers. X-Interactive is not the
> same thing as needing to run before display managers. :)

as already mentioned in an earlier mail, i agree with alberto, that
_any_ initscript that has the X-Interactive header set, should start
before display managers. as far as i know, initscripts with the
X-Interactive header might require user input. dispaly managers move the
active screen away from tty1, thus preventing any later input prompt to
be ignored by users.

for that reason i suggest to fix the initscript sorting algorithm to
start all X-Interactive initscripts before any display managers.

greetings,
 jonas


signature.asc (501 bytes) Download Attachment

Bug#553338: sysvinit: display manager started before interactive initscripts

by Petter Reinholdtsen :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

[Jonas Meurer]
> for that reason i suggest to fix the initscript sorting algorithm to
> start all X-Interactive initscripts before any display managers.

If you have a patch implementing this, I will pass it by the startpar
upstream developers and see what they think.  But as I said, it
introduces a new meaning to the interactive flag that it is not
intended to have, and I have no idea how you want to recogninze a
display manager among the init.d scripts currently installed.  The
interactive flag currently only make sure the init.d script have
direct access to the tty (and not a pty multiplexed by startpar) and
do not run in parallell with other init.d scripts.  It do not affect
relationship between scripts.

My proposed solution is to document the relationship between the
init.d scripts in question and I know this will work.  I have no idea
what side effect your suggestion will have, nor how it can be sensibly
implemented.

Happy hacking,
--
Petter Reinholdtsen



--
To UNSUBSCRIBE, email to debian-bugs-dist-REQUEST@...
with a subject of "unsubscribe". Trouble? Contact listmaster@...


Bug#553338: sysvinit: display manager started before interactive initscripts

by Jonas Meurer :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

hey,

On 05/11/2009 Petter Reinholdtsen wrote:

> [Jonas Meurer]
> > for that reason i suggest to fix the initscript sorting algorithm to
> > start all X-Interactive initscripts before any display managers.
>
> If you have a patch implementing this, I will pass it by the startpar
> upstream developers and see what they think.  But as I said, it
> introduces a new meaning to the interactive flag that it is not
> intended to have, and I have no idea how you want to recogninze a
> display manager among the init.d scripts currently installed.  The
> interactive flag currently only make sure the init.d script have
> direct access to the tty (and not a pty multiplexed by startpar) and
> do not run in parallell with other init.d scripts.  It do not affect
> relationship between scripts.
>
> My proposed solution is to document the relationship between the
> init.d scripts in question and I know this will work.  I have no idea
> what side effect your suggestion will have, nor how it can be sensibly
> implemented.
i'm to busy to work out a proper solution right now, but one solution
that comes into my mind is a new header 'X-Activetty'. every initscript
that moves the active console away from tty1 needs to have set this
header, and startpar verifies that X-Interactive scripts are started
before X-Activetty scripts.

greetings,
 jonas


signature.asc (501 bytes) Download Attachment

Bug#553338: sysvinit: display manager started before interactive initscripts

by Petter Reinholdtsen :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

I had a look at the all init.d scripts in the archive, and only the
openvpn script is using the X-Interactive flag and starting outside
rcS.d/.  In short, this problem only affect openvpn.  All other
scripts using X-Interactive (udev, keymap.sh, keyboard-setup,
checkroot.sh, cryptdisks-early, cryptdisks, checkfs.sh and kbd
console-setup) are always started before display managers because they
are started before the scripts in rc2.d/ i started. :)

Happy hacking,
--
Petter Reinholdtsen



--
To UNSUBSCRIBE, email to debian-bugs-dist-REQUEST@...
with a subject of "unsubscribe". Trouble? Contact listmaster@...


Bug#553338: sysvinit: display manager started before interactive initscripts

by Jonas Meurer :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

hey,

On 05/11/2009 Petter Reinholdtsen wrote:
> I had a look at the all init.d scripts in the archive, and only the
> openvpn script is using the X-Interactive flag and starting outside
> rcS.d/.  In short, this problem only affect openvpn.  All other
> scripts using X-Interactive (udev, keymap.sh, keyboard-setup,
> checkroot.sh, cryptdisks-early, cryptdisks, checkfs.sh and kbd
> console-setup) are always started before display managers because they
> are started before the scripts in rc2.d/ i started. :)

ok, that situation might justify special treatment of openvpn
initscript. in other words: implementing a new header for display
managers and appropriate initscript sorting in startpar is unnecessary
if just one initscript is concerned.

so for now we can go with just adding a X-Should-Start header for any
existing display manager in the openvpn initscript.

on the other hand this problem still is a general one: future (changes
to) initscripts might introduce new dependencies on user input, even for
initscripts that're started outside rcS.

in fact, i guess any initscript that potentially asks for passphrase
should be marked as X-Interactive, and this coveres initscripts that
start ssl-services at least. for example, the apache2 initscripts need
the X-Interactive header as well in my opinion.
petter, what's your opinion on that?

greetings,
 jonas


signature.asc (501 bytes) Download Attachment

Bug#553338: sysvinit: display manager started before interactive initscripts

by Petter Reinholdtsen :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

[Jonas Meurer]
> on the other hand this problem still is a general one: future
> (changes to) initscripts might introduce new dependencies on user
> input, even for initscripts that're started outside rcS.

Absolutely.  This is why I have proposed to introduce debian specific
virtual facilities as a mechanism to handle this.

> in fact, i guess any initscript that potentially asks for passphrase
> should be marked as X-Interactive, and this coveres initscripts that
> start ssl-services at least. for example, the apache2 initscripts
> need the X-Interactive header as well in my opinion.  petter, what's
> your opinion on that?

All scripts interacting with the user during boot should use the
X-Interactive header, yes, to make sure their input requests make it
to the user and isn't just with the pty created by startpar for
multiplexing.  :)

Happy hacking,
--
Petter Reinholdtsen



--
To UNSUBSCRIBE, email to debian-bugs-dist-REQUEST@...
with a subject of "unsubscribe". Trouble? Contact listmaster@...


Bug#553338: sysvinit: display manager started before interactive initscripts

by Jonas Meurer :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

hey petter,

On 05/11/2009 Petter Reinholdtsen wrote:
> [Jonas Meurer]
> > on the other hand this problem still is a general one: future
> > (changes to) initscripts might introduce new dependencies on user
> > input, even for initscripts that're started outside rcS.
>
> Absolutely.  This is why I have proposed to introduce debian specific
> virtual facilities as a mechanism to handle this.

ok. i'll report bugs against gdm, kdm, ldm, nodm, sdm and xdm in order
to make them include propper files at /etc/insserv.conf.d/.

are you ok with that, petter?

> > in fact, i guess any initscript that potentially asks for passphrase
> > should be marked as X-Interactive, and this coveres initscripts that
> > start ssl-services at least. for example, the apache2 initscripts
> > need the X-Interactive header as well in my opinion.  petter, what's
> > your opinion on that?
>
> All scripts interacting with the user during boot should use the
> X-Interactive header, yes, to make sure their input requests make it
> to the user and isn't just with the pty created by startpar for
> multiplexing.  :)
all right, just reported bug #554824 against apache2.2-common. should i
usertag it in some way?

greetings,
 jonas


signature.asc (501 bytes) Download Attachment

Bug#553338: sysvinit: display manager started before interactive initscripts

by Petter Reinholdtsen :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

[Jonas Meurer]
> ok. i'll report bugs against gdm, kdm, ldm, nodm, sdm and xdm in
> order to make them include propper files at /etc/insserv.conf.d/.
>
> are you ok with that, petter?

Absolutely.  There is also wdm, I believe.

> all right, just reported bug #554824 against
> apache2.2-common. should i usertag it in some way?

Yes, please.  See
<URL: http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot > for
the details.

Happy hacking,
--
Petter Reinholdtsen



--
To UNSUBSCRIBE, email to debian-bugs-dist-REQUEST@...
with a subject of "unsubscribe". Trouble? Contact listmaster@...


Bug#553338: sysvinit: display manager started before interactive initscripts

by Jonas Meurer :: Rate this Message:

Reply (Restricted by the Administrator) | Reply to Author | View Threaded | Show Only this Message

On 06/11/2009 Petter Reinholdtsen wrote:

> [Jonas Meurer]
> > ok. i'll report bugs against gdm, kdm, ldm, nodm, sdm and xdm in
> > order to make them include propper files at /etc/insserv.conf.d/.
> >
> > are you ok with that, petter?
>
> Absolutely.  There is also wdm, I believe.
>
> > all right, just reported bug #554824 against
> > apache2.2-common. should i usertag it in some way?
>
> Yes, please.  See
> <URL: http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot > for
> the details.
both done:

http://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=x-interactive;users=initscripts-ng-devel@...
http://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=missing-provides;users=initscripts-ng-devel@...

greetings,
 jonas


signature.asc (501 bytes) Download Attachment