python errors from not using flask debugger.

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/91
Originally created by @jschatz1 on 2018-09-16 12:33:17

api_1           | Traceback (most recent call last):
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2309, in __call__
api_1           |     return self.wsgi_app(environ, start_response)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2295, in wsgi_app
api_1           |     response = self.handle_exception(e)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask_cors/extension.py", line 161, in wrapped_function
api_1           |     return cors_after_request(app.make_response(f(*args, **kwargs)))
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1741, in handle_exception
api_1           |     reraise(exc_type, exc_value, tb)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
api_1           |     raise value
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2292, in wsgi_app
api_1           |     response = self.full_dispatch_request()
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1815, in full_dispatch_request
api_1           |     rv = self.handle_user_exception(e)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask_cors/extension.py", line 161, in wrapped_function
api_1           |     return cors_after_request(app.make_response(f(*args, **kwargs)))
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1718, in handle_user_exception
api_1           |     reraise(exc_type, exc_value, tb)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
api_1           |     raise value
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1813, in full_dispatch_request
api_1           |     rv = self.dispatch_request()
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1799, in dispatch_request
api_1           |     return self.view_functions[rule.endpoint](**req.view_args)
api_1           |   File "/meltano/packages/api/controllers/repos.py", line 284, in explore_read
api_1           |     .filter(Explore.name == explore_name) \
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 2888, in first
api_1           |     ret = list(self[0:1])
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 2680, in __getitem__
api_1           |     return list(res)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 2988, in __iter__
api_1           |     return self._execute_and_instances(context)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3009, in _execute_and_instances
api_1           |     close_with_result=True)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3018, in _get_bind_args
api_1           |     **kw
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3000, in _connection_from_session
api_1           |     conn = self.session.connection(**kw)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1035, in connection
api_1           |     execution_options=execution_options)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1040, in _connection_for_bind
api_1           |     engine, execution_options)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 409, in _connection_for_bind
api_1           |     conn = bind.contextual_connect()
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2123, in contextual_connect
api_1           |     self._wrap_pool_connect(self.pool.connect, None),
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect
api_1           |     return fn()
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", line 403, in connect
api_1           |     return _ConnectionFairy._checkout(self)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", line 791, in _checkout
api_1           |     fairy = _ConnectionRecord.checkout(pool)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", line 532, in checkout
api_1           |     rec = pool._do_get()
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", line 1189, in _do_get
api_1           |     (self.size(), self.overflow(), self._timeout), code="3o7r")
api_1           | sqlalchemy.exc.TimeoutError: QueuePool limit of size 5 overflow 10 reached, connection timed out, timeout 30 (Background on this error at: http://sqlalche.me/e/3o7r)
api_1           | <IP_ADDRESS> - - [16/Sep/2018 12:01:33] "GET /projects/ HTTP/1.1" 500 -
api_1           | Traceback (most recent call last):
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2309, in __call__
api_1           |     return self.wsgi_app(environ, start_response)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2295, in wsgi_app
api_1           |     response = self.handle_exception(e)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask_cors/extension.py", line 161, in wrapped_function
api_1           |     return cors_after_request(app.make_response(f(*args, **kwargs)))
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1741, in handle_exception
api_1           |     reraise(exc_type, exc_value, tb)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
api_1           |     raise value
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2292, in wsgi_app
api_1           |     response = self.full_dispatch_request()
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1815, in full_dispatch_request
api_1           |     rv = self.handle_user_exception(e)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask_cors/extension.py", line 161, in wrapped_function
api_1           |     return cors_after_request(app.make_response(f(*args, **kwargs)))
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1718, in handle_user_exception
api_1           |     reraise(exc_type, exc_value, tb)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
api_1           |     raise value
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1813, in full_dispatch_request
api_1           |     rv = self.dispatch_request()
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1799, in dispatch_request
api_1           |     return self.view_functions[rule.endpoint](**req.view_args)
api_1           |   File "/meltano/packages/api/controllers/projects.py", line 14, in index
api_1           |     p = Project.query.first()
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 2888, in first
api_1           |     ret = list(self[0:1])
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 2680, in __getitem__
api_1           |     return list(res)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 2988, in __iter__
api_1           |     return self._execute_and_instances(context)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3009, in _execute_and_instances
api_1           |     close_with_result=True)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3018, in _get_bind_args
api_1           |     **kw
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3000, in _connection_from_session
api_1           |     conn = self.session.connection(**kw)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1035, in connection
api_1           |     execution_options=execution_options)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1040, in _connection_for_bind
api_1           |     engine, execution_options)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 409, in _connection_for_bind
api_1           |     conn = bind.contextual_connect()
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2123, in contextual_connect
api_1           |     self._wrap_pool_connect(self.pool.connect, None),
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect
api_1           |     return fn()
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", line 403, in connect
api_1           |     return _ConnectionFairy._checkout(self)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", line 791, in _checkout
api_1           |     fairy = _ConnectionRecord.checkout(pool)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", line 532, in checkout
api_1           |     rec = pool._do_get()
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", line 1189, in _do_get
api_1           |     (self.size(), self.overflow(), self._timeout), code="3o7r")
api_1           | sqlalchemy.exc.TimeoutError: QueuePool limit of size 5 overflow 10 reached, connection timed out, timeout 30 (Background on this error at: http://sqlalche.me/e/3o7r)
api_1           | <IP_ADDRESS> - - [16/Sep/2018 12:01:33] "GET /repos/models HTTP/1.1" 500 -
api_1           | <IP_ADDRESS> - - [16/Sep/2018 12:01:33] "GET /repos/explores/finance/bookings HTTP/1.1" 500 -
api_1           | Traceback (most recent call last):
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2309, in __call__
api_1           |     return self.wsgi_app(environ, start_response)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2295, in wsgi_app
api_1           |     response = self.handle_exception(e)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask_cors/extension.py", line 161, in wrapped_function
api_1           |     return cors_after_request(app.make_response(f(*args, **kwargs)))
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1741, in handle_exception
api_1           |     reraise(exc_type, exc_value, tb)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
api_1           |     raise value
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2292, in wsgi_app
api_1           |     response = self.full_dispatch_request()
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1815, in full_dispatch_request
api_1           |     rv = self.handle_user_exception(e)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask_cors/extension.py", line 161, in wrapped_function
api_1           |     return cors_after_request(app.make_response(f(*args, **kwargs)))
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1718, in handle_user_exception
api_1           |     reraise(exc_type, exc_value, tb)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
api_1           |     raise value
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1813, in full_dispatch_request
api_1           |     rv = self.dispatch_request()
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1799, in dispatch_request
api_1           |     return self.view_functions[rule.endpoint](**req.view_args)
api_1           |   File "/meltano/packages/api/controllers/repos.py", line 236, in models
api_1           |     models = Model.query.all()
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 2836, in all
api_1           |     return list(self)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 2988, in __iter__
api_1           |     return self._execute_and_instances(context)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3009, in _execute_and_instances
api_1           |     close_with_result=True)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3018, in _get_bind_args
api_1           |     **kw
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3000, in _connection_from_session
api_1           |     conn = self.session.connection(**kw)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1035, in connection
api_1           |     execution_options=execution_options)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1040, in _connection_for_bind
api_1           |     engine, execution_options)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 409, in _connection_for_bind
api_1           |     conn = bind.contextual_connect()
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2123, in contextual_connect
api_1           |     self._wrap_pool_connect(self.pool.connect, None),
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect
api_1           |     return fn()
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", line 403, in connect
api_1           |     return _ConnectionFairy._checkout(self)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", line 791, in _checkout
api_1           |     fairy = _ConnectionRecord.checkout(pool)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", line 532, in checkout
api_1           |     rec = pool._do_get()
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", line 1189, in _do_get
api_1           |     (self.size(), self.overflow(), self._timeout), code="3o7r")
api_1           | sqlalchemy.exc.TimeoutError: QueuePool limit of size 5 overflow 10 reached, connection timed out, timeout 30 (Background on this error at: http://sqlalche.me/e/3o7r)
api_1           | Traceback (most recent call last):
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2309, in __call__
api_1           |     return self.wsgi_app(environ, start_response)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2295, in wsgi_app
api_1           |     response = self.handle_exception(e)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask_cors/extension.py", line 161, in wrapped_function
api_1           |     return cors_after_request(app.make_response(f(*args, **kwargs)))
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1741, in handle_exception
api_1           |     reraise(exc_type, exc_value, tb)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
api_1           |     raise value
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2292, in wsgi_app
api_1           |     response = self.full_dispatch_request()
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1815, in full_dispatch_request
api_1           |     rv = self.handle_user_exception(e)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask_cors/extension.py", line 161, in wrapped_function
api_1           |     return cors_after_request(app.make_response(f(*args, **kwargs)))
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1718, in handle_user_exception
api_1           |     reraise(exc_type, exc_value, tb)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
api_1           |     raise value
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1813, in full_dispatch_request
api_1           |     rv = self.dispatch_request()
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1799, in dispatch_request
api_1           |     return self.view_functions[rule.endpoint](**req.view_args)
api_1           |   File "/meltano/packages/api/controllers/repos.py", line 284, in explore_read
api_1           |     .filter(Explore.name == explore_name) \
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 2888, in first
api_1           |     ret = list(self[0:1])
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 2680, in __getitem__
api_1           |     return list(res)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 2988, in __iter__
api_1           |     return self._execute_and_instances(context)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3009, in _execute_and_instances
api_1           |     close_with_result=True)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3018, in _get_bind_args
api_1           |     **kw
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3000, in _connection_from_session
api_1           |     conn = self.session.connection(**kw)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1035, in connection
api_1           |     execution_options=execution_options)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1040, in _connection_for_bind
api_1           |     engine, execution_options)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 409, in _connection_for_bind
api_1           |     conn = bind.contextual_connect()
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2123, in contextual_connect
api_1           |     self._wrap_pool_connect(self.pool.connect, None),
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect
api_1           |     return fn()
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", line 403, in connect
api_1           |     return _ConnectionFairy._checkout(self)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", line 791, in _checkout
api_1           |     fairy = _ConnectionRecord.checkout(pool)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", line 532, in checkout
api_1           |     rec = pool._do_get()
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", line 1189, in _do_get
api_1           |     (self.size(), self.overflow(), self._timeout), code="3o7r")
api_1           | sqlalchemy.exc.TimeoutError: QueuePool limit of size 5 overflow 10 reached, connection timed out, timeout 30 (Background on this error at: http://sqlalche.me/e/3o7r)
api_1           | <IP_ADDRESS> - - [16/Sep/2018 12:02:00] "GET /projects/ HTTP/1.1" 500 -
api_1           | Traceback (most recent call last):
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2309, in __call__
api_1           |     return self.wsgi_app(environ, start_response)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2295, in wsgi_app
api_1           |     response = self.handle_exception(e)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask_cors/extension.py", line 161, in wrapped_function
api_1           |     return cors_after_request(app.make_response(f(*args, **kwargs)))
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1741, in handle_exception
api_1           |     reraise(exc_type, exc_value, tb)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
api_1           |     raise value
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2292, in wsgi_app
api_1           |     response = self.full_dispatch_request()
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1815, in full_dispatch_request
api_1           |     rv = self.handle_user_exception(e)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask_cors/extension.py", line 161, in wrapped_function
api_1           |     return cors_after_request(app.make_response(f(*args, **kwargs)))
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1718, in handle_user_exception
api_1           |     reraise(exc_type, exc_value, tb)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
api_1           |     raise value
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1813, in full_dispatch_request
api_1           |     rv = self.dispatch_request()
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1799, in dispatch_request
api_1           |     return self.view_functions[rule.endpoint](**req.view_args)
api_1           |   File "/meltano/packages/api/controllers/projects.py", line 14, in index
api_1           |     p = Project.query.first()
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 2888, in first
api_1           |     ret = list(self[0:1])
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 2680, in __getitem__
api_1           |     return list(res)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 2988, in __iter__
api_1           |     return self._execute_and_instances(context)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3009, in _execute_and_instances
api_1           |     close_with_result=True)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3018, in _get_bind_args
api_1           |     **kw
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3000, in _connection_from_session
api_1           |     conn = self.session.connection(**kw)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1035, in connection
api_1           |     execution_options=execution_options)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1040, in _connection_for_bind
api_1           |     engine, execution_options)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 409, in _connection_for_bind
api_1           |     conn = bind.contextual_connect()
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2123, in contextual_connect
api_1           |     self._wrap_pool_connect(self.pool.connect, None),
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect
api_1           |     return fn()
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", line 403, in connect
api_1           |     return _ConnectionFairy._checkout(self)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", line 791, in _checkout
api_1           |     fairy = _ConnectionRecord.checkout(pool)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", line 532, in checkout
api_1           |     rec = pool._do_get()
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", line 1189, in _do_get
api_1           |     (self.size(), self.overflow(), self._timeout), code="3o7r")
api_1           | sqlalchemy.exc.TimeoutError: QueuePool limit of size 5 overflow 10 reached, connection timed out, timeout 30 (Background on this error at: http://sqlalche.me/e/3o7r)
api_1           | <IP_ADDRESS> - - [16/Sep/2018 12:02:00] "GET /repos/models HTTP/1.1" 500 -
api_1           | Traceback (most recent call last):
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2309, in __call__
api_1           |     return self.wsgi_app(environ, start_response)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2295, in wsgi_app
api_1           |     response = self.handle_exception(e)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask_cors/extension.py", line 161, in wrapped_function
api_1           |     return cors_after_request(app.make_response(f(*args, **kwargs)))
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1741, in handle_exception
api_1           |     reraise(exc_type, exc_value, tb)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
api_1           |     raise value
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2292, in wsgi_app
api_1           |     response = self.full_dispatch_request()
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1815, in full_dispatch_request
api_1           |     rv = self.handle_user_exception(e)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask_cors/extension.py", line 161, in wrapped_function
api_1           |     return cors_after_request(app.make_response(f(*args, **kwargs)))
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1718, in handle_user_exception
api_1           |     reraise(exc_type, exc_value, tb)
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
api_1           |     raise value
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1813, in full_dispatch_request
api_1           |     rv = self.dispatch_request()
api_1           |   File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 1799, in dispatch_request
api_1           |     return self.view_functions[rule.endpoint](**req.view_args)
api_1           |   File "/meltano/packages/api/controllers/repos.py", line 236, in models
api_1           |     models = Model.query.all()
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 2836, in all
api_1           |     return list(self)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 2988, in __iter__
api_1           |     return self._execute_and_instances(context)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3009, in _execute_and_instances
api_1           |     close_with_result=True)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3018, in _get_bind_args
api_1           |     **kw
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/query.py", line 3000, in _connection_from_session
api_1           |     conn = self.session.connection(**kw)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1035, in connection
api_1           |     execution_options=execution_options)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 1040, in _connection_for_bind
api_1           |     engine, execution_options)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 409, in _connection_for_bind
api_1           |     conn = bind.contextual_connect()
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2123, in contextual_connect
api_1           |     self._wrap_pool_connect(self.pool.connect, None),
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 2158, in _wrap_pool_connect
api_1           |     return fn()
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", line 403, in connect
api_1           |     return _ConnectionFairy._checkout(self)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", line 791, in _checkout
api_1           |     fairy = _ConnectionRecord.checkout(pool)
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", line 532, in checkout
api_1           |     rec = pool._do_get()
api_1           |   File "/usr/local/lib/python3.7/site-packages/sqlalchemy/pool.py", line 1189, in _do_get
api_1           |     (self.size(), self.overflow(), self._timeout), code="3o7r")
api_1           | sqlalchemy.exc.TimeoutError: QueuePool limit of size 5 overflow 10 reached, connection timed out, timeout 30 (Background on this error at: http://sqlalche.me/e/3o7r)
api_1           | <IP_ADDRESS> - - [16/Sep/2018 12:02:00] "GET /repos/explores/finance/bookings HTTP/1.1" 500 -

cc @austinpray

View 2 previous comments from the original issue on GitLab


Composite Issues With Vips::Image Format Float & Loader Buffer

Been noticing some horrible pixelation in my image composites and tracked it down to the image overlay passed to composite method. I am thinking it has something to do with the format. Is there a way I can tell a Vips::Image to be uchar vs float?
This is my image built with various ImageProcessing::Vips.source, resize, & compose methods.
overlay
# => #<Image 900x825 float, 4 bands, srgb>
overlay.get 'vips-loader'
# => "pngload_buffer"

This is the same image but saved to disc and read back in via Vips::Image.new_from_file
overlay2
# => #<Image 900x825 uchar, 4 bands, srgb>
overlay2.get 'vips-loader'
# => "pngload"

overlay.write_to_buffer('.png') == overlay2.write_to_buffer('.png')
# => true

Hello @metaskills,
You can cast images with .cast(:float), but I don't know if that will help. If you can make a small example that shows the problem, I could investigate, if you like.

I had a look and the IP gem is not selecting int convolution. Nice find!


Cube only support

FOREST currently assumes cubes are backed by NetCDF files. To be general and appeal to a wider audience it should be trivial to add full fledged iris.cube.Cube support

cube.coord('forecast_reference_time') can be used instead of the current netCDF4.Dataset approach

2019-10-02 14:55:44,548 Error running application handler <bokeh.application.handlers.directory.DirectoryHandler object at 0x2b5c7ffd6940>: [Errno -51] NetCDF: Unknown file format: b'umnsaa_mlppe071'
File "_netCDF4.pyx", line 1743, in netCDF4._netCDF4._ensure_nc_success:
 Traceback (most recent call last):
  File "/home/h03/frrn/miniconda3/envs/forest_cli/lib/python3.6/site-packages/bokeh/application/handlers/code_runner.py", line 179, in run
    exec(self._code, module.__dict__)
  File "/net/home/h03/frrn/software/github/forest/forest/main.py", line 718, in <module>
    main()
  File "/net/home/h03/frrn/software/github/forest/forest/main.py", line 126, in main
    locator = disk.Locator(args.files)
  File "/net/home/h03/frrn/software/github/forest/forest/disk.py", line 250, in __init__
    key = str(load_initial_time(path))
  File "/net/home/h03/frrn/software/github/forest/forest/disk.py", line 138, in __call__
    return self.netcdf4_strategy(path)
  File "/net/home/h03/frrn/software/github/forest/forest/disk.py", line 144, in netcdf4_strategy
    with netCDF4.Dataset(path) as dataset:
  File "netCDF4/_netCDF4.pyx", line 2123, in netCDF4._netCDF4.Dataset.__init__
  File "netCDF4/_netCDF4.pyx", line 1743, in netCDF4._netCDF4._ensure_nc_success
OSError: [Errno -51] NetCDF: Unknown file format: b'umnsaa_mlppe071'

It depends what you intended the scope of this issue to be, but for certain categories of data it is addressed by #180.


Create Filter that avoids returning all edges twice when running a full table scan

When running a MapReduce or Spark job over an entire Accumulo table, every edge will be returned twice as it is stored twice. This can be avoided by creating a Filter iterator that only returns true for one of the two keys that are created for an edge. This will require an additional method on AccumuloElementConverter which returns true for only one of the two keys associated to an edge.
Note that this is a different issue to the need to deduplicate when the same edge is returned twice from a query (e.g. because there is an edge A->B and both A and B were seeds for the query).

Closing as a solution to this already exists - use the RangeElementPropertyFilterIterator with the option to return outgoing edges only.


squares don't look right

It looks alright (but not perfect) from the Gnome terminal, even if the spaces are much wider than intended

This is pretty much a font rendering problem, there isn't much we can do from Lunicode. Even three years later, overlapping characters tend not to work properly. I am yet to come across a particular setup (correctly-prepared font file paired with capable renderer) that does overlapping correctly for all characters.


Fail to install istio and fail at installing Egress gateways

Bug description
I tried to install istio on my kubernetes cluster by following guide on https://istio.io/latest/docs/setup/getting-started/ , however , it failed at Egress gateway installing and reports the followings:
✘ Egress gateways encountered an error: failed to wait for resource: resources not ready after 5m0s: timed out waiting for the conditiont/istio-system/istio-ingressgateway, Deployment/istio-system/prometheus
Deployment/istio-system/istio-egressgateway
✘ Ingress gateways encountered an error: failed to wait for resource: resources not ready after 5m0s: timed out waiting for the conditionometheus
Deployment/istio-system/istio-ingressgateway
✘ Addons encountered an error: failed to wait for resource: resources not ready after 5m0s: timed out waiting for the condition
Deployment/istio-system/prometheus
- Pruning removed resources                                                                                Error: failed to apply manifests: errors occurred during operation

I check the pods under istio-system namespace, and three of them have problems:
egressgateway, ingressgateway and prometheus
NAME                                    READY   STATUS    RESTARTS   AGE
grafana-54b54568fc-7sr9k                1/1     Running   0          85m
istio-egressgateway-765f77ff94-qbx7g    0/1     Running   0          49m
istio-ingressgateway-85bcfb5c74-cl6dq   0/1     Running   0          85m
istio-tracing-9dd6c4f7c-wcm5v           1/1     Running   0          85m
istiod-d754b48bd-4j9wt                  1/1     Running   0          85m
kiali-d45468dc4-rgg6h                   1/1     Running   0          85m
prometheus-756f8c9898-vzmfj             1/2     Running   0          85m

And it's all due to a same question : readiness probe fail. Here is the events in "kubectl describe"of those three pods.
egressgateway:
Events:
  Type     Reason     Age                   From                            Message
  ----     ------     ----                  ----                            -------
  Normal   Scheduled  <unknown>             default-scheduler               Successfully assigned istio-system/istio-egressgateway-765f77ff94-qbx7g to sandbox-test-worker01
  Normal   Pulled     55m                   kubelet, sandbox-test-worker01  Container image "docker.io/istio/proxyv2:1.6.2" already present on machine
  Normal   Created    55m                   kubelet, sandbox-test-worker01  Created container istio-proxy
  Normal   Started    55m                   kubelet, sandbox-test-worker01  Started container istio-proxy
  Warning  Unhealthy  55m (x22 over 55m)    kubelet, sandbox-test-worker01  Readiness probe failed: Get http://<IP_ADDRESS>:15021/healthz/ready: dial tcp <IP_ADDRESS>:15021: connect: connection refused
  Warning  Unhealthy  53s (x1622 over 54m)  kubelet, sandbox-test-worker01  Readiness probe failed: HTTP probe failed with statuscode: 503

ingressgateway:
Events:
  Type     Reason     Age                 From                            Message
  ----     ------     ----                ----                            -------
  Normal   Scheduled  <unknown>           default-scheduler               Successfully assigned istio-system/istio-ingressgateway-85bcfb5c74-49bsm to sandbox-test-worker01
  Normal   Pulled     77s                 kubelet, sandbox-test-worker01  Container image "docker.io/istio/proxyv2:1.6.2" already present on machine
  Normal   Created    77s                 kubelet, sandbox-test-worker01  Created container istio-proxy
  Normal   Started    76s                 kubelet, sandbox-test-worker01  Started container istio-proxy
  Warning  Unhealthy  32s (x22 over 74s)  kubelet, sandbox-test-worker01  Readiness probe failed: Get http://<IP_ADDRESS>:15021/healthz/ready: dial tcp <IP_ADDRESS>:15021: connect: connection refused

prometheus:
Events:
  Type     Reason     Age                  From                            Message
  ----     ------     ----                 ----                            -------
  Normal   Scheduled  <unknown>            default-scheduler               Successfully assigned istio-system/prometheus-756f8c9898-fhwpv to sandbox-test-worker01
  Normal   Pulled     115s                 kubelet, sandbox-test-worker01  Container image "docker.io/prom/prometheus:v2.15.1" already present on machine
  Normal   Created    115s                 kubelet, sandbox-test-worker01  Created container prometheus
  Normal   Started    115s                 kubelet, sandbox-test-worker01  Started container prometheus
  Normal   Pulling    115s                 kubelet, sandbox-test-worker01  Pulling image "docker.io/istio/proxyv2:1.6.2"
  Normal   Pulled     108s                 kubelet, sandbox-test-worker01  Successfully pulled image "docker.io/istio/proxyv2:1.6.2"
  Normal   Created    108s                 kubelet, sandbox-test-worker01  Created container istio-proxy
  Normal   Started    108s                 kubelet, sandbox-test-worker01  Started container istio-proxy
  Warning  Unhealthy  73s (x18 over 107s)  kubelet, sandbox-test-worker01  Readiness probe failed: HTTP probe failed with statuscode: 5

Expected behavior
install succeed and report like this:
✔ Istio core installed
✔ Istiod installed
✔ Egress gateways installed
✔ Ingress gateways installed
✔ Addons installed
✔ Installation complete

Version (include the output of istioctl version --remote and kubectl version and helm version if you used Helm)
kubenets version: v1.18.2 ( Flannel )
istio version: v1.6.2
Environment where bug was observed (cloud vendor, OS, etc)
os: ubuntu 18.04
And here attachs my ifconfig in case it is needed, due to the http_get problem I hope it can help:
cni0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet <IP_ADDRESS>  netmask <IP_ADDRESS>  broadcast <IP_ADDRESS>
        inet6 fe80::f424:3eff:fec2:3af2  prefixlen 64  scopeid 0x20<link>
        ether f6:24:3e:c2:3a:f2  txqueuelen 1000  (Ethernet)
        RX packets 63290953  bytes<PHONE_NUMBER> (9.6 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 65853120  bytes<PHONE_NUMBER>2 (53.4 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

datapath: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1376
        inet6 fe80::f4c2:e8ff:fe44:5bb7  prefixlen 64  scopeid 0x20<link>
        ether f6:c2:e8:44:5b:b7  txqueuelen 1000  (Ethernet)
        RX packets 1281  bytes 66050 (66.0 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 400  bytes 28096 (28.0 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet <IP_ADDRESS>  netmask <IP_ADDRESS>  broadcast <IP_ADDRESS>
        inet6 fe80::42:77ff:fe8d:b54b  prefixlen 64  scopeid 0x20<link>
        ether 02:42:77:8d:b5:4b  txqueuelen 0  (Ethernet)
        RX packets 428  bytes 33344 (33.3 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 505  bytes 854464 (854.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet <IP_ADDRESS>  netmask <IP_ADDRESS>  broadcast <IP_ADDRESS>
        inet6 fe80::e654:e8ff:fe76:2f63  prefixlen 64  scopeid 0x20<link>
        inet6 fdcd:55c4:4289:0:e654:e8ff:fe76:2f63  prefixlen 64  scopeid 0x0<global>
        inet6 fdcd:55c4:4289::109e  prefixlen 128  scopeid 0x0<global>
        ether e4:54:e8:76:2f:63  txqueuelen 1000  (Ethernet)
        RX packets 138022931  bytes<PHONE_NUMBER>5 (74.7 GB)
        RX errors 0  dropped 1  overruns 0  frame 0
        TX packets 128090007  bytes<PHONE_NUMBER>9 (40.4 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 16  memory 0xe5400000-e5420000

flannel.1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet <IP_ADDRESS>  netmask <IP_ADDRESS>  broadcast <IP_ADDRESS>
        inet6 fe80::3483:a8ff:fefe:245  prefixlen 64  scopeid 0x20<link>
        ether 36:83:a8:fe:02:45  txqueuelen 0  (Ethernet)
        RX packets 158321  bytes 60945682 (60.9 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 267186  bytes 44528991 (44.5 MB)
        TX errors 0  dropped 45 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet <IP_ADDRESS>  netmask <IP_ADDRESS>
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 14050387  bytes 991978024 (991.9 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 14050387  bytes 991978024 (991.9 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth45419292: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet6 fe80::902f:11ff:fef4:bb48  prefixlen 64  scopeid 0x20<link>
        ether 92:2f:11:f4:bb:48  txqueuelen 0  (Ethernet)
        RX packets 15741  bytes 39695150 (39.6 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 16477  bytes 1337290 (1.3 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth0e263d40: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet6 fe80::d86a:cff:fe6a:ad94  prefixlen 64  scopeid 0x20<link>
        ether da:6a:0c:6a:ad:94  txqueuelen 0  (Ethernet)
        RX packets 13387  bytes 7699537 (7.6 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 16984  bytes 1730922 (1.7 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth1860e598: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet6 fe80::4429:bbff:fe82:68c1  prefixlen 64  scopeid 0x20<link>
        ether 46:29:bb:82:68:c1  txqueuelen 0  (Ethernet)
        RX packets 193152  bytes 40045719 (40.0 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 175455  bytes 29394198 (29.3 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth24e8bce4: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet6 fe80::fcf1:3cff:fe33:f723  prefixlen 64  scopeid 0x20<link>
        ether fe:f1:3c:33:f7:23  txqueuelen 0  (Ethernet)
        RX packets 1223  bytes 606880 (606.8 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1459  bytes 177926 (177.9 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth68380ead: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet6 fe80::e09a:eeff:fead:cda2  prefixlen 64  scopeid 0x20<link>
        ether e2:9a:ee:ad:cd:a2  txqueuelen 0  (Ethernet)
        RX packets 782592  bytes 168329656 (168.3 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 808556  bytes 295003781 (295.0 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth6c966bb7: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet6 fe80::4076:a6ff:fe5d:1e2d  prefixlen 64  scopeid 0x20<link>
        ether 42:76:a6:5d:1e:2d  txqueuelen 0  (Ethernet)
        RX packets 450028  bytes 217728783 (217.7 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 561718  bytes 88852256 (88.8 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth881a706e: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet6 fe80::8478:1ff:feb3:fa7a  prefixlen 64  scopeid 0x20<link>
        ether 86:78:01:b3:fa:7a  txqueuelen 0  (Ethernet)
        RX packets 242668  bytes 31817366 (31.8 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 259972  bytes 129011140 (129.0 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth9cfefabd: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet6 fe80::408e:67ff:fe0b:8932  prefixlen 64  scopeid 0x20<link>
        ether 42:8e:67:0b:89:32  txqueuelen 0  (Ethernet)
        RX packets 2429  bytes 929674 (929.6 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3126  bytes 360671 (360.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vethccf3ceeb: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet6 fe80::b4fc:fcff:feba:6a3  prefixlen 64  scopeid 0x20<link>
        ether b6:fc:fc:ba:06:a3  txqueuelen 0  (Ethernet)
        RX packets 4291  bytes 414103 (414.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4402  bytes 9397395 (9.3 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vetheaf11c08: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1450
        inet6 fe80::c0a7:2cff:fe1c:7210  prefixlen 64  scopeid 0x20<link>
        ether c2:a7:2c:1c:72:10  txqueuelen 0  (Ethernet)
        RX packets 3326  bytes 405328 (405.3 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3336  bytes 309516 (309.5 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vethwe-bridge: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1376
        inet6 fe80::7c1e:62ff:fef6:795e  prefixlen 64  scopeid 0x20<link>
        ether 7e:1e:62:f6:79:5e  txqueuelen 0  (Ethernet)
        RX packets 28696121  bytes<PHONE_NUMBER> (2.7 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 29402034  bytes<PHONE_NUMBER> (4.3 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vethwe-datapath: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1376
        inet6 fe80::6851:d1ff:fe14:77d4  prefixlen 64  scopeid 0x20<link>
        ether 6a:51:d1:14:77:d4  txqueuelen 0  (Ethernet)
        RX packets 29402034  bytes<PHONE_NUMBER> (4.3 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 28696121  bytes<PHONE_NUMBER> (2.7 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vxlan-6784: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 65535
        inet6 fe80::b88a:eff:fe6c:bfd2  prefixlen 64  scopeid 0x20<link>
        inet6 fe80::b88a:eff:fe6c:bfd2  prefixlen 64  scopeid 0x20<link>
        ether ba:8a:0e:6c:bf:d2  txqueuelen 1000  (Ethernet)
        RX packets 104  bytes 91624 (91.6 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 65  bytes 89440 (89.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

weave: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1376
        inet <IP_ADDRESS>  netmask <IP_ADDRESS>  broadcast <IP_ADDRESS>
        inet6 fe80::7408:15ff:fe58:a3dd  prefixlen 64  scopeid 0x20<link>
        ether 76:08:15:58:a3:dd  txqueuelen 1000  (Ethernet)
        RX packets 3971358  bytes 388493430 (388.4 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3994965  bytes<PHONE_NUMBER> (2.8 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

can you add the logs

I am getting the same exact error--any update here?

I have the same erorr and not able to procced. Egress, Ingress gateway are not installed successfully and hence the set up does not work

I got the same in istio-1.7.2 =/
Egress pod describe:
Events:
Type     Reason     Age                 From               Message

Normal   Scheduled  102s                default-scheduler  Successfully assigned istio-system/istio-egressgateway-c999fffd6-lxchm to k8s-02
Normal   Pulled     100s                kubelet            Container image "docker.io/istio/proxyv2:1.7.2" already present on machine
Normal   Created    99s                 kubelet            Created container istio-proxy
Normal   Started    99s                 kubelet            Started container istio-proxy
Warning  Unhealthy  55s (x22 over 97s)  kubelet            Readiness probe failed: Get "http://<IP_ADDRESS>:15021/healthz/ready": dial tcp <IP_ADDRESS>:15021: connect: connection refused

Egress and Ingress fail in Istio 1.7.2 with connection refused for port 15021

have the same erorr!

You can try to manually download the required image files before installing

You can try to manually download the required image files before installing

Thank you very much!
I have resoled this issue by updated the linux kernal (CentOS Linux release 8.4.2105:  4.18.0-305.19.1.el8_4.x86_64 ==> 5.14.11-1.el8.elrepo.x86_64) .
But I don't know why, just refer to https://discuss.istio.io/t/how-to-install-ingress-gateway-well-using-istio-1-9-0-in-centos7/9707/5


Feature/database

Description of the Change
Benefits
Verification Process

Pull Request Test Coverage Report for Build 15

8 of 25 (32.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-25.0%) to 50.0%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/Database.py
8
25
32.0%

Totals

Change from base Build 12:
-25.0%

Covered Lines:
19

Relevant Lines:
38

💛  - Coveralls


Add designate to ci components config

When I grep for "manila" I see there entries in 3 files:

plugins/module_utils/repo_setup/get_hash/constants.py
plugins/module_utils/repo_setup/get_hash/config.yaml
tests/unit/get_hash/fakes.py

I think you miss one here?


Cannot ping from inside the unikernel

I've created an unikernel that only prints it's network interface and pings a remote host (my laptop). The printf works fine but the unikernel does not ping the host.
The cpp code is bellow:

when i do the ping from my laptop it works (tcpdump from bridge43, bridge that connects the unikernel to its host):

Hey! I looked into your issue. The reason this is happening is because your passing the IP address as a string.
First of all - can you verify that this snippet works if you replace it: inet.icmp().ping(inet.gateway()); (this works for me).
Pinging with a string results in a DNS resolve as seen in icmp4.cpp:
  void ICMPv4::ping(IP4::addr ip)
  { send_request(ip, ICMP_type::ECHO, 0); }

  void ICMPv4::ping(IP4::addr ip, icmp_func callback, int sec_wait)
  { send_request(ip, ICMP_type::ECHO, 0, callback, sec_wait); }

  void ICMPv4::ping(const std::string& hostname) {
    inet_.resolve(hostname, [this] (IP4::addr a, Error err) {
      if (!err and a != IP4::ADDR_ANY)
        ping(a);
    });
  }

I'm running dnsmasq on my host so it the string variant do work for me as well.
Wireshark:

26	09:23:25.850603	<IP_ADDRESS>	<IP_ADDRESS>	DNS	68	Standard query 0x0001 A <IP_ADDRESS>
27	09:23:25.850679	<IP_ADDRESS>	<IP_ADDRESS>	DNS	84	Standard query response 0x0001 A <IP_ADDRESS> A <IP_ADDRESS>
28	09:23:25.853385	<IP_ADDRESS>	<IP_ADDRESS>	ICMP	90	Echo (ping) request  id=0x0000, seq=0/0, ttl=64 (reply in 29)
29	09:23:25.853397	<IP_ADDRESS>	<IP_ADDRESS>	ICMP	90	Echo (ping) reply    id=0x0000, seq=0/0, ttl=64 (request in 28)

I guess we could consider having our own DNS client check if the string is an IP address before trying to resolve, and if it is, just return the parsed IP. But I can't say if this is weird behavior or not(?).

Seems fine to me, will simplify many instances of code that doesn't need to be fast


[WiP] Move github credentials to the database

This change is part of a larger effort to allow GARM to eventually scale out to multiple instances. The goal is to move as much of the config as possible to the database, allowing a single source of truth for state among multiple instances.
This change also allows us to properly enforce relations between entities (repos, orgs, enterprises), github installations (GHES/github.com) and credentials. This way, we don't end up in an inconsistent state if the credentials are removed from the config, but they're still referenced for an entity in the database.
As part of this change, we aim to maintain as much of the existing user facing API as possible, and also automatically migrate the existing config credentials to the database. The migration is done once, when GARM detects that the needed DB tables are not there. After that, migration is skipped and any credential handling will need to be done using the CLI.
Credentials are scoped to users, and must have a unique name. Different users will be able to create credentials with the same name. The same user will not be able to create multiple credentials with the same name. Although GARM doesn't support multiple users (yet), it may do so in the future. Given the pain of moving the credentials to the DB, this was a decision that was meant to spare us the pain of refactoring later.
Credentials are still referenced by name when assigning them to the entity, but internally we query the DB for a user/credentials combo, given that we have the user ID already stored for the authenticated user, in the context we pass along throughout the code base.
A few more commits are needed to expose an API for handling credentials and to add tests for all the new bits.

Pfu. The generated code is really bumping up the line count :sweat_smile:


How do I handle encoding and decoding an element and attribute with the same name but different types?

How do I handle encoding and decoding an element and attribute with the same name but different types?
<!ELEMENT barline (segno?, coda?)>
<!ATTLIST barline
    segno CDATA #IMPLIED
    coda CDATA #IMPLIED
>
<!ELEMENT segno EMPTY>
<!ATTLIST segno
    %optional-unique-id;
    %smufl;
>
<!ELEMENT coda EMPTY>
<!ATTLIST coda
    %optional-unique-id;
    %smufl;
>
<!ENTITY % smufl
	"smufl %smufl-glyph-name; #IMPLIED">
<!ENTITY % optional-unique-id
	"id ID #IMPLIED">
<!ENTITY % smufl-glyph-name "NMTOKEN">

Example XML
<barline coda="name-1">
    <coda id="1" smufl="coda-char" />
</barline>

Here is what I have done so far, but doesn't work:
struct Segno: Codable, Equatable, DynamicNodeDecoding, DynamicNodeEncoding {
    var id: String? // %optional-unique-id
    var smufl: String? // %smufl

    enum CodingKeys: String, CodingKey {
            case id
            case smufl
    }
    static func nodeDecoding(for key: CodingKey) -> XMLDecoder.NodeDecoding {
            switch key { default: return .attribute }
    }
	static func nodeEncoding(for key: CodingKey) -> XMLEncoder.NodeEncoding {
            switch key { default: return .attribute }
    }
}

struct Coda: Codable, Equatable, DynamicNodeDecoding, DynamicNodeEncoding {
    var id: String? // %optional-unique-id
    var smufl: String? // %smufl

    enum CodingKeys: String, CodingKey {
            case id
            case smufl
    }
    static func nodeDecoding(for key: CodingKey) -> XMLDecoder.NodeDecoding {
            switch key { default: return .attribute }
    }
	static func nodeEncoding(for key: CodingKey) -> XMLEncoder.NodeEncoding {
            switch key { default: return .attribute }
    }
}

struct Barline: Codable, Equatable, DynamicNodeDecoding, DynamicNodeEncoding {
    var segnoE: Segno?
    var codaE: Coda?
    var segno: String? // CDATA #IMPLIED
    var coda: String? // CDATA #IMPLIED

    enum CodingKeys: String, CodingKey {
        case segno
        case coda
    }
    static func nodeDecoding(for key: CodingKey) -> XMLDecoder.NodeDecoding {
            switch key {
            	case CodingKeys.coda: return .attribute
            	case CodingKeys.segno: return .attribute
            	default: return .element
            }
	}
	static func nodeEncoding(for key: CodingKey) -> XMLEncoder.NodeEncoding {
            switch key {
            	case CodingKeys.coda: return .attribute
            	case CodingKeys.segno: return .attribute
            	default: return .element
            }
	}
}

For Codable, one property is with one key. In you sample, coda in attribute and element shares the same key.  Two properties are with one key. That is a conflict. I don't think there is a way for this other than solving the conflict first.

For Codable, one property is with one key. In you sample, coda in attribute and element shares the same key. Two properties are with one key. That is a conflict. I don't think there is a way for this other than solving the conflict first.

This is a valid XML schema that I can't change. I need to parse it.

For Codable, one property is with one key. In you sample, coda in attribute and element shares the same key. Two properties are with one key. That is a conflict. I don't think there is a way for this other than solving the conflict first.

This is a valid XML schema that I can't change. I need to parse it.

You don't need to change the xml file. Just add another layer.

read the xml as String.
replacing all "<coda" to something like "<codaE"
convert the String to Data.
use XMLCoder decode the data.


Framerate dropping when moving mouse around the screen

Already reported ? *

[X] I have searched the existing open and closed issues.

Regression?
Yes
System Info and Version
 System/Version info
Hyprland, built from branch  at commit 0c7a7e2d569eeed9d6025f3eef4ea0690d90845d  ().
Date: 2024-10-06
Tag: , commits: 5299
built against aquamarine 0.4.1

flags: (if any)

System Information:
System name: Linux
Node name: audev
Release: 6.10.9-zen1
Version: #1-NixOS ZEN SMP PREEMPT_DYNAMIC Tue Jan  1 00:00:00 UTC 1980

GPU information:
2d:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD103 [GeForce RTX 4080] [10de:2704] (rev a1) (prog-if 00 [VGA controller])
NVRM version: NVIDIA UNIX x86_64 Kernel Module  560.35.03  Fri Aug 16 21:39:15 UTC 2024

os-release: ANSI_COLOR="1;34"
BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
BUILD_ID="24.11.20241006.c31898a"
DOCUMENTATION_URL="https://nixos.org/learn.html"
HOME_URL="https://nixos.org/"
ID=nixos
IMAGE_ID=""
IMAGE_VERSION=""
LOGO="nix-snowflake"
NAME=NixOS
PRETTY_NAME="NixOS 24.11 (Vicuna)"
SUPPORT_URL="https://nixos.org/community.html"
VERSION="24.11 (Vicuna)"
VERSION_CODENAME=vicuna
VERSION_ID="24.11"

plugins:

======Config-Start======

Config File: /home/dan/.config/hypr/hyprland.conf: Read Succeeded
exec-once = /nix/store/4a86f7kq7757fjwf5zzwk0jxixn4330n-dbus-1.14.10/bin/dbus-update-activation-environment --systemd DISPLAY HYPRLAND_INSTANCE_SIGNATURE WAYLAND_DISPLAY XDG_CURRENT_DESKTOP && systemctl --user stop hyprland-session.target && systemctl --user start hyprland-session.target
$base=0xff1e1e2e
$baseAlpha=ff1e1e2e
$blue=0xff89b4fa
$blueAlpha=ff89b4fa
$crust=0xff11111b
$crustAlpha=ff11111b
$flamingo=0xfff2cdcd
$flamingoAlpha=fff2cdcd
$green=0xffa6e3a1
$greenAlpha=ffa6e3a1
$lavender=0xffb4befe
$lavenderAlpha=ffb4befe
$mantle=0xff181825
$mantleAlpha=ff181825
$maroon=0xffeba0ac
$maroonAlpha=ffeba0ac
$mauve=0xffcba6f7
$mauveAlpha=ffcba6f7
$mod=SUPER
$overlay0=0xff6c7086
$overlay0Alpha=ff6c7086
$overlay1=0xff7f849c
$overlay1Alpha=ff7f849c
$overlay2=0xff9399b2
$overlay2Alpha=ff9399b2
$peach=0xfffab387
$peachAlpha=fffab387
$pink=0xfff5c2e7
$pinkAlpha=fff5c2e7
$red=0xfff38ba8
$redAlpha=fff38ba8
$rosewater=0xfff5e0dc
$rosewaterAlpha=fff5e0dc
$sapphire=0xff74c7ec
$sapphireAlpha=ff74c7ec
$sky=0xff89dceb
$skyAlpha=ff89dceb
$subtext0=0xffa6adc8
$subtext0Alpha=ffa6adc8
$subtext1=0xffbac2de
$subtext1Alpha=ffbac2de
$surface0=0xff313244
$surface0Alpha=ff313244
$surface1=0xff45475a
$surface1Alpha=ff45475a
$surface2=0xff585b70
$surface2Alpha=ff585b70
$teal=0xff94e2d5
$tealAlpha=ff94e2d5
$text=0xffcdd6f4
$textAlpha=ffcdd6f4
$yellow=0xfff9e2af
$yellowAlpha=fff9e2af
animations {
  bezier=myBezier, 0.05, 0.9, 0.1, 1.05
  animation=windows, 1, 7, myBezier
  animation=windowsOut, 1, 7, default, popin 80%
  animation=border, 1, 10, default
  animation=borderangle, 1, 8, default
  animation=fade, 1, 7, default
  animation=workspaces, 1, 6, default
  enabled=yes
}

decoration {
  blur {
    enabled=yes
    new_optimizations=yes
    passes=1
    size=3
  }
  col.shadow=rgba(1a1a1aee)
  drop_shadow=yes
  rounding=8
  shadow_range=4
  shadow_render_power=3
}

dwindle {
  pseudotile=yes
  smart_split=true
}

general {
  border_size=5
  col.active_border=$peach $pink $blue 45deg
  col.inactive_border=$surface0
  gaps_in=5
  gaps_out=10
  layout=dwindle
}

gestures {
  workspace_swipe=off
}

group {
  groupbar {
    col.active=$pink
    col.inactive=$surface0
    gradients=no
  }
  col.border_active=$blue $green 45deg
  col.border_inactive=$surface0
}

input {
  follow_mouse=1
  kb_layout=us,no
  kb_options=grp:caps_switch
  sensitivity=0
}
bind=$mod, Q, killactive,
bind=$mod, M, exit,
bind=$mod SHIFT, F, togglefloating,
bind=$mod, space, exec, rofi -show drun -show-icons
bind=$mod, o, exec, firefox
bind=$mod, k, exec, kitty
bind=$mod, P, pseudo,
bind=$mod, J, togglesplit,
bind=$mod, G, togglegroup,
bind=$mod SHIFT, G, moveoutofgroup
bind=$mod, comma, changegroupactive, b
bind=$mod, period, changegroupactive, f
bind=$mod, F, fullscreen,
bind=$mod, grave, changegroupactive, f
bind=$mod SHIFT, grave, changegroupactive, b
bind=$mod, left, movefocus, l
bind=$mod, right, movefocus, r
bind=$mod, up, movefocus, u
bind=$mod, down, movefocus, d
bind=$mod SHIFT, left, movewindow, l
bind=$mod SHIFT, right, movewindow, r
bind=$mod SHIFT, up, movewindow, u
bind=$mod SHIFT, down, movewindow, d
bind=$mod, 1, workspace, 1
bind=$mod, 2, workspace, 2
bind=$mod, 3, workspace, 3
bind=$mod, 4, workspace, 4
bind=$mod, 5, workspace, 5
bind=$mod SHIFT, 1, movetoworkspace, 1
bind=$mod SHIFT, 2, movetoworkspace, 2
bind=$mod SHIFT, 3, movetoworkspace, 3
bind=$mod SHIFT, 4, movetoworkspace, 4
bind=$mod SHIFT, 5, movetoworkspace, 5
bind=, XF86AudioPlay, exec, playerctl play-pause
bind=, XF86AudioNext, exec, playerctl next
bind=, XF86AudioPrev, exec, playerctl previous
bind=$mod, mouse_down, workspace, e+1
bind=$mod, mouse_up, workspace, e-1
bind=, code:66, pass, ^discord$
bind=, Print, exec, grim -g "$(slurp)"
bindm=$mod, mouse:272, movewindow
bindm=$mod, mouse:273, resizewindow
exec-once=waybar
exec-once=dunst
exec-once=hyprctl setcursor oreo_spark_pink_bordered_cursors 24
layerrule=noanim, rofi
monitor=DP-1, 5120x1440@240, 0x0, 1
monitor=Unknown-1, disable
windowrulev2=syncfullscreen 0,class:(brave-browser)
windowrulev2=syncfullscreen 0,class:(chromium-browser)
windowrulev2=syncfullscreen 0,class:(firefox)

======Config-End========

Description
After updating to 0.44.0 I'm getting major framerate issues. When moving the mouse around in any window but especially from window to window the frame rate goes sub 10 for the entire screen.
I only have one ultrawide monitor.
How to reproduce
I went backwards in the commit log to find that it is this https://github.com/hyprwm/Hyprland/commit/e6cf643f5ab1c1545fb858ab1fd9d7538ef9e0f3 that is introducing the issue for me. The commit before works fine
Crash reports, logs, images, videos
https://github.com/user-attachments/assets/a2f3d643-3830-4671-a956-8c234e7b6e95

I also have this issue but according to the wiki, hardware cursor on nvidia isn't officially supported.
just use
cursor {
    no_hardware_cursors = true
}

or
cursor {
    allow_dumb_copy = true
}

this is a limitation with nvidia's hardware that we can't atm do much about.

It was working without specifying no_hardware_cursors in Sway as well (for all I know it still is).

likely falls back to sw cursors by default, which IIRC is the default in hl too.

just use
cursor {
   no_hardware_cursors = true
}

correct, should fix the problem

cursor {
    no_hardware_cursors = true
}

Just started having this issue on 0.44 with nvidia, guess i was just on borrowed time lmao, above fixed xx

Not important but worth to mention is that when you run a screencast through xdg-desktop-portal-hyprland, the frame rate is normalized back. So any screencast (OBS / Discord) fixes the issue :-/

if you screencast with the cursor it disables hw cursors, that's why.

I have same issue playing fullscreen games. At some random moment game starts freezing when mouse move. Freezing whole screen. The problem started to appear after updating to 0.44-0.45 version. Disabling hardware cursors doesn't help. I use amdgpu.


README.md: add build-on-remote

Flag was added in https://github.com/numtide/nixos-anywhere/pull/86

bors merge


Any way to customize week day font?

With version 1.2.3 you could customize the font of the Week Days using calendarAppearance.weekDayTextFont, but it doesn't look like there is any replacement method for this in 2.0.0?

Look in the Example project.
https://github.com/jonathantribouharet/JTCalendar/blob/master/Example/Example/CustomViewController.m
Line 145 the method calendarBuildWeekDayView.


Add westygarth's file

created a branch, created a file and made a commit, and opened a pull request


Realm: HTTP Transport: Exception executing get https://realm.mongodb.com/api/client/v2.0/app/{appId}/location

What happened?
Hello everyone, first of all, great job for everything you do at Realm MongoDB
I am getting this error after upgrading to version 1.6.0 on Android, not tested on iOS yet.
Realm: HTTP Transport: Exception executing get https://realm.mongodb.com/api/client/v2.0/app/{appId}/location: HandshakeException: Handshake error in client (OS Error: CERTIFICATE_VERIFY_FAILED: certificate has expired(handshake.cc:393))
I/flutter (24774): AppException: non-zero custom status code considered fatal, status code: 999
By the way, I am using a custom token from AWS Cognito service as credentials to login to Realm, I do not know if its relevant.
Maybe it is related to the change added in this new version (provided in the image) on the enhancements section.

Repro steps

Just upgrade from version 1.5.0 to version 1.6.0.
After upgrading you will see the error on this line await app.logIn(credentials).

Version
3.16.0
What Atlas Services are you using?
Both Atlas Device Sync and Atlas App Services
What type of application is this?
Flutter Application
Client OS and version
Android
Code snippets
if (user == null) {
    debugPrint('User is not already authenticated');
    debugPrint('creating jwt credentials with token: $token');
    Credentials credentials = Credentials.jwt(token);

    debugPrint('before app login');
    user = await app.logIn(credentials);
  } else {
    debugPrint('User is already authenticated');
  }

Stacktrace of the exception/crash you're getting
2023-11-17T16:22:28.429781: [ERROR] Realm: HTTP Transport: Exception executing get https://realm.mongodb.com/api/client/v2.0/app/{appId}/location: HandshakeException: Handshake error in client (OS Error:
I/flutter (24774): 	CERTIFICATE_VERIFY_FAILED: certificate has expired(handshake.cc:393))
I/flutter (24774): AppException: non-zero custom status code considered fatal, status code: 999

Relevant log output
No response

Thanks for this report. We'll investigate, but in the meantime, you can try and workaround this by explicitly creating the http client used by Realm. You can pass it in the AppConfiguration constructor like:
final appConfig = AppConfiguration(..., httpClient: HttpClient());

I have the same issue: my application works correctly on emulators, but on some physical devices, it stops working and throws the following error message:
"AppException: non-zero custom status code considered fatal, status code: 999".
I have conducted tests on devices with Android 11 and 12, where the issue occurs, while on a device with Android 13, the application works without any problems.
It is important to note that this error situation occurs on the Android platform, while on iOS devices, the application works correctly.
After implementing the code provided by nirinchev, the application functions properly.

Thanks for this report. We'll investigate, but in the meantime, you can try and workaround this by explicitly creating the http client used by Realm. You can pass it in the AppConfiguration constructor like:
final appConfig = AppConfiguration(..., httpClient: HttpClient());

First of all, great job for everything you guys doing at the Flutter Realm MongoDB.
I'm getting the same problem here after upgrading to 1.6.0 and the solution from nirinchev worked to fix the problem.

A quick update here: this appears to be related to https://github.com/dart-lang/http/issues/627. The https certificates for realm.mongodb.com are issued by Let's Encrypt and as such are dual signed with their new ISRG Root X1 and IdenTrust's DST Root CA X3. The interesting bit is that the DST Root CA X3 is expired, but due to the fact older android devices don't validate the expiration of Root CA's, they consider it valid. This allows Let's Encrypt certificates to be trusted by both old Android devices and new ones. It appears this works just fine when we use the default HttpClient without an explicit SecurityContext, but when we use the SecurityContext and add the ISRG Root X1 to it, the certificate validation fails due to the expired DST Root CA X3. It's not yet clear to us why this is happening and we're working through the Dart code to understand what is wrong. If we don't have a reasonable solution by the end of the week, we'll revert the change in https://github.com/realm/realm-dart/pull/1378.

DST is expected to completely deprecated in the next couple quarters here -
https://letsencrypt.org/2023/07/10/cross-sign-expiration.html
And the MongoDB cloud intends to remove them from our endpoints. Please plan accordingly

When it gets removed, it'll actually resolve this issue. I don't think we can wait for it though 😞


Can we avoid .nonempty() changing the inferred input type?

Take below example:
import { z } from 'zod';

const schema = z.number().array().nonempty();

// expected type to be number[], but instead is [number, ...number[]]
type inputType = z.input<typeof schema>;

// simplified for demo
const formValidation: (userInput: inputType) => boolean = (userInput) => {
  // ....
  return true;
};

// user input of either correct array or incorrect empty array...
const formData: number[] = Math.random() % 2 ? [2] : [];

// this should typecheck, but doesn't because the .nonemtpy() call pollutes the inferred input type.
const isValid = formValidation(formData);

Is this a bug? or intentional?
I can imagine zod being intentionally like this, as this behaviour is the one that utilises TS to the limit, but I would expect that this is the opposite of what the usual use case would demand.
Is there some elegant solution to this, that doesn't involve breaking typesafety with multiple schema definitions and/or forced casts especially when the array is actually in a nested zod object schema, so I can't easily just create a simple and a chained .nonemtpy variant?

TypeScript is doing what it's supposed to do here:
const schema = z.number().array().nonempty()

type NonEmptyArray = z.input<typeof schema>
// type NonEmptyArray = [number, ...number[]]

const foo = ( x: NonEmptyArray ) => { }
foo( [ 42 ] ) // ok
foo( [] )
//   ^^
// Argument of type '[]' is not assignable to parameter of type '[number, ...number[]]'.
//   Source has 0 element(s) but target requires 1.

If you truly want a compile time non empty array, then this is correct. But it seems you don't want your types to match your runtime values. Is that correct?

Note that I am talking about z.input and not z.infer. I do want the end type to match the type described by the schema.
What I am surprised by is that .nonemtpy() doesn't behave like .transform(...) and modifies the inferred input type as well.
Since then I realized that I can easily achieve what I need with using .refine(...) and .transform(...) instead of .nonempty() and check for minimum number of elements and signifying that the output type is a not empty array that way.


Improve README

Looks great.

I don't see the point (pun intended) of merging this.

It was so lovely to see this new README on my screen.


Better webpack 4 support

using tapAsync instead to get similar as old plugin API.
tests are passing. Can we have a new release after this one? thanks 🥂

@goldhand any chance we can have this merged and a new release this week?  Thanks 🍻

Sure! I need to get back in the contributing groove so I'll get this in be end of the week

Thanks @goldhand 💪


Database locked error

So I ran the script using bash, and it said Error: database is locked. I think I'm running it wrong.

Thanks for reporting the issue.
I don't think you're running it wrong - the syntax is quite easy
 ./pihole_adlist_tool
As pihole and the script both access gravity.db and pihole-FTL.db there might be concurrency access attempts.
Does the output say which database is locked?
Steps you could try:

run the script again (maybe it was just bad timing for you and pihole accessing the databases at the same time)
run with fewer days to analyze  ./pihole_adlist_tool -d 30
increase the timeout (time to wait if a database lock is detected in line 122
sqlite3 -cmd ".timeout 5000" $TEMP_DB << EOF
last resort: copy pihole-FTL.db and gravity.db to another place and change the paths at the beginning of the script accordingly

Closed due to no further details were provided.


Modularize projection

It's not always necessary to synthesize the full projection. Modularize the current projection code so that Tape/Symbols/Computer/Instructions can also all be generated on demand rather than together.

Not currently applicable.


can call UWP from win32 ?

I see a lot of example wrote by c#
can you make an example call from UWP from C++

Hi!
Yes, we are working on it and will publish it soon.
Thanks,
Vlad

We added the requested sample - https://github.com/Microsoft/DesktopBridgeToUWP-Samples/tree/master/Samples/AppServiceBridgeSample_C%2B%2B
Hope it helps, closing the issue.
Thanks,
Vlad


NewStartRugProject should add node_modules

AddTypeScript no longer includes the node_modules, but for the easiest possible startup, we should include them in NewStartRugProject.
Depends on #33

#35 does this


excluding specific file on the task build?

I have this folder containing typescript files and I want to build this and exclude some files on the build. How do you do that?

Hey,
You can pass options to task.source which then get passed into node-glob. This means that you can do:
task.source('src/*.ts', { ignore:'src/foo.ts' })


A version without built-in locales?

Hi!
Thanks for working on the lib and a new version. I am wondering if it's possible to exclude built-in locales (en and ch_ZN) from the bundle. In my use case, I generate code bundles per language and I manually register the correct language in the build process. It'd be good to remove the built-in ones when a different language is used, to reduce the bundle size. Anyway, not a big deal, but what do you think?
Best regards,
Alex

If remove build-in locales in locases.ts, the esm / commonjs will contains none build-in locales.
The plan is:

remove build-in locales in locases.ts
add core.ts to export api
export core api, and register build-in locales


Next minor

@yawkat updating to Micronaut 3.3.4 causes several tests to fail. Could you look into it?

@sdelamo done


Auth source changes

log changes to changelog
select ou by typeahead (not tree filter)
increase size of non-auth scroller


Removed optional parameter from Window.createImageBitmap factory

TypeScript Version:  3.1.1

Search Terms:
createImageBitmap, ImageBitmapOptions, Image Bitmap, lib.dom
Code
const bitmap1 = createImageBitmap(img, { premultiplyAlpha: 'none' })
const bitmap2 = createImageBitmap(img, 0, 0, img.width, img.height, { premultiplyAlpha: 'none' })

Expected behavior:
Should compile and create Promise<ImageBitmap> in both cases.
Actual behavior:
Doesn't compile since last optional options param was removed from lib.dom.d.ts between 3.0.3 and 3.1.0. Although ImageBitmapOptions are still present in lib.dom.d.ts.
Playground Link:
http://www.typescriptlang.org/play/#src=new Promise<HTMLImageElement>((resolve) %3D> {
    const image %3D new Image()
    image.src %3D 'http%3A%2F%2Fwww.typescriptlang.org%2Fassets%2Fimages%2Flogo_nocircle.svg'
    image.onload %3D () %3D> { resolve(image) }
}).then((image)%20%3D%3E%20%7B%0D%0A%20%20%20%20return%20createImageBitmap(image%2C%200%2C%200%2C%20image.width%2C%20image.height%2C%20%7B%0D%0A%20%20%20%20%20%20%20%20premultiplyAlpha%3A%20'none'%0D%0A%20%20%20%20%7D)%0D%0A%7D)
It was removed in commit https://github.com/Microsoft/TypeScript/commit/ee25cdecbca49b2b5a290ecd65224f425b1d6a9c with vendor specific types (even though it's not vendor-specific).
Even though not all browsers supports last optional param, it's still part of living standard.

Created a PR in TSJS-lib-generator, I think it should fix this problem.

This seems to be working for me now, no more errors when I run the following (at least in a web worker):
const cImageData: ImageData = ...;
const cOpts: ImageBitmapOptions = { ... };

const cRenderedImage: ImageBitmap = await createImageBitmap(
                cImageData,
                0,
                0,
                10,
                10,
                cOpts);

Just looking at old issues; this was fixed in #37464.


some websites can extract valid values, while some websites can't

When I use Website agent，Why some websites can extract valid values, while some websites can't, the following prompts appear "Values extracted: []". There are four examples in the attachment. The first, second, and third are not working properly, and the fourth is working properly. What is the reason for this？Thank you for your reply.
problem.pdf

Values extracted: [] means your selector did not match anything on that site. http://selectorgadget.com/ is very useful to get CSS selectors matching elements without having to dig through the source.

When I crawled the articles on these two pages, I still couldn't get them. Can you give it a try, and if it
succeeds, please show me the code. thank you so much.
http://www.pbc.gov.cn/goutongjiaoliu/113456/113469/index.html
http://www.news.cn/politics/gd.htm

It looks like the websites are using JavaScript to generate the content. Huginn itself is not able to scrape pages build via Javascript, but you can use fulldom-server or https://phantomjscloud.com/ to do extraction based on the final page that has been generated by the JavaScript.


signMessageV2 xxx.match is not a function

hey , everyone!
When I pass no private key in the argument, privateKey is resolved false, and the function in tronweb executes into the regular expression match method with an error. xxx.is not a function

What's your environment? Please show me your code so I can figure out what the problem is.

import TronWeb from 'tronweb';

export const SHASTA_BLOCK_CHAIN = 'https://api.shasta.trongrid.io';
export const MAIN_NET = 'https://api.trongrid.io';

const fullNode = MAIN_NET;
const solidityNode = MAIN_NET;
const eventServer = MAIN_NET;
const tronGrid = 'xxxxx';

export const tronWebIns = new TronWeb(fullNode, solidityNode, eventServer);
tronWebIns.setHeader({ 'TRON-PRO-API-KEY': tronGrid });
tronWebIns.setHeader({
 'access-control-allow-origin': '*',
 'Access-Control-Allow-Headers': 'Content-Type, Authorization',
 'Access-Control-Allow-Methods': '*',
});

const hex = tronWebIns.toHex(msg);
const sign = await tronWebIns.trx.signMessageV2(hex);

because i didn't pass the privateKey,   Is this a required entry?
TypeError: e2.match is not a function

Because you did't pass privateKey in instantiating function, you need to pass privateKey to signMessageV2 as the second argument.

Because you did't pass privateKey in instantiating function, you need to pass privateKey to signMessageV2 as the second argument.

thank you for your reply！Can i get user's privateKey ？Maybe It’s unsafe。

if i use window.tronWeb.trx.signMessageV2 ?  The private key of the current account in the browser plug-in will be automatically obtained,  Can I understand this?

The plugin provided tronweb is instantiated with your priveteKey, so you don't have to provide tronweb.

The plugin provided tronweb is instantiated with your priveteKey, so you don't have to provide privateKey.


docs: Add Depot to GitHub integration page

IMO this should be part of a revamped "Github Actions" page. Once we revamp that page and highlight it more (which is something we need to do no matter what, and soon), it will get a lot of traffic. Relegating "Depot" to a separate page, makes it harder to discover Depot unless you already know about it and are explicitly looking for it. Sure we could link to the Depot page from the revamped GHA page, but that feels less seamless and will lead to duplication.
TLDR: the best version of this page IMO is a revamped Github Actions page, which just happens to prominently feature Depot prominently.

TLDR: the best version of this page IMO is a revamped Github Actions page, which just happens to prominently feature Depot prominently.

Thanks for the feedback! I've updated the GitHub page as suggested with tabs for each runner type and removed the standalone Depot page.
One comment/question: currently the page is titled "GitHub" and not "GitHub Actions", because it also includes other (non-Actions) integration examples, such as pushing to GHCR and using PRs as function arguments. I'm assuming that we will continue with this, because it wouldn't make sense to have two separate integrations pages ie. "GitHub" and "GitHub Actions", but please let me know if you think otherwise.

One comment/question: currently the page is titled "GitHub" and not "GitHub Actions", because it also includes other (non-Actions) integration examples, such as pushing to GHCR and using PRs as function arguments. I'm assuming that we will continue with this, because it wouldn't make sense to have two separate integrations pages ie. "GitHub" and "GitHub Actions", but please let me know if you think otherwise.

I think "Integrating Dagger in your CI" is an important enough topic that it deserves its own section in the docs. And from there, "Github Actions" would be a natural page under that section.
In that context, yes I do think that "Integrating Dagger in Github Actions" deserves its own page separate from other Github integrations. I would design that page with the "Integrating with CI" top-level section in mind. We don't need that top-level section right now, but we need to be able to drop it in later, without breaking the GHA (and therefore Depot) flow.

Taking another look now.

What's the rationale to keep two distincts "Github" and "Github Actions" sections? They feel redundant.

What's the rationale to keep two distincts "Github" and "Github Actions" sections? They feel redundant.

It's discussed above in https://github.com/dagger/dagger/pull/8768#issuecomment-2455340031

It's discussed above in #8768 (comment)

Sure. It still feels confusing, but we can always change it later. LGTM overall 👍

I guess the confusion is from keeping them both in the same generic "Integrations" section, right? @vikram-dagger do you want to move CI integrations into their own section now? We can worry about adding more content to that section later. wdyt @samalba will that help with the confusion? I think @vikram-dagger initially planned to do that later to save time here.

I guess the confusion is from keeping them both in the same generic "Integrations" section, right? @vikram-dagger do you want to move CI integrations into their own section now? We can worry about adding more content to that section later. wdyt @samalba will that help with the confusion? I think @vikram-dagger initially planned to do that later to save time here.

I've created https://github.com/dagger/dagger/pull/8866 for the new section. If that helps, then we can merge it and I will rebase this PR.


Emit BOOL properties as bitfields

This will make Pinterest models smaller in the heap, which is useful since they live for the life of the application. This changes only the model, not the short lived builders, to use bitfields. It requires special handling of boolean properites throughout the process.
In Pinterest, PIPin has 25 BOOLs (currently stored as 200 bytes, which will only take 4 bytes afterwards), & PIUser has 40 (currently stored as 320 bytes, and will take 8 bytes afterwards). There may be even more wins, simply by grouping all the BOOLs near each other. If the layout of a class is a pointer, followed by a BOOL, followed by a pointer, the 64 bit alignment of fields will cause that BOOL to actually be 8 bytes!

Ok - Can you add a test for object equality?

Ok - Can you add a test for object equality?

Well it would have compiled. it was an issue with the getter not being generated, and other merge conflict issues. I'm not exactly sure how to test since it was generating incomplete stuff due to a merge conflict that was not properly resolved.

Ok - Can you add a test for object equality?

Well it would have compiled. it was an issue with the getter not being generated, and other merge conflict issues. I'm not exactly sure how to test since it was generating incomplete stuff due to a merge conflict that was not properly resolved.

Please see #219 for backfilled tests.


disable "uglifyPure" mode by default

unfortunately this feature seems to dramatically inflate the
amount of time babel takes to process files... perhaps there is
an unintended loop happening or something of the like
fixes #126

Let's get rid of this :tada:


Unexpected behavior of "class:" clause when used with "while:" or "optional: true"

OrientDB Version: 2.2.14
Java Version:  OpenJDK 8
OS: Linux
Expected behavior
In a MATCH query, a class: Bar clause should be evaluated after any while: ... or optional: true clauses, and should behave indistinguishably from a where: (@this instanceof Bar) clause. This is consistent with the specification of MATCH and instanceof in the docs. Two concrete situations:

If a MATCH step is marked optional, and a particular traversal finds no vertex for that MATCH step, the class: ... clause should be ignored (exactly as the where: clause is ignored) and the result should contain null for that MATCH step.
In a MATCH step with while: ..., the while: is resolved before the class: clause -- some number of iterations are performed as the while: directs, and then the resulting vertices are tested for conformance with the class: clause.

Actual behavior
class: Bar does not behave the same way as where: (@this instanceof Bar). Specifically:

Inside an optional MATCH step, in some cases class: Bar causes empty results to be returned, whereas where: (@this instanceof Bar) returns results with null for the optional step.
In MATCH steps with while: clauses, class: Bar causes the while: traversal to stop at the first vertex which is not a subclass of Bar, whereas where: (@this instanceof Bar) iterates fully and simply does not return non-Bar vertices in the end. In other words, with a while: depth of 4, for a set of vertices connected as: Bar -> Bar -> Foo -> Bar, using class: will only return the first two Bars whereas using the where: approach will return all three Bars.

Steps to reproduce
Setup:
CREATE CLASS Base EXTENDS V
CREATE CLASS Foo EXTENDS Base
CREATE CLASS Bar EXTENDS Base

CREATE VERTEX Foo SET name = 'foo1'
CREATE VERTEX Foo SET name = 'foo2'
CREATE VERTEX Foo SET name = 'foo3'
CREATE VERTEX Bar SET name = 'bar1'
CREATE VERTEX Bar SET name = 'bar2'
CREATE VERTEX Bar SET name = 'bar3'

CREATE EDGE E FROM (SELECT FROM Foo WHERE name = 'foo1') TO (SELECT FROM Bar WHERE name = 'bar2')
CREATE EDGE E FROM (SELECT FROM Foo WHERE name = 'foo2') TO (SELECT FROM Bar WHERE name = 'bar3')
CREATE EDGE E FROM (SELECT FROM Bar WHERE name = 'bar1') TO (SELECT FROM Foo WHERE name = 'foo2')
CREATE EDGE E FROM (SELECT FROM Bar WHERE name = 'bar2') TO (SELECT FROM Foo WHERE name = 'foo3')

Foo vertices are only connected to Bar vertices, and vice versa. Edges always go from number i to i+1.
Unintuitive optional: true behavior with class:
The following query returns one row with end set to null, as expected (the last edge is Bar to Bar, which doesn't exist):
MATCH {
    class: Foo,
    where: (name = 'foo1'),
    as: start
}.out('E') {
    where: (name = 'bar2'),
    as: mid
}.out('E') {
    optional: true,
    where: (@this INSTANCEOF Bar)
    as: end
}
RETURN $matches

However, using class: instead of the where: returns no rows:
MATCH {
    class: Foo,
    where: (name = 'foo1'),
    as: start
}.out('E') {
    where: (name = 'bar2'),
    as: mid
}.out('E') {
    class: Bar,
    optional: true,
    as: end
}
RETURN $matches

Unintuitive while: behavior with class:
The following query returns two rows, as expected (one with start = mid and one with mid two hops away from start):
MATCH {
    class: Foo,
    where: (name = 'foo1'),
    as: start
}.out('E') {
    while: ($depth < 4),
    where: (@this INSTANCEOF Foo),
    as: mid
}
RETURN $matches

However, using class: instead of the where: returns only one row, the one with start = mid:
MATCH {
    class: Foo,
    where: (name = 'foo1'),
    as: start
}.out('E') {
    class: Foo,
    while: ($depth < 4),
    as: mid
}
RETURN $matches

Hi @obi1kenobi
Thank you very much for reporting, I'll try to take it a look asap. If you have a repro, for sure it will help
Thanks
Luigi

Updated the top post with a repro. Thanks for looking into it!

Hey @luigidellaquila, just checking in to see if you were able to find something here! As always, let me know if I can help with anything :)

Hi @obi1kenobi
Sorry, I still had no chance to look into it (a bit of trouble for the release of 3.0 M1...) I'll try to do it in next few days
Thanks
Luigi

Hi @obi1kenobi
I just pushed a fix for the first case. I'm still analyzing the second one, but I think it should not be hard to fix
Thanks
Luigi

Hi @luigidellaquila, thanks for looking into this!
I was looking at your commit that fixed the first case, and I noticed you replaced the if (filter == null || filter.matchesFilters(startingPoint, ctx)) { with a more thorough check in the depth == 1 case. The else case just below has that same line, so shouldn't that one be replaced in a similar fashion? Otherwise, it seems like we might be able to hit the same bug in different circumstances.

yes, probably you are right, but that part also impacts the deep traversal, that is your second case.
I'll let you know soon about the final fix
Thanks
Luigi

Hi @obi1kenobi
I just pushed a fix and a test case for this issue
Closing, thanks!
Luigi

Great, thank you! Looking forward to the next release!


Issue with ACI RP

Azure Container Instances Resource Provider sends Event Grid events every 10 minutes. Waiting for the fix.

seems to be working now in West Europe region


Add DopplerVelocityLogSystem plugin

🎉 New feature
Summary

This patch adds a system plugin to pick DVL sensors. Needs https://github.com/gazebosim/gz-sensors/pull/290.
Test it

TBD
Checklist

[x] Signed all commits for DCO
[ ] Added tests
[ ] Added example and/or tutorial
[ ] Updated documentation (as needed)
[ ] Updated migration guide (as needed)
[ ] Consider updating Python bindings (if the library has them)
[ ] codecheck passed (See contributing)
[ ] All tests passed (See test coverage)
[ ] While waiting for a review on your PR, please help review another open pull request to support the maintainers

Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining Signed-off-by messages.

First iteration. Once we've agreed on https://github.com/gazebosim/gz-sensors/pull/290, I'll go ahead and add integration tests.

Check whitespaces.

@iche033 @caguero I'm getting:
[Err] [SceneManager.cc:217] Visual: [horizontal_plane] already exists
237: [Err] [SceneManager.cc:217] Visual: [tethys] already exists
237: [Err] [BaseStorage.hh:927] Another item already exists with name: sun

in tests. Isn't the rendering engine cleaned up on test fixture destruction?

@osrf-jenkins run tests please

Made a few changes in bdfe547 which should fix compilation.
There are a couple other issues left:

INTEGRATION_dvl_system crashes.

if I run the tests individually, they do not crash but DVLTest.BottomTracking fails

gz-sim core adds a new dependency on gz-sensors

I'm not sure if we want to do that. To workaround the issue, we would need to have a generic EnvironmentalData struct in gz sim and provide a function to convert between gz-sim and gz-sensors EnvironmentalData structs

if I run the tests individually, they do not crash but DVLTest.BottomTracking and DVLTest.WaterMassTracking fail

Worked around crash by splitting up tests into individual files. Currently rendering does not cleanup properly in between tests.
Also fixed DVLTest.BottomTracking test
DVLTest.WaterMassTracking is still failing. I'll probably need help from someone with knowledge on DVL for this. Test failure:

dvl_system_water_mass_tracking.cc:133: Failure
The difference between expectedLinearVelocityEstimate.X() and linearVelocityEstimate.X() is 0.50119416839480213, which exceeds kVelocityTolerance, where
expectedLinearVelocityEstimate.X() evaluates to -0.49920351475518465,
linearVelocityEstimate.X() evaluates to -1.0003976831499868, and
kVelocityTolerance evaluates to 0.10000000000000001.

/home/ian/code/gz_h_ws/src/gz-sim/test/integration/dvl_system_water_mass_tracking.cc:135: Failure
The difference between expectedLinearVelocityEstimate.Y() and linearVelocityEstimate.Y() is 1.4996016879686576, which exceeds kVelocityTolerance, where
expectedLinearVelocityEstimate.Y() evaluates to -1.0003978462872014,
linearVelocityEstimate.Y() evaluates to 0.49920384168145615, and
kVelocityTolerance evaluates to 0.10000000000000001.

gz-sim core adds a new dependency on gz-sensors

removed dependency on gz-sensors in core edf0959. One todo suggestion is to create the generic EnvironmentalData structure in sdformat and make gz-sensors and gz-sim use that data structure.

Made more fixes in fbd8783

Fixed applying linear/angular velocity commands in body fixed frame (instead of world frame which has no effect) in Testfixture's ModelManipulator.
Fixed DVL tests by computing the expected linear velocity in the correct reference frame
Disabled applying angular velocities to the AUV in tests

If angular velocities were applied, the linear velocity estimates produced by the DVL sensor were found to be different from the expected values. I don't know if it's an issue with the test or an actual bug in the DVL sensor implementationin gz-sensors. The tests in gz-sensors also do not test this scenario. I added a todo note for this.

The tests are passing now with the caveat mentioned in the last bullet point.

ok I'm at the point that I think I could use a hand from people who are familiar with the DVL sensor implementation.
If I enable setting angular velocity on the AUV in the water mass tracking test by uncommenting this line, the test fails:
/home/ian/code/gz_h_ws/src/gz-sim/test/integration/dvl_system_water_mass_tracking.cc:182: Failure
The difference between expectedLinearVelocityEstimate.X() and linearVelocityEstimate.X() is 0.31949900784986629, which exceeds kVelocityTolerance, where
expectedLinearVelocityEstimate.X() evaluates to -1.7163285450741428,
linearVelocityEstimate.X() evaluates to -1.3968295372242765, and
kVelocityTolerance evaluates to 0.10000000000000001.
/home/ian/code/gz_h_ws/src/gz-sim/test/integration/dvl_system_water_mass_tracking.cc:184: Failure
The difference between expectedLinearVelocityEstimate.Y() and linearVelocityEstimate.Y() is 1.023310004056881, which exceeds kVelocityTolerance, where
expectedLinearVelocityEstimate.Y() evaluates to -0.78063882907783577,
linearVelocityEstimate.Y() evaluates to -1.8039488331347169, and
kVelocityTolerance evaluates to 0.10000000000000001.

Maybe @arjo129 or @hidmic can shed some light on where or what the problem could be?

ok tests are now passing after changes in a91ff9e!
The maths are correct on the gz-sensors side. The problems were:

Test computes the expected velocities using values from the wrong timestep. I updated the test to retrieve all model properties at the time that corresponds to the timestamp on the dvl message
Ocassionally due to race condition between rendering and physics, there DVL system was passing a world state with incorrect timestamp to gz-sensors. Fixed by making sure SetWorldState is called right before render update.

This PR is ready.

CI is now working after mernging with main. Builds look good, merging!


How to use prop_assert_eq in a helper test function?

Let's suppose I have a helper function designed to test a specific implementation of a trait.
fn test_trait<T: MyTrait>() { /* ... */ }

proptest! {
  #[test]
  fn test_struct1() {
    test_trait::<Struct1>();
  }

  #[test]
  fn test_struct2() {
    test_trait::<Struct2>();
  }
}

What is the correct way to call prop_assert_eq! in the helper function?

Did you end up figuring out how to structure things? Is there anything we can help with?


Upload file

Is your feature request related to a problem? Please describe.
Upload a file from frontend to S3.
Wait for #165

Closed with #168