[octavia-api][queens] broken pipe
Hello All, I installed octavia queens with centos and it works but in /var/log/messages I got a lot of errors like the following: Apr 2 09:53:15 tst2-osctrl01 octavia-api: self.RequestHandlerClass(request, client_address, self) Apr 2 09:53:15 tst2-osctrl01 octavia-api: File "/usr/lib64/python2.7/SocketServer.py", line 651, in __init__ Apr 2 09:53:15 tst2-osctrl01 octavia-api: self.finish() Apr 2 09:53:15 tst2-osctrl01 octavia-api: File "/usr/lib64/python2.7/SocketServer.py", line 710, in finish Apr 2 09:53:15 tst2-osctrl01 octavia-api: self.wfile.close() Apr 2 09:53:15 tst2-osctrl01 octavia-api: File "/usr/lib64/python2.7/socket.py", line 279, in close Apr 2 09:53:15 tst2-osctrl01 octavia-api: self.flush() Apr 2 09:53:15 tst2-osctrl01 octavia-api: File "/usr/lib64/python2.7/socket.py", line 303, in flush Apr 2 09:53:15 tst2-osctrl01 octavia-api: self._sock.sendall(view[write_offset:write_offset+buffer_size]) Apr 2 09:53:15 tst2-osctrl01 octavia-api: error: [Errno 32] Broken pipe octavia-api is under haproxy: listen octavia_cluster bind 10.102.184.190:9876 balance source option tcpka option httpchk option tcplog server tst2-osctrl01 10.102.184.191:9876 check fall 5 inter 2000 rise 2 server tst2-osctrl02 10.102.184.192:9876 check fall 5 inter 2000 rise 2 server tst2-osctrl03 10.102.184.193:9876 check fall 5 inter 2000 rise 2 Any help, please ? Another question is related to openstack command: Must I use neutron lbbas command or openstack loadbalancer command for octavia ? Loadbalancers created with neutron command cannot be shown with openstack loadbalancer command . Many thanks Ignazio
This looks similar to this bug: https://bugs.launchpad.net/tripleo/+bug/1815811. The default octavia server uses wsgiref.simple_server which doesn't appear to deal with haproxy interaction very well. We are fixing TripleO to run octavia api under apache instead which appears to fix the problem. Cheers, Brent On Tue, Apr 2, 2019 at 5:44 AM Ignazio Cassano <ignaziocassano@gmail.com> wrote:
Hello All, I installed octavia queens with centos and it works but in /var/log/messages I got a lot of errors like the following:
Apr 2 09:53:15 tst2-osctrl01 octavia-api: self.RequestHandlerClass(request, client_address, self) Apr 2 09:53:15 tst2-osctrl01 octavia-api: File "/usr/lib64/python2.7/SocketServer.py", line 651, in __init__ Apr 2 09:53:15 tst2-osctrl01 octavia-api: self.finish() Apr 2 09:53:15 tst2-osctrl01 octavia-api: File "/usr/lib64/python2.7/SocketServer.py", line 710, in finish Apr 2 09:53:15 tst2-osctrl01 octavia-api: self.wfile.close() Apr 2 09:53:15 tst2-osctrl01 octavia-api: File "/usr/lib64/python2.7/socket.py", line 279, in close Apr 2 09:53:15 tst2-osctrl01 octavia-api: self.flush() Apr 2 09:53:15 tst2-osctrl01 octavia-api: File "/usr/lib64/python2.7/socket.py", line 303, in flush Apr 2 09:53:15 tst2-osctrl01 octavia-api: self._sock.sendall(view[write_offset:write_offset+buffer_size]) Apr 2 09:53:15 tst2-osctrl01 octavia-api: error: [Errno 32] Broken pipe
octavia-api is under haproxy:
listen octavia_cluster bind 10.102.184.190:9876 balance source option tcpka option httpchk option tcplog server tst2-osctrl01 10.102.184.191:9876 check fall 5 inter 2000 rise 2 server tst2-osctrl02 10.102.184.192:9876 check fall 5 inter 2000 rise 2 server tst2-osctrl03 10.102.184.193:9876 check fall 5 inter 2000 rise 2
Any help, please ?
Another question is related to openstack command: Must I use neutron lbbas command or openstack loadbalancer command for octavia ?
Loadbalancers created with neutron command cannot be shown with openstack loadbalancer command .
Many thanks Ignazio
Many thanls. Do you know in which openstack version that fix wil be available ? Regards Ignazio Il giorno mar 2 apr 2019 alle ore 14:29 Brent Eagles <beagles@redhat.com> ha scritto:
This looks similar to this bug: https://bugs.launchpad.net/tripleo/+bug/1815811. The default octavia server uses wsgiref.simple_server which doesn't appear to deal with haproxy interaction very well. We are fixing TripleO to run octavia api under apache instead which appears to fix the problem.
Cheers,
Brent
On Tue, Apr 2, 2019 at 5:44 AM Ignazio Cassano <ignaziocassano@gmail.com> wrote:
Hello All, I installed octavia queens with centos and it works but in /var/log/messages I got a lot of errors like the following:
Apr 2 09:53:15 tst2-osctrl01 octavia-api: self.RequestHandlerClass(request, client_address, self) Apr 2 09:53:15 tst2-osctrl01 octavia-api: File "/usr/lib64/python2.7/SocketServer.py", line 651, in __init__ Apr 2 09:53:15 tst2-osctrl01 octavia-api: self.finish() Apr 2 09:53:15 tst2-osctrl01 octavia-api: File "/usr/lib64/python2.7/SocketServer.py", line 710, in finish Apr 2 09:53:15 tst2-osctrl01 octavia-api: self.wfile.close() Apr 2 09:53:15 tst2-osctrl01 octavia-api: File "/usr/lib64/python2.7/socket.py", line 279, in close Apr 2 09:53:15 tst2-osctrl01 octavia-api: self.flush() Apr 2 09:53:15 tst2-osctrl01 octavia-api: File "/usr/lib64/python2.7/socket.py", line 303, in flush Apr 2 09:53:15 tst2-osctrl01 octavia-api: self._sock.sendall(view[write_offset:write_offset+buffer_size]) Apr 2 09:53:15 tst2-osctrl01 octavia-api: error: [Errno 32] Broken pipe
octavia-api is under haproxy:
listen octavia_cluster bind 10.102.184.190:9876 balance source option tcpka option httpchk option tcplog server tst2-osctrl01 10.102.184.191:9876 check fall 5 inter 2000 rise 2 server tst2-osctrl02 10.102.184.192:9876 check fall 5 inter 2000 rise 2 server tst2-osctrl03 10.102.184.193:9876 check fall 5 inter 2000 rise 2
Any help, please ?
Another question is related to openstack command: Must I use neutron lbbas command or openstack loadbalancer command for octavia ?
Loadbalancers created with neutron command cannot be shown with openstack loadbalancer command .
Many thanks Ignazio
On 2019-04-02 14:57:56 +0200 (+0200), Ignazio Cassano wrote:
Do you know in which openstack version that fix wil be available ? [...]
(Sorry for not including much context, the top-posting in your reply has made it extremely difficult to do so.) The "fix" mentioned by Brent, as I understand, is to simply use Apache with its mod_wsgi module to serve the API rather than exposing a WSGI service directly on a socket. If the deployment tooling you're using supports this operational model then you should simply be able to switch to it at any time. If your deployment tooling does not yet support this, then when it appears as an option in a release will depend on the tool in question. Are you asking when TripleO will switch to that model because you're using TripleO to manage your OpenStack deployment, or did you misunderstand the answer? -- Jeremy Stanley
Hello, thanks for tour answer. I am not using tripleo but I installed openstack manually in high availability using haproxy. I understood fine the issue is caused by haproxy when it tries to check Octavia api controllers and octavia api in not under apache. Will tripleo modify haproxy rules or it will out octavia api under apache? In the second case, is there any document for moving octavia api under apache in Centos 7 environments ? Regards ignazio Il Mar 2 Apr 2019 16:39 Jeremy Stanley <fungi@yuggoth.org> ha scritto:
On 2019-04-02 14:57:56 +0200 (+0200), Ignazio Cassano wrote:
Do you know in which openstack version that fix wil be available ? [...]
(Sorry for not including much context, the top-posting in your reply has made it extremely difficult to do so.) The "fix" mentioned by Brent, as I understand, is to simply use Apache with its mod_wsgi module to serve the API rather than exposing a WSGI service directly on a socket. If the deployment tooling you're using supports this operational model then you should simply be able to switch to it at any time. If your deployment tooling does not yet support this, then when it appears as an option in a release will depend on the tool in question. Are you asking when TripleO will switch to that model because you're using TripleO to manage your OpenStack deployment, or did you misunderstand the answer? -- Jeremy Stanley
Hello, I solved using ocatvia-api under apache , I created a file under /etc/httpd/conf.d . The file in octavia-api.conf: Listen controlleraddress:9876 <VirtualHost *:9876> WSGIDaemonProcess octavia-wsgi user=octavia group=octavia processes=5 threads=1 display-name=%{GROUP} WSGIProcessGroup octavia-wsgi WSGIScriptAlias / /usr/local/bin/octavia-wsgi WSGIApplicationGroup %{GLOBAL} ErrorLog /var/log/httpd/octavia-wsgi.log <Directory /usr/local/bin/> WSGIProcessGroup octavia-wsgi <IfVersion >= 2.4> Require all granted </IfVersion> <IfVersion < 2.4> Order allow,deny Allow from all </IfVersion> </Directory> Il giorno mar 2 apr 2019 alle ore 16:39 Jeremy Stanley <fungi@yuggoth.org> ha scritto:
On 2019-04-02 14:57:56 +0200 (+0200), Ignazio Cassano wrote:
Do you know in which openstack version that fix wil be available ? [...]
(Sorry for not including much context, the top-posting in your reply has made it extremely difficult to do so.) The "fix" mentioned by Brent, as I understand, is to simply use Apache with its mod_wsgi module to serve the API rather than exposing a WSGI service directly on a socket. If the deployment tooling you're using supports this operational model then you should simply be able to switch to it at any time. If your deployment tooling does not yet support this, then when it appears as an option in a release will depend on the tool in question. Are you asking when TripleO will switch to that model because you're using TripleO to manage your OpenStack deployment, or did you misunderstand the answer? -- Jeremy Stanley
participants (3)
-
Brent Eagles
-
Ignazio Cassano
-
Jeremy Stanley