zatosource / zato

ESB, SOA, REST, APIs and Cloud Integrations in Python
https://zato.io
GNU Affero General Public License v3.0
1.12k stars 240 forks source link

outgoing->sql->mssql->Change password->BrokenPipeError: [Errno 32] Broken pipe #1024

Closed aixi88 closed 4 years ago

aixi88 commented 4 years ago

BrokenPipeError: [Errno 32] Broken pipe THis Exceptions often appear in the menu operation of outgoing,Sometimes it's normal to try a few more times,After zato_server is restarted, it will be normal,not stable My environment is Docker swarm

Caught an exception, e:Traceback (most recent call last): File "/opt/zato/3.1.0/code/zato-web-admin/src/zato/admin/web/views/__init__.py", line 187, in change_password req.zato.client.invoke(service_name, input_dict) File "/opt/zato/3.1.0/code/zato-web-admin/src/zato/admin/middleware.py", line 82, in invoke raise Exception('CID: {}\nDetails: {}'.format(zato_env.get('cid'), zato_env.get('details'))) Exception: CID: 84f113b1cc6be12f77821353 Details: Traceback (most recent call last): File "/opt/zato/3.1.0/code/zato-server/src/zato/server/service/__init__.py", line 690, in update_handle response = set_response_func(service, data_format=data_format, transport=transport, **kwargs) File "/opt/zato/3.1.0/code/zato-server/src/zato/server/service/__init__.py", line 511, in set_response_data response = response.getvalue(serialize=kwargs['serialize']) File "/opt/zato/3.1.0/code/zato-server/src/zato/server/service/reqresp/__init__.py", line 473, in getvalue elem_value = self._getvalue(name, item, is_sa_namedtuple, is_required, leave_as_is) File "/opt/zato/3.1.0/code/zato-server/src/zato/server/service/reqresp/__init__.py", line 421, in _getvalue raise ZatoException(self.zato_cid, msg) zato.common.ZatoException: <ZatoException at 0x7f5376632d08 cid:84f113b1cc6be12f77821353, msg:Expected elem:<AsIs at 0x7f53842760b8 name:[id]> not found in item:`{'id': ''}``>

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/opt/zato/3.1.0/code/zato-server/src/zato/server/connection/http_soap/channel.py", line 355, in dispatch payload, worker_store, self.simple_io_config, post_data, path_info, soap_action) File "/opt/zato/3.1.0/code/zato-server/src/zato/server/connection/http_soap/channel.py", line 625, in handle params_priority=channel_item.params_pri) File "/opt/zato/3.1.0/code/zato-server/src/zato/server/service/init.py", line 712, in update_handle raise e if isinstance(e, Exception) else Exception(e) File "/opt/zato/3.1.0/code/zato-server/src/zato/server/service/init.py", line 660, in update_handle self._invoke(service, channel) File "/opt/zato/3.1.0/code/zato-server/src/zato/server/service/init.py", line 547, in invoke service.handle() File "/opt/zato/3.1.0/code/zato-server/src/zato/server/service/internal/service.py", line 368, in handle response = func(id, payload, channel, data_format, transport, serialize=True) File "/opt/zato/3.1.0/code/zato-server/src/zato/server/service/init.py", line 792, in invoke return self.invoke_by_impl_name(self.server.service_store.name_to_impl_name[name], *args, *kwargs) File "/opt/zato/3.1.0/code/zato-server/src/zato/server/service/init.py", line 768, in invoke_by_impl_name out = self.update_handle(invoke_args, kwargs) File "/opt/zato/3.1.0/code/zato-server/src/zato/server/service/init.py", line 707, in update_handle raise Exception(exc_formatted) Exception: Traceback (most recent call last): File "/opt/zato/3.1.0/code/zato-server/src/zato/server/service/init.py", line 660, in update_handle self._invoke(service, channel) File "/opt/zato/3.1.0/code/zato-server/src/zato/server/service/init.py", line 547, in _invoke service.handle() File "/opt/zato/3.1.0/code/zato-server/src/zato/server/service/internal/outgoing/sql.py", line 219, in handle self._handle(SQLConnectionPool, _auth, OUTGOING.SQL_CHANGE_PASSWORD.value) File "/opt/zato/3.1.0/code/zato-server/src/zato/server/service/internal/init.py", line 243, in handle filter(class.id==instance_id).\ File "/opt/zato/3.1.0/code/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2894, in one ret = self.one_or_none() File "/opt/zato/3.1.0/code/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2864, in one_or_none ret = list(self) File "/opt/zato/3.1.0/code/zato-common/src/zato/common/odb/api.py", line 121, in iter it = super(WritableTupleQuery, self).iter() File "/opt/zato/3.1.0/code/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2935, in iter return self._execute_and_instances(context) File "/opt/zato/3.1.0/code/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2956, in _execute_and_instances close_with_result=True) File "/opt/zato/3.1.0/code/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2965, in _get_bind_args kw File "/opt/zato/3.1.0/code/lib/python3.6/site-packages/sqlalchemy/orm/query.py", line 2947, in _connection_from_session conn = self.session.connection(**kw) File "/opt/zato/3.1.0/code/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1035, in connection execution_options=execution_options) File "/opt/zato/3.1.0/code/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 1040, in _connection_for_bind engine, execution_options) File "/opt/zato/3.1.0/code/lib/python3.6/site-packages/sqlalchemy/orm/session.py", line 409, in _connection_for_bind conn = bind.contextual_connect() File "/opt/zato/3.1.0/code/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2123, in contextual_connect self._wrap_pool_connect(self.pool.connect, None), File "/opt/zato/3.1.0/code/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect return fn() File "/opt/zato/3.1.0/code/lib/python3.6/site-packages/sqlalchemy/pool.py", line 403, in connect return _ConnectionFairy._checkout(self) File "/opt/zato/3.1.0/code/lib/python3.6/site-packages/sqlalchemy/pool.py", line 821, in _checkout result = pool._dialect.do_ping(fairy.connection) File "/opt/zato/3.1.0/code/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 475, in do_ping cursor.execute(self._dialect_specific_select_one) File "/opt/zato/3.1.0/code/lib/python3.6/site-packages/pg8000/core.py", line 860, in execute self._c.execute(self, "begin transaction", None) File "/opt/zato/3.1.0/code/lib/python3.6/site-packages/pg8000/core.py", line 1903, in execute self._send_message(BIND, retval) File "/opt/zato/3.1.0/code/lib/python3.6/site-packages/pg8000/core.py", line 1911, in _send_message self._write(code) File "/usr/lib/python3.6/socket.py", line 604, in write return self._sock.send(b) File "/opt/zato/3.1.0/code/lib/python3.6/site-packages/gevent/_socket3.py", line 439, in send return _socket.socket.send(self._sock, data, flags) BrokenPipeError: [Errno 32] Broken pipe

dsuch commented 4 years ago

This exception is raised by the PostgreSQL library that your ODB uses, not by MS SQL.

BrokenPipeError most likely means that the connection to PostgreSQL is for some reason interrupted suddenly, possibly by the database itself, possibly by some firewall or a similar device.

dsuch commented 4 years ago

No activity, I am closing the ticket.