dante-server using the wrong libc.so
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| dante (Ubuntu) |
Undecided
|
Louis Bouchard | ||
| Precise |
Medium
|
Louis Bouchard |
Bug Description
SRU justification :
Without this correction, the danted daemon fails to start
Impact :
Without a manual workaround, danted is unusable
Fix :
Correct the search logic to find & use the proper library path
Test Case :
- Install dante-server
- Configure /etc/danted.conf
- start danted with
$ invoke-rc.d danted start
Regression :
Should be minimal as only one more search path is added to the lookup
Original description of the problem :
in natty/amd_64 /etc/init.d/danted start ends with a
Failed to open "libc.so": /usr/lib/
The file is plain text, not ELF
/* GNU ld script
Use the shared library, but some functions are only in
the static library, so try that secondarily. */
OUTPUT_
GROUP ( /lib/x86_
and so danted dies.
work around is:
sudo ln -sf /lib/x86_
$ uname -a
Linux LTSP 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:07:17 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
$ lsb_release -rd
Description: Ubuntu 11.04
Release: 11.04
$ apt-cache policy dante-server
dante-server:
Instalados: 1.1.19.
Candidato: 1.1.19.
Tabla de versión:
*** 1.1.19.
500 http://
100 /var/lib/
1.
500 http://
Changed in dante (Ubuntu): | |
status: | New → Confirmed |
Emmanuel Tychon (etychon) wrote : | #1 |
Guillaume Perréal (gperreal) wrote : | #2 |
Also happens in oneiric x86. However I suppose an issue in libc6-dev (to which libc.so belongs) :
$ uname -a
Linux darnassus 3.0.0-13-
$ lsb_release -rd
Description: Ubuntu 11.10
Release: 11.10
$ locate libc.so
/lib/i386-
/usr/lib/
$ dpkg -S "/usr/lib/
libc6-dev: /usr/lib/
$ apt-cache policy libc6-dev
libc6-dev:
Installed: 2.13-20ubuntu5
Candidate: 2.13-20ubuntu5
Version table:
*** 2.13-20ubuntu5 0
500 http://
100 /var/lib/
$ apt-cache policy dante-server
dante-server:
Installed: 1.1.19.
Candidate: 1.1.19.
Version table:
*** 1.1.19.
500 http://
100 /var/lib/
VladV (vlad-volkov) wrote : | #3 |
The workarounds proposed here suggest to overwrite /usr/lib/
This might cause problems - specifically, building applications from source will fail.
A better solution is:
sudo ln -s /lib/i386-
It fixes issues with danted, but leaves libc-dev files intact.
Rorzik (rorzik) wrote : | #4 |
It should also be noted that the package fails to install because of this same bug. Following is the result of "apt-get install dante-server" on 64-bit oneiric, trying to install dante-server version "1.1.19.
Feb 4 23:33:45 (1328427225) danted[21015]: socks_seteuid(): old: 0, new: 65534
Feb 4 23:33:45 (1328427225) danted[21015]: socks_reseteuid(): current: 65534, new: 0
Feb 4 23:33:45 (1328427225) danted[21015]: symbolfunction(): compiletime configuration error? Failed to open "libc.so": /usr/lib/
Feb 4 23:33:45 (1328427225) danted[21015]: sockdexit()
Feb 4 23:33:45 (1328427225) danted[21015]: sockdexit(): terminating
invoke-rc.d: initscript danted, action "start" failed.
dpkg: error processing dante-server (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
dante-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
I was able to resolve this with the 64-bit version of the work around mentioned above: "cd /lib/x86_
luca (llucax) wrote : | #5 |
This is still happening in Ubuntu 12.10!
Confirmed still a bug in 12.10
Mar 8 08:40:15 (1362750015) danted[2240]: symbolfunction(): compiletime configuration error? Failed to open "libc.so": /usr/lib/
Mar 8 08:40:15 (1362750015) danted[2240]: sockdexit()
Mar 8 08:40:15 (1362750015) danted[2240]: sockdexit(): terminating
robert@
Linux robert-VirtualBox 3.5.0-25-generic #39-Ubuntu SMP Mon Feb 25 18:26:58 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
robert@
Description: Ubuntu 12.10
Release: 12.10
robert@
/lib/x86_
/usr/lib/
robert@
dante-server:
Installed: 1.1.19.
Candidate: 1.1.19.
Version table:
*** 1.1.19.
500 http://
100 /var/lib/
robert@
Eduardo Damato (edamato) wrote : | #7 |
My understanding is that the problem is that a dlopen() is attempted against libc.so, which is a text file.
$ file /usr/lib/
/usr/lib/
Changing it to libc.so.6 did fix the problem:
$ file /lib/x86_
/lib/x86_
therefore I tried the following patch which seems to fix the issue:
--- dante-1.
+++ dante-1.
@@ -29690,7 +29690,7 @@
LIBC_NAME=`ls /usr/lib/libc.so* /lib/libc.so* | sed -e 's/.*\///' | sort -nr | head -n 1`
if test "x${LIBC_NAME}" = x; then
#nothing found, set libc.so anyway
- LIBC_NAME=
+ LIBC_NAME=
fi
;;
Providing the debdiff for precise.
The attachment "debdiff.danted" seems to be a debdiff. The ubuntu-sponsors team has been subscribed to the bug report so that they can review and hopefully sponsor the debdiff. If the attachment isn't a patch, please remove the "patch" flag from the attachment, remove the "patch" tag, and if you are member of the ~ubuntu-sponsors, unsubscribe the team.
[This is an automated message performed by a Launchpad user owned by ~brian-murray, for any issue please contact him.]
tags: | added: patch |
Changed in dante (Ubuntu Precise): | |
status: | New → Triaged |
importance: | Undecided → Medium |
Martin Pitt (pitti) wrote : | #9 |
Wouldn't it be better to find the real libc in the condition before?
case $host in
IMHO this should also look in /lib/*/libc.so.*. Also, this needs to be patched in configure.ac, not in configure. Can you please forward this upstream/Debian as well? Thank you!
Changed in dante (Ubuntu): | |
assignee: | nobody → Louis Bouchard (louis-bouchard) |
Changed in dante (Ubuntu Precise): | |
assignee: | nobody → Louis Bouchard (louis-bouchard) |
Changed in dante (Ubuntu Precise): | |
status: | Triaged → In Progress |
Louis Bouchard (louis) wrote : | #10 |
debdiff for the Saucy fix
Louis Bouchard (louis) wrote : | #11 |
debdiff for the Precise fix
Louis Bouchard (louis) wrote : | #12 |
Please note that those debdiff contain correction for this other bug :
Changed in dante (Ubuntu): | |
status: | Confirmed → In Progress |
description: | updated |
aanno (thomas-pasch) wrote : | #13 |
This also affects raring (13.04):
ug 6 20:04:09 (1375819449) danted[2051]: socks_seteuid(): old: 0, new: 13
Aug 6 20:04:09 (1375819449) danted[2051]: socks_reseteuid(): current: 13, new: 0
Aug 6 20:04:09 (1375819449) danted[2051]: socks_seteuid(): old: 0, new: 65534
Aug 6 20:04:09 (1375819449) danted[2051]: socks_reseteuid(): current: 65534, new: 0
Aug 6 20:04:09 (1375819449) danted[2051]: socks_seteuid(): old: 0, new: 65534
Aug 6 20:04:09 (1375819449) danted[2051]: socks_reseteuid(): current: 65534, new: 0
Aug 6 20:04:09 (1375819449) danted[2051]: fixsettings(): no methods enabled (total block)
Aug 6 20:04:09 (1375819449) danted[2051]: symbolfunction(): compiletime configuration error? Failed to open "libc.so": libc.so: cannot open shared object file: No such file or directory
Marc Deslauriers (mdeslaur) wrote : | #14 |
Thanks for the debdiffs!
Could you please fix a couple of small details:
1- The debian/changelog refers to the 03-configure.patch changes twice. Please remove one of them.
2- Please add the name of the 16-fix-dlopen.patch patch to the appropriate section in debian/changelog
3- The 16-fix-dlopen.patch patch contains the comment "#nothing found, set libc.so anyway", which is wrong. Please adjust.
4- On my system, LIBRARY_DLOPEN gives two results: /lib/i386-
Louis Bouchard (louis) wrote : | #15 |
updated debdiff with mdeslaur's comments applied
Louis Bouchard (louis) wrote : | #16 |
updated debdiff with mdeslaur's comments applied
Marc Deslauriers (mdeslaur) wrote : | #17 |
ACK on the debdiffs.
- I've uploaded the saucy package, with a slight whitespace change to the changelog.
- I've uploaded the precise package for processing by the SRU team, with a slight version and whitespace change in the changelog.
Thanks!
Launchpad Janitor (janitor) wrote : | #18 |
This bug was fixed in the package dante - 1.1.19.
---------------
dante (1.1.19.
* debian/
- Revert hardcoded libdl.so path
* debian/
- Fix dante-server using the wrong libc.so (LP: #816153)
by changing the search patch for the libc.so
* debian/
- Fix socksify fails to run (LP: #857598)
by adding search logic to locate the proper libdl.so
-- Louis Bouchard <email address hidden> Wed, 12 Jul 2013 14:39:18 +0200
Changed in dante (Ubuntu): | |
status: | In Progress → Fix Released |
ADFH (adfh) wrote : | #19 |
Thanks for finally getting a working fix folks! I grabbed packages from saucy repo and popped them into my now raring install and socksify works again!
Hello Alejandro, or anyone else affected,
Accepted dante into precise-proposed. The package will build now and be available at http://
Please help us by testing this new package. See https:/
If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-
Further information regarding the verification process can be found at https:/
Changed in dante (Ubuntu Precise): | |
status: | In Progress → Fix Committed |
tags: | added: verification-needed |
Louis Bouchard (louis) wrote : | #21 |
package in -proposed tested with described reproduction steps. Now starts as expected
tags: |
added: verification-done removed: verification-needed |
The verification of this Stable Release Update has completed successfully and the package has now been 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 regresssions.
Launchpad Janitor (janitor) wrote : | #23 |
This bug was fixed in the package dante - 1.1.19.
---------------
dante (1.1.19.
* debian/
- Revert hardcoded libdl.so path
* debian/
- Fix dante-server using the wrong libc.so (LP: #816153)
by changing the search patch for the libc.so
* debian/
- Fix socksify fails to run (LP: #857598)
by adding search logic to locate the proper libdl.so
-- Louis Bouchard <email address hidden> Wed, 12 Jul 2013 14:39:18 +0200
Changed in dante (Ubuntu Precise): | |
status: | Fix Committed → Fix Released |
Vin Shankar (v-shankar) wrote : | #24 |
There seems to have been a regression in Raring. I'm experiencing the same problem, but with dante-server version 1.1.19.
Vin Shankar (v-shankar) wrote : | #25 |
Hmm. Possibly not exactly, but a manual symbolic link is still necessary. dante will now find /lib/x86_
DaveQB (david-dward) wrote : | #26 |
Yes me too on Precise. I fixed it manually too.
Also the init script fails to restart. I patched that by simply making it call itself with a stop and then start argument.
Louis Bouchard (louis) wrote : | #27 |
@david & Vin:
I have just checked and the updated package with the fix is indeed in the -updates archive :
# apt-cache policy dante-server
dante-server:
Installed: 1.1.19.
Candidate: 1.1.19.
Version table:
*** 1.1.19.
500 http://
100 /var/lib/
1.
500 http://
There seems to be some side effect by the previously failing package that is causing the update not to install. I just tested the following that works correctly :
$ sudo apt-get -y remove dante-server && sudo apt-get -y install dante-server
This should install version 1.1.19.
DaveQB (david-dward) wrote : | #28 |
It looks like I was using 1.1.19.
Tested on my laptop (1.1.19.
Thanks for the response and info @louis-bouchard
Hugo Duncan (6ugo) wrote : | #29 |
I'm seeing this issue in raring, with 1.1.19.
As reported by Alejandro, this works as a workaround:
sudo rm /usr/lib/ x86_64- linux-gnu/ libc.so 64-linux- gnu/libc- 2.13.so /usr/lib/ x86_64- linux-gnu/ libc.so
sudo ln -sf /lib/x86_
$ uname -a
Linux squeezepro 2.6.38-10-server #46-Ubuntu SMP Tue Jun 28 16:31:00 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
$ lsb_release -rd
Description: Ubuntu 11.04
Release: 11.04
$ apt-cache policy dante-server dfsg-3ubuntu4. 1 dfsg-3ubuntu4. 1 dfsg-3ubuntu4. 1 0 be.archive. ubuntu. com/ubuntu/ natty-updates/ universe amd64 Packages dpkg/status 1.19.dfsg- 3ubuntu4 0 be.archive. ubuntu. com/ubuntu/ natty/universe amd64 Packages
dante-server:
Installed: 1.1.19.
Candidate: 1.1.19.
Version table:
*** 1.1.19.
500 http://
100 /var/lib/
1.
500 http://