Upgrading samba breaks it

I have a samba fileserver which has been happily running for a couple of years with identical config but on different versions of samba, and on Fedora and CentOS.

The latest incarnation was running samba 3.2.11.

But the other day, my samba package was upgraded to 3.4.1

Samba shares on the server immediately stopped working and access is immediately denied to all users.

I looked at the config and nothing has changed during the upgrade.

I looked at the logs and no access attempts are recorded; no errors are logged.

I noticed that the new template config file is a little different from previous versions, so I made the necessary changes and migrated my config to the new file. No change to samba’s behaviour at all.

For a while I wondered if I had a rogue samba server on my network, but stopping my samba service causes requests to time out rather than be denied. So it’s definitely my samba daemon that’s responding, but goodness knows why it behaving like this.

Restarting samba puts the following in the log file:

[2009/10/02 10:33:54,  0] smbd/server.c:1065(main)
smbd version 3.4.1-0.41.fc11 started.
Copyright Andrew Tridgell and the Samba Team 1992-2009
[2009/10/02 10:33:54,  0] smbd/server.c:457(smbd_open_one_socket)
smbd_open_once_socket: open_socket_in: Address already in use
[2009/10/02 10:33:54,  0] smbd/server.c:457(smbd_open_one_socket)
smbd_open_once_socket: open_socket_in: Address already in use

I will keep hunting until I find what’s caused this. Unfortunately I can’t watch any of my recorded TV programmes until then!

I’ll post back here when I’ve tracked it down.

Update: I managed to get Samba working again. Sort of. This is a snippet from my now-working smb.conf:

# ----------------------- Standalone Server Options ------------------------
#
# Scurity can be set to user, share(deprecated) or server(deprecated)
#
# Backend to store user information in. New installations should
# use either tdbsam or ldapsam. smbpasswd is available for backwards
# compatibility. tdbsam requires no further configuration.

security = user
#       passdb backend = tdbsam
passdb backend = smbpasswd

As you can see, I simply reverted to the older smbpasswd authentication after yum upgraded Samba and switched to tdbsam and my shares magically sprung back to life. It’s a shame, because I don’t like going backwards. I like going forwards – hence I run Fedora.

I can confirm that this “fix” works with the latest version of Samba at the time of writing – version 3.4.2.

So despite the claim that tdbsam requires no extra configuration, clearly there’s more to it than that. I will once again post back here when I’ve found a way to enable tdbsam without breaking everything. 🙂

16 Comments

    • Jonathan
      October 3, 2009
      Reply

      Hi Nathan,

      Thanks for posting. Good to know I’m not the only one having the problem. I was sure it was something to do with my config, but reporting it as a bug would have been my next step.

      Cheers,
      Jonathan

  1. Dylan
    October 4, 2009
    Reply

    I’m having the same problem and also struggling to downgrade to samba-3.3.2-0.33.fc11.x86_64.rpm.

  2. Dylan
    October 4, 2009
    Reply

    Hi again guys, managed to get samba working with a brutal: rpm -ivh –nodeps samba-3.3.2-0.33.fc11.x86_64.rpm

    I left the latest 3.4.1 versions of samba-common and samba-winbind installed.

  3. Dylan
    October 6, 2009
    Reply

    Samba 3.4.2 is out, haven’t had a chance to test it yet.
    Only security fixes are mentioned.

  4. Dylan
    October 6, 2009
    Reply

    @Dylan
    OK, the same problem exists!

  5. Jonathan
    October 24, 2009
    Reply

    I’ve just been “making do” without my samba share since it broke, hoping that Fedora would push out a fix. However this hasn’t happened so today I tried Dylan’s advice and rolled back to 3.3.2, doing:

    rpm -e --nodeps samba
    rpm -ivh --nodeps http://www.mirrorservice.org/sites/download.fedora.redhat.com/pub/fedora/linux/releases/11/Fedora/i386/os/Packages/samba-3.3.2-0.33.fc11.i586.rpm

    I had to fix a couple of the configs beacuse rpm added .rpmsave extensions to some of them, then I restarted.

    The problem has been solved with my Ubuntu netbook, but still exists for my Fedora desktop and all versions of Windows. Grr.

  6. […] those who have been following the issues around Samba suddenly breaking upon upgrade, I’ve now got to the bottom of […]

  7. Jonathan
    November 2, 2009
    Reply

    Fixed! See my update in the article.

  8. Stephen
    November 13, 2009
    Reply

    @Jonathan
    I have experienced the same problem and I tried your fix. Initially it prompted me for a username and password (which I didn’t have configured) so I swapped it back to security=share (which is how I wanted it running) and suddenly it started working and I could access the shares without logging in. Unfortunately when I re-booted it had failed again and I couldn’t access it.
    Do you know of a fix that will allow me to use share instead of user security?

    • Jonathan
      November 13, 2009
      Reply

      Hi Stephen,

      I’m afraid I’ve never used share security so I can’t really offer any advice. However it is worth noting that in the latest version of samba, security=share is marked as deprecated and so will be removed in some future release.

      But I’m not authority on samba – I’m just an end user who has written about his problems 🙂 I’d recommend posting your question to the samba mailing list: https://lists.samba.org/mailman/listinfo/samba

      Cheers,
      Jonathan

  9. Stephen
    November 14, 2009
    Reply

    Thanks anyway – I guess I was just hoping you might have a solution as I’m finding nothing helpful on any of my searches and I’m getting exactly the same ‘…Address already in use’ errors and no visibility of my server when trying to browse from my windows machine. I keep hoping there will be a new version to fit it as I’ve been held up for a few weeks now with no access to copy files onto the server.

  10. Alexander
    April 29, 2010
    Reply

    Hey Jonathan,

    I had the same symptoms as you after upgrading from openSuSE 11.1 to 11.2 (which came with samba 3.4.2 . The fix was a little different for me (https://bugzilla.novell.com/show_bug.cgi?id=518286). Basically I had to run:

    pdbedit -i smbpasswd:/etc/samba/smbpasswd -e tdbsam:/etc/samba/passdb.tdb

    then add “passdb backend = tdbsam” to /etc/samba/smb.conf in [global]

    • Jonathan
      April 29, 2010
      Reply

      Hi Alexander,

      Thanks for this information. Sounds like you’ve found a way of making tdbsam work properly, rather than just disabling it like I did 🙂

      Cheers!
      Jonathan

  11. January 10, 2011
    Reply

    Hi,

    Thanks for this post. I tried to follow Alexander advice, but It didn’t work here (Debian 6, samba 3.5.6). Had to change the passdb backend to smbpasswd.

    At least it work now… So thanks again.

  12. adrianbj
    November 7, 2011
    Reply

    What worked for me was simply re-adding all the user accounts.

Leave a Reply