multinet-app / multinet-api

Apache License 2.0
2 stars 2 forks source link

can't run multinet-api on MacOS 10.15.7; #126

Open curtislisle opened 2 years ago

curtislisle commented 2 years ago

I am unable to run the multinet-api on MacOS 10.15.7; docker-compose 1.29.2

All the services come up, but there are communication errors associated with what seems to be the minio container Here is an excerpt of the error dump:

FNM-S103238:multinet-api lislecr$ docker-compose run --rm django ./manage.py migrate
Starting multinet-api_arangodb_1 ... done
Starting multinet-api_rabbitmq_1 ... done
Starting multinet-api_postgres_1 ... done
Starting multinet-api_minio_1    ... done
Creating multinet-api_django_run ... done
[02:07:35] WARNING  Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection      connectionpool.py:810
                    broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fe5c17775b0>: Failed                       
                    to establish a new connection: [Errno 111] Connection refused')': /django-storage?location=                               
           WARNING  Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection      connectionpool.py:810
                    broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fe5c1777910>: Failed                       
                    to establish a new connection: [Errno 111] Connection refused')': /django-storage?location=                               
[02:07:36] WARNING  Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection      connectionpool.py:810
                    broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fe5c1777ca0>: Failed                       
                    to establish a new connection: [Errno 111] Connection refused')': /django-storage?location=                               
[02:07:38] WARNING  Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection      connectionpool.py:810
                    broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fe5c1777a90>: Failed                       
                    to establish a new connection: [Errno 111] Connection refused')': /django-storage?location=                               
[02:07:41] WARNING  Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection      connectionpool.py:810
                    broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fe5c1777cd0>: Failed                       
                    to establish a new connection: [Errno 111] Connection refused')': /django-storage?location=                               
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 174, in _new_conn
    conn = connection.create_connection(
  File "/usr/local/lib/python3.8/site-packages/urllib3/util/connection.py", line 95, in create_connection
    raise err
  File "/usr/local/lib/python3.8/site-packages/urllib3/util/connection.py", line 85, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 703, in urlopen
    httplib_response = self._make_request(
  File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 398, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 239, in request
    super(HTTPConnection, self).request(method, url, body=body, headers=headers)
  File "/usr/local/lib/python3.8/http/client.py", line 1256, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/local/lib/python3.8/http/client.py", line 1302, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/local/lib/python3.8/http/client.py", line 1251, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/local/lib/python3.8/http/client.py", line 1011, in _send_output
    self.send(msg)
  File "/usr/local/lib/python3.8/http/client.py", line 951, in send
    self.connect()
  File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 205, in connect
    conn = self._new_conn()
  File "/usr/local/lib/python3.8/site-packages/urllib3/connection.py", line 186, in _new_conn
    raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7fe5c1724d00>: Failed to establish a new connection: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "./manage.py", line 20, in <module>
    main()
  File "./manage.py", line 16, in main
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.8/site-packages/django/core/management/__init__.py", line 413, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python3.8/site-packages/django/core/management/base.py", line 354, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python3.8/site-packages/django/core/management/base.py", line 398, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python3.8/site-packages/django/core/management/base.py", line 89, in wrapped
    res = handle_func(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/django/core/management/commands/migrate.py", line 75, in handle
    self.check(databases=[database])
  File "/usr/local/lib/python3.8/site-packages/django/core/management/base.py", line 419, in check
    all_issues = checks.run_checks(
  File "/usr/local/lib/python3.8/site-packages/django/core/checks/registry.py", line 76, in run_checks
    new_errors = check(app_configs=app_configs, databases=databases)
  File "/usr/local/lib/python3.8/site-packages/django/core/checks/model_checks.py", line 34, in check_all_models
    errors.extend(model.check(**kwargs))
  File "/usr/local/lib/python3.8/site-packages/django/db/models/base.py", line 1284, in check
    *cls._check_fields(**kwargs),
  File "/usr/local/lib/python3.8/site-packages/django/db/models/base.py", line 1395, in _check_fields
    errors.extend(field.check(**kwargs))
  File "/usr/local/lib/python3.8/site-packages/s3_file_field/fields.py", line 97, in check
    *self._check_supported_storage_provider(),
  File "/usr/local/lib/python3.8/site-packages/s3_file_field/fields.py", line 101, in _check_supported_storage_provider
    if not MultipartManager.supported_storage(self.storage):
  File "/usr/local/lib/python3.8/site-packages/s3_file_field/_multipart.py", line 144, in supported_storage
    cls.from_storage(storage)
  File "/usr/local/lib/python3.8/site-packages/s3_file_field/_multipart.py", line 124, in from_storage
    if isinstance(storage, S3Boto3Storage):
  File "/usr/local/lib/python3.8/site-packages/django/utils/functional.py", line 246, in inner
    self._setup()
  File "/usr/local/lib/python3.8/site-packages/django/core/files/storage.py", line 378, in _setup
    self._wrapped = get_storage_class()()
  File "/usr/local/lib/python3.8/site-packages/minio_storage/storage.py", line 411, in __init__
    super().__init__(
  File "/usr/local/lib/python3.8/site-packages/minio_storage/storage.py", line 75, in __init__
    self._init_check()
  File "/usr/local/lib/python3.8/site-packages/minio_storage/storage.py", line 89, in _init_check
    if self.auto_create_bucket and not self.client.bucket_exists(
  File "/usr/local/lib/python3.8/site-packages/minio/api.py", line 404, in bucket_exists
    self._url_open('HEAD', bucket_name=bucket_name)
  File "/usr/local/lib/python3.8/site-packages/minio/api.py", line 2189, in _url_open
    region = self._get_bucket_region(bucket_name)
  File "/usr/local/lib/python3.8/site-packages/minio/api.py", line 2067, in _get_bucket_region
    region = self._get_bucket_location(bucket_name)
  File "/usr/local/lib/python3.8/site-packages/minio/api.py", line 2100, in _get_bucket_location
    response = self._http.urlopen(method, url,
  File "/usr/local/lib/python3.8/site-packages/urllib3/poolmanager.py", line 375, in urlopen
    response = conn.urlopen(method, u.request_uri, **kw)
  File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 813, in urlopen
    return self.urlopen(
  File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 813, in urlopen
    return self.urlopen(
  File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 813, in urlopen
    return self.urlopen(
  [Previous line repeated 2 more times]
  File "/usr/local/lib/python3.8/site-packages/urllib3/connectionpool.py", line 785, in urlopen
    retries = retries.increment(
  File "/usr/local/lib/python3.8/site-packages/urllib3/util/retry.py", line 592, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='minio', port=9000): Max retries exceeded with url: /django-storage?location= (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fe5c1724d00>: Failed to establish a new connection: [Errno 111] Connection refused'))
waxlamp commented 2 years ago

In the docker-compose.yml file, under the minio service declaration, there is a line that sets the tty property; if you toggle the boolean value found there, that may fix this problem.

curtislisle commented 2 years ago

Switching the default to tty: false did indeed fix the problem when running under MacOS. I did not have to make this change on my Ubuntu 20.04 system.

jjnesbitt commented 2 years ago

The issue itself may lie in the minio image version you're using. We ran into this issue in the past with a specific version of minio, documented here. If your minio image versions are different between your Ubuntu and MacOS machines, pulling the corresponding image on your MacOS machine might be worth a shot.