undefined symbol: FAMNoExists

Bug #1453463 reported by Moses Moore
170
This bug affects 40 people
Affects Status Importance Assigned to Milestone
lighttpd
Fix Released
Unknown
lighttpd (Ubuntu)
Fix Released
Medium
Unassigned
Xenial
Won't Fix
Undecided
Unassigned
Bionic
Fix Released
Undecided
Unassigned
Focal
Fix Released
Undecided
Unassigned

Bug Description

[Impact]

lighttpd fails to execute (and the service fails to start) when it is installed in a system which contains libfam0 installed.

This happens because libfam0 does not define specific symbols required by lighttpd.

The issue is solved by replacing libfam0 by libgamin0, which defines the required symbols. This is what the proposed fix changes.

In this sense, the lighttpd package is broken and backporting the fix would save users from analyzing the issue and applying the workaround, which exists (installing libgamin0 fixes the issue).

[Test Plan]

Run the following script in a clean Ubuntu install

```
#!/bin/sh

set -ex

test_dep_regression() {
  apt purge -y libfam0 libgamin0 lighttpd
  apt install -y $1
  apt install -y lighttpd
  if ! /usr/sbin/lighttpd -v; then
    echo "Err: possible libfam-libgamin conflict regression"
    exit 1
  fi
}

apt update
test_dep_regression libfam0
test_dep_regression libgamin0
```

You should see that lighttpd fails to start. The issue will be reproduced and "Err: possible libfam-libgamin conflict regression" will be printed.

