Activity log for bug #1501854

Date Who What changed Old value New value Message
2015-10-01 17:43:51 Cd-MaN bug added bug
2016-03-21 13:09:24 Launchpad Janitor uwsgi (Ubuntu): status New Confirmed
2016-03-21 13:22:23 Douglas Fraser bug added subscriber Douglas Fraser
2016-06-29 09:11:53 Ben Webb bug added subscriber Ben Webb
2016-06-29 09:16:57 Ben Webb bug watch added http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=752783
2017-08-29 19:29:40 Stefano Rivera bug task added uwsgi (Debian)
2017-08-29 19:57:55 Stefano Rivera description If I specify "ProxyPass unix:/run/uwsgi/app/site/socket|uwsgi://" (this is inside of a location block, so need for the initial path) I will get "error parsing URL //: Invalid host/port" in the apache logs when I try to access that URL. If I try to change the final part (ie. "|uwsgi://" to "|uwsgi://localhost/"), it just tries to connect through TCP. The problem is fixed (at least for me) by the patch from the mailing list: http://lists.unbit.it/pipermail/uwsgi/2015-September/008185.html (I also let Debian know about this, so perhaps the fix will come from upstream - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=752783#35). There is also a workaround: use "vanilla" mod_proxy_http over unix domain sockets: ProxyPass "/foo" "unix:/var/run/uwsgi/foo.socket|http://uwsgi-uds-foo/" PS. Apparently, if you have multiple instances of uwsgi you want to connect to, you need to specify different names for them (ie. "http://uwsgi-uds-foo/", "http://uwsgi-uds-bar/", etc), having just different paths to the sockets will not work. == SRU == Reproduction: === demo.conf === <VirtualHost *:80> ServerName localhost ProxyPass / unix:/run/demo.sock|uwsgi://demo/ </VirtualHost> === demo.ini === [uwsgi] plugin = python3 socket = /run/demo.sock umask = 0111 wsgi-file = demo.py === demo.py === def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return [b"Hello World"] === Steps === 1. apt install apache2 libapache2-mod-proxy-uwsgi uwsgi-plugin-python3 2. a2enmod proxy_uwsgi 3. rm /etc/apache2/sites-enabled/000-default.conf 4. cp demo.conf /etc/apache2/sites/enabled 5. service apache2 restart (. /etc/apache2/envvars; apache2) 6. uwsgi --ini demo.ini 7. curl http://localhost/ Success: Hello World Failure: A 502 Proxy Error, with this in the logs: DNS lookup failure for: demo returned by / == ORIGINAL REPROT == If I specify "ProxyPass unix:/run/uwsgi/app/site/socket|uwsgi://" (this is inside of a location block, so need for the initial path) I will get "error parsing URL //: Invalid host/port" in the apache logs when I try to access that URL. If I try to change the final part (ie. "|uwsgi://" to "|uwsgi://localhost/"), it just tries to connect through TCP. The problem is fixed (at least for me) by the patch from the mailing list: http://lists.unbit.it/pipermail/uwsgi/2015-September/008185.html (I also let Debian know about this, so perhaps the fix will come from upstream - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=752783#35). There is also a workaround: use "vanilla" mod_proxy_http over unix domain sockets: ProxyPass "/foo" "unix:/var/run/uwsgi/foo.socket|http://uwsgi-uds-foo/" PS. Apparently, if you have multiple instances of uwsgi you want to connect to, you need to specify different names for them (ie. "http://uwsgi-uds-foo/", "http://uwsgi-uds-bar/", etc), having just different paths to the sockets will not work.
2017-08-29 19:58:19 Stefano Rivera nominated for series Ubuntu Xenial
2017-08-29 19:58:19 Stefano Rivera bug task added uwsgi (Ubuntu Xenial)
2017-08-29 19:58:24 Stefano Rivera uwsgi (Ubuntu): status Confirmed Fix Released
2017-08-29 19:58:27 Stefano Rivera uwsgi (Ubuntu Xenial): importance Undecided Medium
2017-08-29 19:58:37 Stefano Rivera uwsgi (Ubuntu Xenial): status New In Progress
2017-08-29 20:05:52 Stefano Rivera description == SRU == Reproduction: === demo.conf === <VirtualHost *:80> ServerName localhost ProxyPass / unix:/run/demo.sock|uwsgi://demo/ </VirtualHost> === demo.ini === [uwsgi] plugin = python3 socket = /run/demo.sock umask = 0111 wsgi-file = demo.py === demo.py === def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return [b"Hello World"] === Steps === 1. apt install apache2 libapache2-mod-proxy-uwsgi uwsgi-plugin-python3 2. a2enmod proxy_uwsgi 3. rm /etc/apache2/sites-enabled/000-default.conf 4. cp demo.conf /etc/apache2/sites/enabled 5. service apache2 restart (. /etc/apache2/envvars; apache2) 6. uwsgi --ini demo.ini 7. curl http://localhost/ Success: Hello World Failure: A 502 Proxy Error, with this in the logs: DNS lookup failure for: demo returned by / == ORIGINAL REPROT == If I specify "ProxyPass unix:/run/uwsgi/app/site/socket|uwsgi://" (this is inside of a location block, so need for the initial path) I will get "error parsing URL //: Invalid host/port" in the apache logs when I try to access that URL. If I try to change the final part (ie. "|uwsgi://" to "|uwsgi://localhost/"), it just tries to connect through TCP. The problem is fixed (at least for me) by the patch from the mailing list: http://lists.unbit.it/pipermail/uwsgi/2015-September/008185.html (I also let Debian know about this, so perhaps the fix will come from upstream - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=752783#35). There is also a workaround: use "vanilla" mod_proxy_http over unix domain sockets: ProxyPass "/foo" "unix:/var/run/uwsgi/foo.socket|http://uwsgi-uds-foo/" PS. Apparently, if you have multiple instances of uwsgi you want to connect to, you need to specify different names for them (ie. "http://uwsgi-uds-foo/", "http://uwsgi-uds-bar/", etc), having just different paths to the sockets will not work. == SRU == Reproduction: === demo.conf === <VirtualHost *:80>  ServerName localhost  ProxyPass / unix:/run/demo.sock|uwsgi://demo/ </VirtualHost> === demo.ini === [uwsgi] plugin = python3 socket = /run/demo.sock umask = 0111 wsgi-file = demo.py === demo.py === def application(env, start_response):     start_response('200 OK', [('Content-Type','text/html')])     return [b"Hello World"] === Steps === 1. apt install apache2 libapache2-mod-proxy-uwsgi uwsgi-plugin-python3 2. a2enmod proxy_uwsgi 3. rm /etc/apache2/sites-enabled/000-default.conf 4. cp demo.conf /etc/apache2/sites-enabled/ 5. service apache2 restart (. /etc/apache2/envvars; apache2) 6. uwsgi --ini demo.ini 7. curl http://localhost/ Success: Hello World Failure: A 502 Proxy Error, with this in the logs: DNS lookup failure for: demo returned by / == ORIGINAL REPROT == If I specify "ProxyPass unix:/run/uwsgi/app/site/socket|uwsgi://" (this is inside of a location block, so need for the initial path) I will get "error parsing URL //: Invalid host/port" in the apache logs when I try to access that URL. If I try to change the final part (ie. "|uwsgi://" to "|uwsgi://localhost/"), it just tries to connect through TCP. The problem is fixed (at least for me) by the patch from the mailing list: http://lists.unbit.it/pipermail/uwsgi/2015-September/008185.html (I also let Debian know about this, so perhaps the fix will come from upstream - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=752783#35). There is also a workaround: use "vanilla" mod_proxy_http over unix domain sockets: ProxyPass "/foo" "unix:/var/run/uwsgi/foo.socket|http://uwsgi-uds-foo/" PS. Apparently, if you have multiple instances of uwsgi you want to connect to, you need to specify different names for them (ie. "http://uwsgi-uds-foo/", "http://uwsgi-uds-bar/", etc), having just different paths to the sockets will not work.
2017-08-29 20:06:14 Stefano Rivera description == SRU == Reproduction: === demo.conf === <VirtualHost *:80>  ServerName localhost  ProxyPass / unix:/run/demo.sock|uwsgi://demo/ </VirtualHost> === demo.ini === [uwsgi] plugin = python3 socket = /run/demo.sock umask = 0111 wsgi-file = demo.py === demo.py === def application(env, start_response):     start_response('200 OK', [('Content-Type','text/html')])     return [b"Hello World"] === Steps === 1. apt install apache2 libapache2-mod-proxy-uwsgi uwsgi-plugin-python3 2. a2enmod proxy_uwsgi 3. rm /etc/apache2/sites-enabled/000-default.conf 4. cp demo.conf /etc/apache2/sites-enabled/ 5. service apache2 restart (. /etc/apache2/envvars; apache2) 6. uwsgi --ini demo.ini 7. curl http://localhost/ Success: Hello World Failure: A 502 Proxy Error, with this in the logs: DNS lookup failure for: demo returned by / == ORIGINAL REPROT == If I specify "ProxyPass unix:/run/uwsgi/app/site/socket|uwsgi://" (this is inside of a location block, so need for the initial path) I will get "error parsing URL //: Invalid host/port" in the apache logs when I try to access that URL. If I try to change the final part (ie. "|uwsgi://" to "|uwsgi://localhost/"), it just tries to connect through TCP. The problem is fixed (at least for me) by the patch from the mailing list: http://lists.unbit.it/pipermail/uwsgi/2015-September/008185.html (I also let Debian know about this, so perhaps the fix will come from upstream - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=752783#35). There is also a workaround: use "vanilla" mod_proxy_http over unix domain sockets: ProxyPass "/foo" "unix:/var/run/uwsgi/foo.socket|http://uwsgi-uds-foo/" PS. Apparently, if you have multiple instances of uwsgi you want to connect to, you need to specify different names for them (ie. "http://uwsgi-uds-foo/", "http://uwsgi-uds-bar/", etc), having just different paths to the sockets will not work. == SRU == Reproduction: === demo.conf === <VirtualHost *:80>  ServerName localhost  ProxyPass / unix:/run/demo.sock|uwsgi://demo/ </VirtualHost> === demo.ini === [uwsgi] plugin = python3 socket = /run/demo.sock umask = 0111 wsgi-file = demo.py === demo.py === def application(env, start_response):     start_response('200 OK', [('Content-Type','text/html')])     return [b"Hello World"] === Steps === 1. apt install apache2 libapache2-mod-proxy-uwsgi uwsgi-plugin-python3 2. a2enmod proxy_uwsgi 3. rm /etc/apache2/sites-enabled/000-default.conf 4. cp demo.conf /etc/apache2/sites-enabled/ 5. service apache2 restart lazy chroot option: (. /etc/apache2/envvars; apache2) 6. uwsgi --ini demo.ini 7. curl http://localhost/ Success: Hello World Failure: A 502 Proxy Error, with this in the logs: DNS lookup failure for: demo returned by / == ORIGINAL REPROT == If I specify "ProxyPass unix:/run/uwsgi/app/site/socket|uwsgi://" (this is inside of a location block, so need for the initial path) I will get "error parsing URL //: Invalid host/port" in the apache logs when I try to access that URL. If I try to change the final part (ie. "|uwsgi://" to "|uwsgi://localhost/"), it just tries to connect through TCP. The problem is fixed (at least for me) by the patch from the mailing list: http://lists.unbit.it/pipermail/uwsgi/2015-September/008185.html (I also let Debian know about this, so perhaps the fix will come from upstream - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=752783#35). There is also a workaround: use "vanilla" mod_proxy_http over unix domain sockets: ProxyPass "/foo" "unix:/var/run/uwsgi/foo.socket|http://uwsgi-uds-foo/" PS. Apparently, if you have multiple instances of uwsgi you want to connect to, you need to specify different names for them (ie. "http://uwsgi-uds-foo/", "http://uwsgi-uds-bar/", etc), having just different paths to the sockets will not work.
2017-08-29 20:53:57 Stefano Rivera attachment added uwsgi_2.0.12-5ubuntu3.1.debdiff https://bugs.launchpad.net/ubuntu/+source/uwsgi/+bug/1501854/+attachment/4941049/+files/uwsgi_2.0.12-5ubuntu3.1.debdiff
2017-08-30 16:28:28 Bug Watch Updater uwsgi (Debian): status Unknown Fix Released
2017-08-30 23:33:51 Stefano Rivera description == SRU == Reproduction: === demo.conf === <VirtualHost *:80>  ServerName localhost  ProxyPass / unix:/run/demo.sock|uwsgi://demo/ </VirtualHost> === demo.ini === [uwsgi] plugin = python3 socket = /run/demo.sock umask = 0111 wsgi-file = demo.py === demo.py === def application(env, start_response):     start_response('200 OK', [('Content-Type','text/html')])     return [b"Hello World"] === Steps === 1. apt install apache2 libapache2-mod-proxy-uwsgi uwsgi-plugin-python3 2. a2enmod proxy_uwsgi 3. rm /etc/apache2/sites-enabled/000-default.conf 4. cp demo.conf /etc/apache2/sites-enabled/ 5. service apache2 restart lazy chroot option: (. /etc/apache2/envvars; apache2) 6. uwsgi --ini demo.ini 7. curl http://localhost/ Success: Hello World Failure: A 502 Proxy Error, with this in the logs: DNS lookup failure for: demo returned by / == ORIGINAL REPROT == If I specify "ProxyPass unix:/run/uwsgi/app/site/socket|uwsgi://" (this is inside of a location block, so need for the initial path) I will get "error parsing URL //: Invalid host/port" in the apache logs when I try to access that URL. If I try to change the final part (ie. "|uwsgi://" to "|uwsgi://localhost/"), it just tries to connect through TCP. The problem is fixed (at least for me) by the patch from the mailing list: http://lists.unbit.it/pipermail/uwsgi/2015-September/008185.html (I also let Debian know about this, so perhaps the fix will come from upstream - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=752783#35). There is also a workaround: use "vanilla" mod_proxy_http over unix domain sockets: ProxyPass "/foo" "unix:/var/run/uwsgi/foo.socket|http://uwsgi-uds-foo/" PS. Apparently, if you have multiple instances of uwsgi you want to connect to, you need to specify different names for them (ie. "http://uwsgi-uds-foo/", "http://uwsgi-uds-bar/", etc), having just different paths to the sockets will not work. = SRU = == Impact == Using unix domain sockets for getting traffic from Apache to uwsgi is impossible. This is a regression from previous releases. == Regression Potential == Patch is upstream, and that part of the codebase hasn't been touched since. Presumably that means it has been well tested by other uwsgi users. It was also previously applied in the Debian/Ubuntu package. It was dropped by accident. The patch only applies to the mod_proxy_uwsgi module, so no other bits of uwsgi should be affected (it does build *many* binaries and packages). == Test Case == === demo.conf === <VirtualHost *:80>  ServerName localhost  ProxyPass / unix:/run/demo.sock|uwsgi://demo/ </VirtualHost> === demo.ini === [uwsgi] plugin = python3 socket = /run/demo.sock umask = 0111 wsgi-file = demo.py === demo.py === def application(env, start_response):     start_response('200 OK', [('Content-Type','text/html')])     return [b"Hello World"] === Steps === 1. apt install apache2 libapache2-mod-proxy-uwsgi uwsgi-plugin-python3 2. a2enmod proxy_uwsgi 3. rm /etc/apache2/sites-enabled/000-default.conf 4. cp demo.conf /etc/apache2/sites-enabled/ 5. service apache2 restart    lazy chroot option: (. /etc/apache2/envvars; apache2) 6. uwsgi --ini demo.ini 7. curl http://localhost/ Success: Hello World Failure: A 502 Proxy Error, with this in the logs: DNS lookup failure for: demo returned by / = ORIGINAL REPROT = If I specify "ProxyPass unix:/run/uwsgi/app/site/socket|uwsgi://" (this is inside of a location block, so need for the initial path) I will get "error parsing URL //: Invalid host/port" in the apache logs when I try to access that URL. If I try to change the final part (ie. "|uwsgi://" to "|uwsgi://localhost/"), it just tries to connect through TCP. The problem is fixed (at least for me) by the patch from the mailing list: http://lists.unbit.it/pipermail/uwsgi/2015-September/008185.html (I also let Debian know about this, so perhaps the fix will come from upstream - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=752783#35). There is also a workaround: use "vanilla" mod_proxy_http over unix domain sockets: ProxyPass "/foo" "unix:/var/run/uwsgi/foo.socket|http://uwsgi-uds-foo/" PS. Apparently, if you have multiple instances of uwsgi you want to connect to, you need to specify different names for them (ie. "http://uwsgi-uds-foo/", "http://uwsgi-uds-bar/", etc), having just different paths to the sockets will not work.
2017-08-31 20:58:30 Brian Murray uwsgi (Ubuntu Xenial): status In Progress Fix Committed
2017-08-31 20:58:31 Brian Murray bug added subscriber Ubuntu Stable Release Updates Team
2017-08-31 20:58:34 Brian Murray bug added subscriber SRU Verification
2017-08-31 20:58:38 Brian Murray tags verification-needed verification-needed-xenial
2017-09-01 19:46:34 Stefano Rivera tags verification-needed verification-needed-xenial verification-done verification-done-xenial
2017-09-13 01:02:23 Launchpad Janitor uwsgi (Ubuntu Xenial): status Fix Committed Fix Released
2017-09-13 01:02:35 Chris Halse Rogers removed subscriber Ubuntu Stable Release Updates Team