race condition on startup between samba and cups

Bug #1047262 reported by James Page on 2012-09-07
26
This bug affects 4 people
Affects Status Importance Assigned to Milestone
samba (Ubuntu)
High
James Page
Precise
High
Unassigned
Quantal
High
James Page

Bug Description

As seen in bug 967410 is possible for cups to start after smbd - if samba is configured to retrieve printer information from cups it fails and printers are not automatically configured.

ProblemType: Bug
DistroRelease: Ubuntu 12.10
Package: samba (not installed)
ProcVersionSignature: Ubuntu 3.5.0-13.14-generic 3.5.3
Uname: Linux 3.5.0-13-generic x86_64
ApportVersion: 2.5.1-0ubuntu4
Architecture: amd64
Date: Fri Sep 7 10:58:35 2012
SambaServerRegression: Yes
SmbConfIncluded: Yes
SourcePackage: samba
UbuntuFailedConnect: Yes
UpgradeStatus: Upgraded to quantal on 2012-06-11 (88 days ago)

Related branches

James Page (james-page) wrote :
Changed in samba (Ubuntu Precise):
importance: Undecided → High
Changed in samba (Ubuntu Quantal):
importance: Undecided → High
Changed in samba (Ubuntu Precise):
status: New → Triaged
Changed in samba (Ubuntu Quantal):
status: New → In Progress
assignee: nobody → James Page (james-page)
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package samba - 2:3.6.6-3ubuntu2

---------------
samba (2:3.6.6-3ubuntu2) quantal; urgency=low

  * Ensure samba can query cups for printer information on startup
    (LP: #1047262):
    - d/samba.smbd.upstart: Optionally wait for cups to be in state
      'running' if cups is installed.
 -- James Page <email address hidden> Fri, 07 Sep 2012 10:58:08 +0100

Changed in samba (Ubuntu Quantal):
status: In Progress → Fix Released
James Page (james-page) wrote :

The output of:

  sudo testparm -s

Would also be useful - please obfuscate any sensitive information first.

Thanks

Steve Langasek (vorlon) wrote :

Hi James,

        if status cups >/dev/null ; then
                start wait-for-state WAITER=smbd WAIT_FOR=cups WAIT_STATE=running
        fi

This solution has the effect that if the cups job is broken for any reason, smbd will also not be started. I don't think that's desirable.

We've tried hard in the past to ensure samba is *not* dependent on cups being present before samba starts. I think this would be better done as a job in the samba package which is 'start on started cups' and will prompt samba to reload its config.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hi Steve

On 07/09/12 16:36, Steve Langasek wrote:
> Hi James,
>
> if status cups >/dev/null ; then start wait-for-state WAITER=smbd
> WAIT_FOR=cups WAIT_STATE=running fi
>
> This solution has the effect that if the cups job is broken for
> any reason, smbd will also not be started. I don't think that's
> desirable.
>
> We've tried hard in the past to ensure samba is *not* dependent on
> cups being present before samba starts. I think this would be
> better done as a job in the samba package which is 'start on
> started cups' and will prompt samba to reload its config.

I'd not considered doing it that way - it would de-couple samba
startup from cups which I agree is preferable - I'll take a look and
do the rework early next week.

Thanks for the feedback.

- --
James Page
Ubuntu Core Developer
Debian Maintainer
<email address hidden>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://www.enigmail.net/

iQIcBAEBCAAGBQJQSwgrAAoJEL/srsug59jD87kP/j5x/UExR2lwcy4eGkCQYJVF
HFE5Jl2r2P1iPahKNNTc5ctpF59t2WIo4g5TsAWXUfMRws5Y9BXs5Alhpclj1s88
yfWiCrcaxdqV7mcjm12qGg65wKXLOy6O5+DzfXY06f1xtZ0rpBjobqS4SEjXcpSY
vIZ7bSPcriLOeiiR05r4Gf5y/J7C9ekVQlxOCOInlmZ/kuFjMq+Q+lVtBqVNyT4j
xJClo+ir22+RJXQFDXzTWXMDqKmSTpvGmF07LIqgbzdBMjcYg/HILY2p5BRyzPRT
RqZQeTeYRabJWRCSQ/DstK1bCvaUpTXYGHYjs0AiE7xFs08V5j3VvG+sLulEGH+M
EDv8BKVzrgdrhu3p0S8DYhHjIh8eJB2aEy+Bz1MMf6L66d3oIKzO6E2RH+t2eM0V
o1xA0Ktb/pkKZLATSh69xnDLh34PnL0FhepNFtvsDSe7pPNBCQ/uXrvPfL6EDW3E
1sWuWD/8wOKkWoQZ6PMauWBI98nkN+pqwqjiP9i1elTNzcuru2br0/a2Nuf2M99z
CBC7ySepaxTKr+EGoPml9IXuNQpUqavLPCp+DraoTPcl2uDoukhYXd3OpBPNyf5a
MPAIIAHdBsm5HCJXDrnbfhhjA3dQog1ICTomyoCFqXvPqLuTUnKByGtWVFnZ64wW
DDsrEsfaU6ByjWdRl7X4
=233E
-----END PGP SIGNATURE-----

James Page (james-page) wrote :

@Steve

I've proposed a branch with a separate job to complete the reload post start of cups.

Your review would be appreciated.

Changed in samba (Ubuntu Quantal):
status: Fix Released → Triaged
James Page (james-page) on 2012-09-11
Changed in samba (Ubuntu Quantal):
status: Triaged → In Progress
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package samba - 2:3.6.6-3ubuntu3

---------------
samba (2:3.6.6-3ubuntu3) quantal; urgency=low

  * Decouple startup of smbd from cups (LP: #1047262):
    - d/samba.smbd.upstart: Revert changes made in 2:3.6.6-3ubuntu2.
    - d/samba.reload-smbd.upstart: Add upstart task which reloads smbd
      once cups has started, ensuring that smbd startup is decoupled
      from cups.
    - d/rules: Install reload-smbd upstart configuration, don't try to
      start on install.
  * Install winbind upstart configuration file with --upstart-only option
    for consistency with samba package.
 -- James Page <email address hidden> Wed, 12 Sep 2012 13:24:16 +0100

Changed in samba (Ubuntu Quantal):
status: In Progress → Fix Released
Steve Langasek (vorlon) wrote :

>* Install winbind upstart configuration file with --upstart-only option
> for consistency with samba package.

Heh, this part is a wrong change. The upstart-only flag is for upstart jobs which aren't replacing init scripts of the same name.

Brett Keller (blkeller) wrote :

Are there any plans to fix this issue in Precise now that Quantal has a working patch? Thanks.

Ryan Tandy (rtandy) wrote :

I tried the reload-smbd job on Precise but it doesn't work. The job is definitely started after cups but the queues still aren't there. Works fine in Quantal.

Running 'start smbd; start cups; reload smbd' while the system is running does work, and adding a 'sleep 1' to reload.smbd.conf also works, so I guess having this work properly depends on some other change (in cups, possibly? forking too soon?).

I was going to propose an SRU with just the reload-smbd.conf from Quantal but it's looking more complicated than that. Any ideas?

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers