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 :).
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 uwsgi/plugins/ psgi_plugin. so: undefined symbol: boot_DynaLoader
Observe the following error message: /usr/lib/
The problem is obvious when looking at the uwsgi plugin file with ldd: uwsgi/plugins/ psgi_plugin. so f000) 64-linux- gnu/libc. so.6 (0x00007f2f4a70 d000) 64-linux- gnu/libpthread. so.0 (0x00007f2f4a4f 0000) ld-linux- x86-64. so.2 (0x00007f2f4acf e000)
$ ldd /usr/lib/
linux-vdso.so.1 => (0x00007fff395f
libc.so.6 => /lib/x86_
libpthread.so.0 => /lib/x86_
/lib64/
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: uwsgi/plugins/ psgi_plugin. so
linux- vdso.so. 1 => (0x00007fffa33f f000)
libperl. so.5.14 => /usr/lib/ libperl. so.5.14 (0x00007fbf4748 2000)
libpthread. so.0 => /lib/x86_ 64-linux- gnu/libpthread. so.0 (0x00007fbf4726 5000) 64-linux- gnu/libc. so.6 (0x00007fbf46ea 7000) 64-linux- gnu/libdl. so.2 (0x00007fbf46ca 3000) 64-linux- gnu/libm. so.6 (0x00007fbf469a 9000)
libcrypt. so.1 => /lib/x86_ 64-linux- gnu/libcrypt. so.1 (0x00007fbf4676 f000)
/lib64/ ld-linux- x86-64. so.2 (0x00007fbf47a1 3000)
$ ldd /usr/lib/
libc.so.6 => /lib/x86_
libdl.so.2 => /lib/x86_
libm.so.6 => /lib/x86_
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: /github. com/unbit/ uwsgi/commit/ 15aaddb4d306912 c2cb570cb47a82a 68b900a27a
https:/
See the changes in plugins/ psgi/uwsgiplugi n.py
ProblemType: Bug ature: Ubuntu 3.2.0-25.40-generic 3.2.18
DistroRelease: Ubuntu 12.04
Package: uwsgi-plugin-psgi 1.0.3+dfsg-1
ProcVersionSign
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)