Comment 0 for bug 1024528

Revision history for this message
Janne Snabb (snabb) wrote :

It appears that uwsgi-plugin-psgi does not load libperl.so and therefore the package is unusable.

How to test:

1. # apt-get install uwsgi uwsgi-plugin-psgi

2. # vi /etc/uwsgi/apps-available/test.yaml
Put the following contents there:
---cut-here---
uwsgi:
  plugins: psgi
  psgi: /dev/null
---cut-here---

3. # ln -s /etc/uwsgi/apps-available/test.yaml /etc/uwsgi/apps-enabled/

4. # service uwsgi restart

5. # less /var/log/uwsgi/app/test.log
Observe the following error message: /usr/lib/uwsgi/plugins/psgi_plugin.so: undefined symbol: boot_DynaLoader

The problem is obvious when looking at the uwsgi plugin file with ldd:
$ ldd /usr/lib/uwsgi/plugins/psgi_plugin.so
 linux-vdso.so.1 => (0x00007fff395ff000)
 libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2f4a70d000)
 libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f2f4a4f0000)
 /lib64/ld-linux-x86-64.so.2 (0x00007f2f4acfe000)

It does not load the perl shared library!

As a workaround I retrieved the current source package version 1.2.3+dfsg-2~experimental1 from Debian and built it on Ubuntu precise. It works fine (and gives excellent PSGI performance :).

Compare the ldd output:
$ ldd /usr/lib/uwsgi/plugins/psgi_plugin.so
        linux-vdso.so.1 => (0x00007fffa33ff000)
        libperl.so.5.14 => /usr/lib/libperl.so.5.14 (0x00007fbf47482000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fbf47265000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbf46ea7000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fbf46ca3000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fbf469a9000)
        libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007fbf4676f000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fbf47a13000)

The working version of the plugin depends on libperl.so while the non-working version does not.

I think the problem has been fixed by this upstream commit:
https://github.com/unbit/uwsgi/commit/15aaddb4d306912c2cb570cb47a82a68b900a27a

See the changes in plugins/psgi/uwsgiplugin.py

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: uwsgi-plugin-psgi 1.0.3+dfsg-1
ProcVersionSignature: Ubuntu 3.2.0-25.40-generic 3.2.18
Uname: Linux 3.2.0-25-generic x86_64
ApportVersion: 2.0.1-0ubuntu8
Architecture: amd64
Date: Sat Jul 14 01:57:46 2012
InstallationMedia: Xubuntu 11.10 "Oneiric Ocelot" - Beta amd64 (20110920.2)
ProcEnviron:
 LANGUAGE=en_US:en
 TERM=xterm
 PATH=(custom, user)
 LANG=en_US.UTF-8
 SHELL=/bin/bash
SourcePackage: uwsgi
UpgradeStatus: Upgraded to precise on 2012-04-27 (77 days ago)