```
+ /usr/sbin/lighttpd -v
/usr/sbin/lighttpd: Symbol `FamErrlist' has different size in shared object, consider re-linking
/usr/sbin/lighttpd: symbol lookup error: /usr/sbin/lighttpd: undefined symbol: FAMNoExists
+ echo Err: possible libfam-libgamin conflict regression
Err: possible libfam-libgamin conflict regression
+ exit 1
```

Then, apply the proposed fixes and re-run the script.

You should see that lighttpd prints the version and the issue is fixed.

[Where problems could occur]

libgamin and libfam are conflicting packages which clearly differ from one another (this bug is enough proof). Replacing them on some system could introduce (and reveal) new regressions for their reverse dependencies.

Note that a test case for the described issue was included with the proposed fixes and the SRUs should be gated when running the test suites if any issues occour with this package.

[Other Info]

While the proposed fix for focal and bionic contain a new regression autopkgtest entry, this was not included in impish nor proposed to debian because the dependency on fam was removed in Debian (and the related delta should be removed from Ubuntu in the next merge). See https://salsa.debian.org/debian/lighttpd/-/merge_requests/18#note_206687 for further reference.

[Original bug report]

lighttpd won't start.

Steps to reproduce:
$ sudo /usr/sbin/lighttpd
or
$ sudo systemctl start lighttpd

Expected outcome:
daemon starts.

Seen instead:
/usr/sbin/lighttpd: symbol lookup error: /usr/sbin/lighttpd: undefined symbol: FAMNoExists
or
Job for lighttpd.service failed. See "systemctl status lighttpd.service" and "journalctl -xe" for details.
$ systemctl status lighttpd.service -l
May 09 17:53:32 deunan systemd[1]: Starting Lighttpd Daemon...
May 09 17:53:32 deunan lighttpd[8229]: /usr/sbin/lighttpd: symbol lookup error: /usr/sbin/lighttpd: undefined symbol: FAMNoExists

Other info:
`ldd /usr/sbin/lighttpd` does not report any missing shared libraries.

ProblemType: Bug
DistroRelease: Ubuntu 15.04
Package: lighttpd 1.4.35-4ubuntu1
ProcVersionSignature: Ubuntu 3.19.0-16.16-generic 3.19.3
Uname: Linux 3.19.0-16-generic i686
NonfreeKernelModules: nvidia
ApportVersion: 2.17.2-0ubuntu1
Architecture: i386
Date: Sat May 9 17:51:52 2015
InstallationDate: Installed on 2013-06-08 (700 days ago)
InstallationMedia: Xubuntu 13.04 "Raring Ringtail" - Release i386 (20130423.1)
ProcEnviron:
 LANGUAGE=en_CA:en
 TERM=screen
 PATH=(custom, no user)
 LANG=en_CA.UTF-8
 SHELL=/bin/bash
SourcePackage: lighttpd
UpgradeStatus: Upgraded to vivid on 2015-04-25 (14 days ago)
mtime.conffile..etc.lighttpd.conf.available.10.cgi.conf: 2013-08-02T23:17:55
mtime.conffile..etc.lighttpd.conf.available.10.fastcgi.conf: 2013-09-11T11:19:16

Related branches

Revision history for this message
Moses Moore (moses-ubuntu) wrote :
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in lighttpd (Ubuntu):
status: New → Confirmed
Changed in lighttpd (Ubuntu):
importance: Undecided → Medium
Revision history for this message
pwaring (launchpad-pwaring) wrote :

I'm unable to reproduce this problem on a clean install with no configuration - installing lighttpd and then visiting http://localhost brings up the default placeholder page.

What happens if you disable all your user-defined configuration files? Can you get the basic placeholder page up?

Revision history for this message
Travis Allen (travis-r-allen) wrote :

I had this problem. The workaround:

sudo apt-get install gamin

It appears that the default lighttpd configuration tries to use fam (aka gamin), but there is no dependency on gamin. I would suggest either the package adds a gamin dependency, or the default configuration removes the fam dependency.

Revision history for this message
pwaring (launchpad-pwaring) wrote :

That workaround fixed the problem for me too - turns out the image I was working with already had gamin installed. Purging gamin also removed lighttpd, then re-installed lighttpd produced the following:

Setting up lighttpd (1.4.35-4ubuntu1) ...
Job for lighttpd.service failed. See "systemctl status lighttpd.service" and "journalctl -xe" for details.
invoke-rc.d: initscript lighttpd, action "start" failed.

Revision history for this message
Hadmut Danisch (hadmut) wrote :

Same problem here with 15.10 beta:

lighttpd[5854]: /usr/sbin/lighttpd: symbol lookup error: /usr/sbin/lighttpd: undefined symbol: FAMNoExists

Installing gamin solves the problem, but kicks libfam0 out, maybe creating other problems elsewhere...

Revision history for this message
Christophe Meron (chris+launchpad-ielf) wrote :

I was also affected by this issue on a quite fresh 15.10

Version: 1.4.35-4ubuntu1
Provides: httpd, httpd-cgi
Depends: libattr1 (>= 1:2.4.46-8), libbz2-1.0, libc6 (>= 2.15), libgamin0 | libfam0, libldap-2.4-2 (>= 2.4.7), libpcre3, libssl1.0.0 (>= 1.0.0), zlib1g (>= 1:1.1.4), init-system-helpers (>= 1.18~), perl, lsb-base (>= 3.2-14) | systemd (>= 29.1), mime-support, libterm-readline-perl-perl

apt pulled libfam0 by default and lighttpd got the undefined symbol raised.
Installing "gamin" instead solved the issue.

Revision history for this message
luator (anon-w) wrote :

Still the same on Ubuntu 16.04 -- installing gamin solved it, though.

Revision history for this message
Dmitry (dmitrymq) wrote :

Still the same on Ubuntu 16.04

Revision history for this message
Matthias Schuster (shalokshalom) wrote :

Will this ever get fixed?

Changed in lighttpd (Ubuntu):
status: Confirmed → Invalid
status: Invalid → Confirmed
Revision history for this message
Matthias Schuster (shalokshalom) wrote :

Yep, install gamin solve this issue > it adds FAM libraries

Revision history for this message
Thomas (t-hartwig) wrote :

Same here: Ubuntu 16.04.2 LTS
Installing gamin fixes the issue. Please, please update the deps.

Revision history for this message
Marcelo Escobal (marcelo-escobal) wrote :

Ubuntu 17.04 and the problem remains!!!

Revision history for this message
Jarkko Hakala (roide) wrote :

Affects Ubuntu beta 17.10, 19th.Oct.2017 and replacing (lib?)fam with Gamin fixes it. 700+ days and counting..

Revision history for this message
Jaap (jwstolk) wrote :

I currently have this error in Ubuntu 16.04.3 LTS (recent fresh install)
works after installing gamin.

Revision history for this message
Li The G No Lie (helpunclejackoff) wrote :

Same here, Ubuntu 16.04 LTS and ran into this problem immediately.

Revision history for this message
Mélodie (meets) wrote :

Hi, using Ubuntu 18.04 updated each day, I tried to install lighttpd, but it fails. First attempt, I got the same messages as the ones described above, when trying to restart it.

Then after I removed it completely and cleaned all packages in the cache, I reinstalled to see exactly how the messages could help find what is wrong. Here is what I get after a new reinstall:

**********

$ sudo apt install lighttpd
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Paquets suggérés :
  rrdtool php5-cgi apache2-utils lighttpd-doc
Paquets recommandés :
  spawn-fcgi
Les NOUVEAUX paquets suivants seront installés :
  lighttpd
0 mis à jour, 1 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 276 ko dans les archives.
Après cette opération, 979 ko d'espace disque supplémentaires seront utilisés.
Réception de:1 http://bouyguestelecom.ubuntu.lafibre.info/ubuntu bionic/universe amd64 lighttpd amd64 1.4.45-1ubuntu3 [276 kB]
276 ko réceptionnés en 0s (1 398 ko/s)
Sélection du paquet lighttpd précédemment désélectionné.
(Lecture de la base de données... 239794 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../lighttpd_1.4.45-1ubuntu3_amd64.deb ...
Dépaquetage de lighttpd (1.4.45-1ubuntu3) ...
Traitement des actions différées (« triggers ») pour ufw (0.35-5) ...
Traitement des actions différées (« triggers ») pour ureadahead (0.100.0-20) ...
Paramétrage de lighttpd (1.4.45-1ubuntu3) ...
Created symlink /etc/systemd/system/multi-user.target.wants/lighttpd.service → /lib/systemd/system/lighttpd.service.
Job for lighttpd.service failed because the control process exited with error code.
See "systemctl status lighttpd.service" and "journalctl -xe" for details.
invoke-rc.d: initscript lighttpd, action "start" failed.
● lighttpd.service - Lighttpd Daemon
   Loaded: loaded (/lib/systemd/system/lighttpd.service; enabled; vendor preset: enabled)
   Active: activating (auto-restart) (Result: exit-code) since Sat 2018-05-26 18:00:41 CEST; 7ms ago
  Process: 4325 ExecStartPre=/usr/sbin/lighttpd -tt -f /etc/lighttpd/lighttpd.conf (code=exited, status=127)
Traitement des actions différées (« triggers ») pour systemd (237-3ubuntu10.1) ...
Traitement des actions différées (« triggers ») pour man-db (2.8.3-2) ...
Traitement des actions différées (« triggers ») pour ureadahead (0.100.0-20) ...
Traitement des actions différées (« triggers ») pour ufw (0.35-5) ...

*********

thanks for fixing it!

Revision history for this message
psl (slansky) wrote :

Ubuntu 18.04

The same problem

# service lighttpd status
● lighttpd.service - Lighttpd Daemon
   Loaded: loaded (/lib/systemd/system/lighttpd.service; enabled; vendor preset: enabl
   Active: failed (Result: exit-code) since Fri 2018-06-08 17:03:43 CEST; 16s ago
  Process: 28595 ExecStartPre=/usr/sbin/lighttpd -tt -f /etc/lighttpd/lighttpd.conf (c

Jun 08 17:03:43 desk systemd[1]: lighttpd.service: Service hold-off time over, schedul
Jun 08 17:03:43 desk systemd[1]: lighttpd.service: Scheduled restart job, restart coun
Jun 08 17:03:43 desk systemd[1]: Stopped Lighttpd Daemon.
Jun 08 17:03:43 desk systemd[1]: lighttpd.service: Start request repeated too quickly.
Jun 08 17:03:43 desk systemd[1]: lighttpd.service: Failed with result 'exit-code'.
Jun 08 17:03:43 desk systemd[1]: Failed to start Lighttpd Daemon.

# /usr/sbin/lighttpd -tt -f /etc/lighttpd/lighttpd.conf
/usr/sbin/lighttpd: Symbol `FamErrlist' has different size in shared object, consider re-linking
/usr/sbin/lighttpd: symbol lookup error: /usr/sbin/lighttpd: undefined symbol: FAMNoExists

