h icon indicating copy to clipboard operation
h copied to clipboard

Getting error while installing via docker

Open suyashdixit opened this issue 4 years ago • 2 comments

Hello all, I am beginner so please bear with me. I am trying to install h server using the docker and this installation guide: https://h.readthedocs.io/en/v0.4.0/INSTALL.html

These are the commands I ran to run docker containers:

docker run --name postgresql-container -p 5432:5432 -e POSTGRES_PASSWORD=Shree786 -d postgres

docker run -d -p 9200:9200 -p 9300:9300 --name elasticsearch nickstenning/elasticsearch-icu 

docker run -d --name nsqd -p 4150:4150 -p 4151:4151 nsqio/nsq /nsqd

docker run -d -p 6379:6379 --name redis redis 

docker run -d --name mail -p 25:25 -e MAIL_PORT_25_TCP=tcp://172.17.0.11:25 svendowideit/ambassador


docker run -d --env APP_URL=http://127.0.0.1:8000 --env SECRET_KEY=GNGsZlxst8sa++tBSDYzTpwdpD1QEIBjAfHubAY/9r26aZjtudgmxl81NOPTst0gBn7hjyAqyZE7q7meNfpijA --env ELASTICSEARCH_INDEX=hypothesis --env ELASTICSEARCH_URL=172.17.0.7:9200 --env MAIL_PORT=25 --env MAIL_DEFAULT_SENDER=127.0.0.1:25 -p 8000:8000 -p 5000:5000 \
             -e DATABASE_URL=postgresql://postgres:[email protected]/postgres \
             --link elasticsearch:elasticsearch \
             --link nsqd:nsqd \
             --link redis:redis \
             hypothesis/hypothesis

It runs the container but in the logs I see this:

