thanks for the report and link to the patch.

I have uploaded a fixed package to -proposed
please test it when it has been accepted.

** Description changed:

- It appears that uwsgi-plugin-psgi does not load libperl.so and therefore
- the package is unusable.
+ Impact:
+ It appears that uwsgi-plugin-psgi does not load libperl.so and therefore the 
package is unusable.
  
- How to test:
+ Fix: the psgi plugin uses LDFLAGS to link with libraries so they are ordered 
wrong on the command line (due to ld --as-needed) so it ends up not linking 
against them at all.
+ the fix is to add the libraries to LIBS
+ The same fix is applied in upstream and quantal.
+ 
+ TESTCASE:
  
  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
+   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)
  
- 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)
  
+ Regression potential:
+ only a change in the linking of a single plugin and the plugin is unusable 
without the fix
+ low risk of regressions
+ 
+ 
+ rest of original report:
  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 :).
+ 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)
+ $ 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
+  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)

** Description changed:

  Impact:
  It appears that uwsgi-plugin-psgi does not load libperl.so and therefore the 
package is unusable.
  
  Fix: the psgi plugin uses LDFLAGS to link with libraries so they are ordered 
wrong on the command line (due to ld --as-needed) so it ends up not linking 
against them at all.
  the fix is to add the libraries to LIBS
  The same fix is applied in upstream and quantal.
  
  TESTCASE:
  
  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)
  
+ Compare the ldd output of the fixed plugin:
+ $ 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)
+ 
  
  Regression potential:
  only a change in the linking of a single plugin and the plugin is unusable 
without the fix
  low risk of regressions
  
  
  rest of original report:
  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)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1024528

Title:
  psgi_plugin.so: undefined symbol: boot_DynaLoader

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/uwsgi/+bug/1024528/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to