FIX:
sudo apt-get install gamin

Please, add dependency of "gamin" to "lighttpd" package or remove dependency of gamin from lighttpd code.

Changed in lighttpd:
status: Unknown → Fix Released
Revision history for this message
monochromec (monochromec) wrote :

The issue is still present in 19.10.

RCA:

libfam0 (lighttpd) dependency contains a libfam.so which doesn't resolve the symbol in question.
Only installing gamin (as suggested above) provides a proper (in that case) libfam.so as part of its dependency libgamin0.

Changed in lighttpd (Ubuntu Focal):
status: New → Confirmed
Changed in lighttpd (Ubuntu Bionic):
status: New → Triaged
Changed in lighttpd (Ubuntu Xenial):
status: New → Triaged
Changed in lighttpd (Ubuntu):
assignee: nobody → Rafael David Tinoco (rafaeldtinoco)
Revision history for this message
Rafael David Tinoco (rafaeldtinoco) wrote :
Revision history for this message
Rafael David Tinoco (rafaeldtinoco) wrote :

I have uploaded:

https://paste.ubuntu.com/p/3hqf9fPg7y/

to Groovy and will try to catch up with the needed SRUs after its migrated.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package lighttpd - 1.4.55-1ubuntu2

---------------
lighttpd (1.4.55-1ubuntu2) groovy; urgency=medium

  * Depend on libgamin to fix missing symbol errors (LP: #1453463)

 -- Rafael David Tinoco <email address hidden> Fri, 07 Aug 2020 00:47:56 +0000

Changed in lighttpd (Ubuntu):
status: Confirmed → Fix Released
Revision history for this message
Rafael David Tinoco (rafaeldtinoco) wrote :

This was "Fix Released" because of my uploaded fix to groovy. I'm considering it a "temporary" fix and should revisit this before groovy is out (depending on discussion in salsa merge thread).

Changed in lighttpd (Ubuntu):
status: Fix Released → In Progress
Revision history for this message
Rafael David Tinoco (rafaeldtinoco) wrote :

The fix that will likely land upstream is:

https://salsa.debian.org/debian/lighttpd/-/merge_requests/18#note_186690

but it has not yet (1.4.56 not yet released).

Meanwhile we have, in this bug, documented how to get rid of the issue AND groovy has a workaround (that can be replaced by the upstream final fix once this is out). SRUs are welcome based on what will come as well.

-rafaeldtinoco

Changed in lighttpd (Ubuntu):
assignee: Rafael David Tinoco (rafaeldtinoco) → nobody
Revision history for this message
gstrauss (gstrauss) wrote :

Fixed with patch in Debian release lighttpd-1.4.55-2

Revision history for this message
gstrauss (gstrauss) wrote :

lighttpd 1.4.56 uses inotify() on Linux, removing FAM dependency

Changed in lighttpd (Ubuntu):
status: In Progress → Fix Committed
Changed in lighttpd (Ubuntu Xenial):
status: Triaged → Won't Fix
Revision history for this message
Sergio Durigan Junior (sergiodj) wrote :

Marking as Won't Fix on Xenial due to ESM.

description: updated
Changed in lighttpd (Ubuntu Bionic):
status: Triaged → In Progress
Changed in lighttpd (Ubuntu Focal):
status: Confirmed → In Progress
Revision history for this message
Brian Murray (brian-murray) wrote : Please test proposed package

Hello Moses, or anyone else affected,

Accepted lighttpd into focal-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/lighttpd/1.4.55-1ubuntu1.20.04.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-focal to verification-done-focal. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-focal. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in lighttpd (Ubuntu Focal):
status: In Progress → Fix Committed
tags: added: verification-needed verification-needed-focal
Changed in lighttpd (Ubuntu Bionic):
status: In Progress → Fix Committed
tags: added: verification-needed-bionic
Revision history for this message
Brian Murray (brian-murray) wrote :

Hello Moses, or anyone else affected,

Accepted lighttpd into bionic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/lighttpd/1.4.45-1ubuntu3.18.04.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-bionic to verification-done-bionic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-bionic. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Revision history for this message
Ubuntu SRU Bot (ubuntu-sru-bot) wrote : Autopkgtest regression report (lighttpd/1.4.45-1ubuntu3.18.04.1)

All autopkgtests for the newly accepted lighttpd (1.4.45-1ubuntu3.18.04.1) for bionic have finished running.
The following regressions have been reported in tests triggered by the package:

mediawiki/1:1.27.4-3 (amd64)

Please visit the excuses page listed below and investigate the failures, proceeding afterwards as per the StableReleaseUpdates policy regarding autopkgtest regressions [1].

https://people.canonical.com/~ubuntu-archive/proposed-migration/bionic/update_excuses.html#lighttpd

[1] https://wiki.ubuntu.com/StableReleaseUpdates#Autopkgtest_Regressions

Thank you!

Revision history for this message
Athos Ribeiro (athos-ribeiro) wrote :

I performed the verification for both bionic and focal.

I did so by running the following script in clean lxc containers for both series:

```
#!/bin/sh

set -ex

test_dep_regression() {
  apt purge -y libfam0 libgamin0 lighttpd
  apt install -y $1
  apt install -y lighttpd
  if ! /usr/sbin/lighttpd -v; then
    echo "Err: possible libfam-libgamin conflict regression"
    exit 1
  fi
}

apt update
test_dep_regression libfam0
test_dep_regression libgamin0
```

for each of the series, the script above worked as a reproducer for the original bug.

I then proceeded to enable the -proposed repository, and re-ran the script above (both in bionic and focal).

The script succeeded in both, printing the lighttpd version and returning a successful exit code.

tags: added: verification-done verification-done-bionic verification-done-focal
removed: verification-needed verification-needed-bionic verification-needed-focal
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package lighttpd - 1.4.55-1ubuntu1.20.04.1

---------------
lighttpd (1.4.55-1ubuntu1.20.04.1) focal; urgency=medium

  * d/control: Depend on libgamin to fix missing symbol errors (LP: #1453463)
  * d/test/control: introduce regression test for libgamin/libfam
  * d/test/libfam-libgamin-conflict-regression: check for libgamin/libfam
    conflict regressions

 -- Athos Ribeiro <email address hidden> Mon, 14 Jun 2021 18:34:03 -0300

Changed in lighttpd (Ubuntu Focal):
status: Fix Committed → Fix Released
Revision history for this message
Łukasz Zemczak (sil2100) wrote : Update Released

The verification of the Stable Release Update for lighttpd has completed successfully and the package is now being released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package lighttpd - 1.4.45-1ubuntu3.18.04.1

---------------
lighttpd (1.4.45-1ubuntu3.18.04.1) bionic; urgency=medium

  * d/control: Depend on libgamin to fix missing symbol errors (LP: #1453463)
  * d/test/control: introduce regression test for libgamin/libfam
  * d/test/libfam-libgamin-conflict-regression: check for libgamin/libfam
    conflict regressions

 -- Athos Ribeiro <email address hidden> Tue, 15 Jun 2021 11:44:25 -0300

Changed in lighttpd (Ubuntu Bionic):
status: Fix Committed → Fix Released
Revision history for this message
gstrauss (gstrauss) wrote :

lighttpd 1.4.59 is part of Ubuntu 21.04 (Hirsute Hippo)

Changed in lighttpd (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.