websocket (stderr)   | During handling of the above exception, another exception occurred:
websocket (stderr)   | 
websocket (stderr)   | Traceback (most recent call last):
websocket (stderr)   |   File "/usr/local/lib/python3.8/site-packages/kombu/utils/functional.py", line 344, in retry_over_time
websocket (stderr)   |     return fun(*args, **kwargs)
websocket (stderr)   |   File "/usr/local/lib/python3.8/site-packages/kombu/connection.py", line 874, in _connection_factory
websocket (stderr)   |     self._connection = self._establish_connection()
websocket (stderr)   |   File "/usr/local/lib/python3.8/site-packages/kombu/connection.py", line 809, in _establish_connection
websocket (stderr)   |     conn = self.transport.establish_connection()
websocket (stderr)   |   File "/usr/local/lib/python3.8/site-packages/kombu/transport/pyamqp.py", line 130, in establish_connection
websocket (stderr)   |     conn.connect()
websocket (stderr)   |   File "/usr/local/lib/python3.8/site-packages/amqp/connection.py", line 314, in connect
websocket (stderr)   |     self.transport.connect()
websocket (stderr)   |   File "/usr/local/lib/python3.8/site-packages/amqp/transport.py", line 78, in connect
websocket (stderr)   |     self._connect(self.host, self.port, self.connect_timeout)
websocket (stderr)   |   File "/usr/local/lib/python3.8/site-packages/amqp/transport.py", line 146, in _connect
websocket (stderr)   |     raise (e
websocket (stderr)   |   File "/usr/local/lib/python3.8/site-packages/amqp/transport.py", line 162, in _connect
websocket (stderr)   |     self.sock.connect(sa)
websocket (stderr)   |   File "/usr/local/lib/python3.8/site-packages/gevent/_socketcommon.py", line 607, in connect
websocket (stderr)   |     raise _SocketError(err, strerror(err))
websocket (stderr)   | ConnectionRefusedError: [Errno 111] Connection refused
worker (stderr)      | [2021-05-11 15:06:13,970: ERROR/MainProcess] consumer: Cannot connect to amqp://guest:**@127.0.0.1:5672//: [Errno 111] Connection refused.
worker (stderr)      | Trying again in 32.00 seconds... (16/100)

But when I open localhost:5000/login it does show me the login page. So I tried making an account but it game me error that something went wrong.

and here are the logs on signup:

PARAMETERS


web (stderr)         | 


web (stderr)         | NestedMultiDict([('__formid__', 'deform'), ('csrf_token', 'a9abf1391c09486ba402d75fcfa11f90'), ('username', 'admin'), ('email', '[email protected]'), ('password', '******'), ('privacy_accepted', 'true'), ('comms_opt_in', 'true')])


web (stderr)         | 


web (stderr)         | 


web (stderr)         | UNAUTHENTICATED USER


web (stderr)         | 


web (stderr)         | None


web (stderr)         | 


web (stderr)         | Traceback (most recent call last):


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1770, in _execute_context


web (stderr)         |     self.dialect.do_execute(


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 717, in do_execute


web (stderr)         |     cursor.execute(statement, parameters)


web (stderr)         | psycopg2.errors.UndefinedTable: relation "user" does not exist


web (stderr)         | LINE 2: FROM "user" 


web (stderr)         |              ^


web (stderr)         | 


web (stderr)         | 


web (stderr)         | The above exception was the direct cause of the following exception:


web (stderr)         | 


web (stderr)         | Traceback (most recent call last):


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/pyramid_exclog/__init__.py", line 134, in exclog_tween


web (stderr)         |     response = handler(request)


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/pyramid_sanity/tweens.py", line 35, in tween


web (stderr)         |     return check(request, handler, registry)


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/pyramid_sanity/tweens.py", line 110, in ascii_safe_redirects_tween_factory


web (stderr)         |     response = handler(request)


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/pyramid/router.py", line 147, in handle_request


web (stderr)         |     response = _call_view(


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/sentry_sdk/integrations/pyramid.py", line 90, in sentry_patched_call_view


web (stderr)         |     return old_call_view(registry, request, *args, **kwargs)


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/pyramid/view.py", line 683, in _call_view


web (stderr)         |     response = view_callable(context, request)


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/pyramid/config/views.py", line 169, in __call__


web (stderr)         |     return view(context, request)


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/pyramid/config/views.py", line 188, in attr_view


web (stderr)         |     return view(context, request)


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/pyramid/config/views.py", line 214, in predicate_wrapper


web (stderr)         |     return view(context, request)


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/pyramid/viewderivers.py", line 436, in rendered_view


web (stderr)         |     result = view(context, request)


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/pyramid/viewderivers.py", line 116, in _class_requestonly_view


web (stderr)         |     response = getattr(inst, attr)()


web (stderr)         |   File "/var/lib/hypothesis/h/views/account_signup.py", line 47, in post


web (stderr)         |     appstruct = self.form.validate(self.request.POST.items())


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/deform/field.py", line 762, in validate


web (stderr)         |     return self.validate_pstruct(pstruct)


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/deform/field.py", line 797, in validate_pstruct


web (stderr)         |     appstruct = self.schema.deserialize(cstruct)


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/colander/__init__.py", line 2347, in deserialize


web (stderr)         |     appstruct = self.typ.deserialize(self, cstruct)


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/colander/__init__.py", line 827, in deserialize


web (stderr)         |     return self._impl(node, cstruct, callback)


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/colander/__init__.py", line 782, in _impl


web (stderr)         |     sub_result = callback(subnode, subval)


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/colander/__init__.py", line 825, in callback


web (stderr)         |     return subnode.deserialize(subcstruct)


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/colander/__init__.py", line 2381, in deserialize


web (stderr)         |     self.validator(self, appstruct)


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/colander/__init__.py", line 255, in __call__


web (stderr)         |     validator(node, value)


web (stderr)         |   File "/var/lib/hypothesis/h/accounts/schemas.py", line 53, in unique_username


web (stderr)         |     user = models.User.get_by_username(request.db, value, request.default_authority)


web (stderr)         |   File "/var/lib/hypothesis/h/models/user.py", line 332, in get_by_username


web (stderr)         |     session.query(cls)


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/query.py", line 2750, in first


web (stderr)         |     return self.limit(1)._iter().first()


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/query.py", line 2834, in _iter


web (stderr)         |     result = self.session.execute(


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/orm/session.py", line 1677, in execute


web (stderr)         |     result = conn._execute_20(statement, params or {}, execution_options)


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1582, in _execute_20


web (stderr)         |     return meth(self, args_10style, kwargs_10style, execution_options)


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line 320, in _execute_on_connection


web (stderr)         |     return connection._execute_clauseelement(


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1451, in _execute_clauseelement


web (stderr)         |     ret = self._execute_context(


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1813, in _execute_context


web (stderr)         |     self._handle_dbapi_exception(


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1994, in _handle_dbapi_exception


web (stderr)         |     util.raise_(


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 211, in raise_


web (stderr)         |     raise exception


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 1770, in _execute_context


web (stderr)         |     self.dialect.do_execute(


web (stderr)         |   File "/usr/local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 717, in do_execute


web (stderr)         |     cursor.execute(statement, parameters)


web (stderr)         | sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedTable) relation "user" does not exist


web (stderr)         | LINE 2: FROM "user" 


web (stderr)         |              ^


web (stderr)         | 


web (stderr)         | [SQL: SELECT "user".username AS user_username, "user".id AS user_id, "user".authority AS user_authority, "user".display_name AS user_display_name, "user".description AS user_description, "user".location AS user_location, "user".uri AS user_uri, "user".orcid AS user_orcid, "user".admin AS user_admin, "user".staff AS user_staff, "user".nipsa AS user_nipsa, "user".sidebar_tutorial_dismissed AS user_sidebar_tutorial_dismissed, "user".privacy_accepted AS user_privacy_accepted, "user".comms_opt_in AS user_comms_opt_in, "user".email AS user_email, "user".last_login_date AS user_last_login_date, "user".registered_date AS user_registered_date, "user".activation_date AS user_activation_date, "user".activation_id AS user_activation_id, "user".password AS user_password, "user".password_updated AS user_password_updated, "user".salt AS user_salt 


web (stderr)         | FROM "user" 


web (stderr)         | WHERE lower(replace("user".username, '.', '')) = lower(replace(%(replace_1)s, '.', '')) AND "user".authority = %(authority_1)s 


web (stderr)         |  LIMIT %(param_1)s]

suyashdixit avatar May 11 '21 16:05 suyashdixit

+1

officialsuyogdixit avatar May 27 '21 03:05 officialsuyogdixit

That version of the install guide is pretty old (0.4.0), and the "install guide" section of the docs appear to have been removed at some point (so there's not an equivalent place to refer you to-- Installing h in a development environment is probably the closest, but has options that are more appropriate for development. Be sure to read the annotations in those pages-- some are quite helpful).

Many things have changed between when those docs were written and the hypothesis/hypothesis:latest image that you're probably getting from docker (among other things NSQ and redis are no longer being used, with celery/rabbitMQ instead of NSQ), so you would have to adjust things accordingly and some combination of your errors could be related. Also, I think the relation "user" does not exist error is arising because the base docker image doesn't automatically provision the database-- to to that, you'd have to do something from inside the hypothesis container (e.g., with docker exec) like:

bin/hypothesis init
bin/hypothesis migrate upgrade head

For more ideas that might be helpful for what you are trying to do, take a look at #4899

bpow avatar Sep 10 '21 16:09 bpow

Closing due to lack of activity. If this continues to be an issue, please reopen with additional context.

leedenison avatar May 19 '23 12:05 leedenison