Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker service scaling recovery problems #291

Open
precise0 opened this issue Dec 17, 2024 · 7 comments
Open

Docker service scaling recovery problems #291

precise0 opened this issue Dec 17, 2024 · 7 comments
Assignees
Labels
assess We still haven't decided if this will be worked on or not bug Something isn't working

Comments

@precise0
Copy link

Describe the bug
In some cases services will not scale properly after services fail for any number of reasons, OOM or other. The result is that the overall throughput of the deployment will drop to nothing because a service with samples in queue to be processed will have 0 instances running. What seems to help this issue is disabling and enabling the service in the Administrator panel. I have seen this plague every type of service that ships with AssemblyLine, recently I have had to intervene with aforementioned remedy on: CAPA (4.5.0.stable9), DeobfuScripter (4.5.0.stable14), Batchdeobfuscator (4.5.0.stable19), and Espresso (4.5.0.stable7).

To Reproduce
Steps to reproduce the behavior:

  1. Normal docker deployment
  2. Running for a number of days at around 10k samples per day
  3. After enough errors accumulate with a given service I eventually see this failure mode.

Expected behavior
After service failure they would recover within a reasonable time

Screenshots
N/A

Environment (please complete the following information if pertinent):
Assemblyline Docker deployment 0.4.5 stable, last updated 2 weeks ago

Additional context
I have created a service that detects this condition using the client socketio log listener and disables then enables the afflicted service, I have been running it for about 4 days now and I see great throughput improvements. However I wanted to pass this along to possibly find some root cause for it.

@precise0 precise0 added assess We still haven't decided if this will be worked on or not bug Something isn't working labels Dec 17, 2024
@cccs-rs
Copy link
Contributor

cccs-rs commented Dec 18, 2024

Is there any error logs surrounding these incidents such as from the dispatcher or scaler containers?

@precise0
Copy link
Author

The dispatcher doesn't seem to have any errors, however the scaler did throw quite a few, here is an example. It seems that it could possibly correlate to the issue but it's hard to exactly pinpoint. Either way it doesn't seem to be operating normally.

{
  "@timestamp": "2024-12-08 23:38:38,879",
  "event": {
    "module": "assemblyline",
    "dataset": "assemblyline.scaler"
  },
  "host": {
    "ip": "x.x.x.x",
    "hostname": "9b0f4e6f0c71"
  },
  "log": {
    "level": "ERROR",
    "logger": "assemblyline.scaler"
  },
  "process": {
    "pid": "1"
  },
  "message": "Crash in scaler: update_scaling\nTraceback (most recent call last):\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/urllib3/connectionpool.py\", line 789, in urlopen\n    response = self._make_request(\n               ^^^^^^^^^^^^^^^^^^^\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/urllib3/connectionpool.py\", line 495, in _make_request\n    conn.request(\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/urllib3/connection.py\", line 441, in request\n    self.endheaders()\n  File \"/usr/local/lib/python3.11/http/client.py\", line 1298, in endheaders\n    self._send_output(message_body, encode_chunked=encode_chunked)\n  File \"/usr/local/lib/python3.11/http/client.py\", line 1058, in _send_output\n    self.send(msg)\n  File \"/usr/local/lib/python3.11/http/client.py\", line 996, in send\n    self.connect()\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/transport/unixconn.py\", line 26, in connect\n    sock.connect(self.unix_socket)\nBlockingIOError: [Errno 11] Resource temporarily unavailable\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/requests/adapters.py\", line 667, in send\n    resp = conn.urlopen(\n           ^^^^^^^^^^^^^\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/elasticapm/instrumentation/packages/base.py\", line 213, in call_if_sampling\n    return self.call(module, method, wrapped, instance, args, kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/elasticapm/instrumentation/packages/urllib3.py\", line 132, in call\n    response = wrapped(*args, **kwargs)\n               ^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/urllib3/connectionpool.py\", line 843, in urlopen\n    retries = retries.increment(\n              ^^^^^^^^^^^^^^^^^^\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/urllib3/util/retry.py\", line 474, in increment\n    raise reraise(type(error), error, _stacktrace)\n          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/urllib3/util/util.py\", line 38, in reraise\n    raise value.with_traceback(tb)\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/urllib3/connectionpool.py\", line 789, in urlopen\n    response = self._make_request(\n               ^^^^^^^^^^^^^^^^^^^\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/urllib3/connectionpool.py\", line 495, in _make_request\n    conn.request(\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/urllib3/connection.py\", line 441, in request\n    self.endheaders()\n  File \"/usr/local/lib/python3.11/http/client.py\", line 1298, in endheaders\n    self._send_output(message_body, encode_chunked=encode_chunked)\n  File \"/usr/local/lib/python3.11/http/client.py\", line 1058, in _send_output\n    self.send(msg)\n  File \"/usr/local/lib/python3.11/http/client.py\", line 996, in send\n    self.connect()\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/transport/unixconn.py\", line 26, in connect\n    sock.connect(self.unix_socket)\nurllib3.exceptions.ProtocolError: ('Connection aborted.', BlockingIOError(11, 'Resource temporarily unavailable'))\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/scaler_server.py\", line 414, in with_logs\n    fn(*args, **kwargs)\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/scaler_server.py\", line 742, in update_scaling\n    raw_targets = self.controller.get_targets()\n                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/controllers/docker_ctl.py\", line 360, in get_targets\n    return {name: self.get_target(name) for name in names}\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/controllers/docker_ctl.py\", line 360, in <dictcomp>\n    return {name: self.get_target(name) for name in names}\n                  ^^^^^^^^^^^^^^^^^^^^^\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/controllers/docker_ctl.py\", line 347, in get_target\n    for container in self.client.containers.list(filters=filters, ignore_removed=True):\n                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/models/containers.py\", line 1018, in list\n    containers.append(self.get(r['Id']))\n                      ^^^^^^^^^^^^^^^^^\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/models/containers.py\", line 954, in get\n    resp = self.client.api.inspect_container(container_id)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/utils/decorators.py\", line 19, in wrapped\n    return f(self, resource_id, *args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/api/container.py\", line 794, in inspect_container\n    self._get(self._url(\"/containers/{0}/json\", container)), True\n    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/utils/decorators.py\", line 44, in inner\n    return f(self, *args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/api/client.py\", line 246, in _get\n    return self.get(url, **self._set_request_timeout(kwargs))\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/requests/sessions.py\", line 602, in get\n    return self.request(\"GET\", url, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/requests/sessions.py\", line 589, in request\n    resp = self.send(prep, **send_kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/elasticapm/instrumentation/packages/base.py\", line 213, in call_if_sampling\n    return self.call(module, method, wrapped, instance, args, kwargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/elasticapm/instrumentation/packages/requests.py\", line 58, in call\n    response = wrapped(*args, **kwargs)\n               ^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/requests/sessions.py\", line 703, in send\n    r = adapter.send(request, **kwargs)\n        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/var/lib/assemblyline/.local/lib/python3.11/site-packages/requests/adapters.py\", line 682, in send\n    raise ConnectionError(err, request=request)\nrequests.exceptions.ConnectionError: ('Connection aborted.', BlockingIOError(11, 'Resource temporarily unavailable'))\n"
}

@cccs-rs
Copy link
Contributor

cccs-rs commented Dec 18, 2024

Seems to be an issue when there's high IO going on and a socket pertaining to Docker is "unavailable".

Since this does seem to happen during update_scaling, might I suggest setting the SCALE_INTERVAL to something higher than a check every 5s?

Currently the only way to do this is my mounting over that file in the scaler container, but if increasing that value does work, we could make it more configurable.

@precise0
Copy link
Author

I can certainly try this, thank you, I'll report back when I get it working.

@cccs-rs cccs-rs self-assigned this Jan 17, 2025
@cccs-rs
Copy link
Contributor

cccs-rs commented Feb 1, 2025

Any updates on this issue?

@precise0
Copy link
Author

precise0 commented Feb 3, 2025

Hello, sorry I got sidetracked on this, will try to get it into test this week. Thank you.

@precise0
Copy link
Author

precise0 commented Feb 4, 2025

Hello,

So I have changed the SCALE_INTERVAL to 30 seconds since around this time yesterday. Overnight I experienced more alerts indicating a service not running with a queue for more than 5 minutes. Interestingly the old errors are gone though, so I think that the crashing issue is solved by this fix.

The remaining errors that I see are the following type generally of four types now, note that for each one of these logs I see the exact same error from more than one service.

  1. Error applying service settings: no such container
Error applying service settings from: MetaPeek
Traceback (most recent call last):
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/api/client.py", line 275, in _raise_for_status
    response.raise_for_status()
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/requests/models.py", line 1024, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: http+docker://localhost/v1.45/containers/ep-d00469ce6cdc07f4ed470a81cc96aadcdbf0738f9ee90734010559d4d4f905b7/json

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/scaler_server.py", line 601, in _sync_service
    self.controller.prepare_network(service.name, service.docker_config.allow_internet_access,
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/controllers/docker_ctl.py", line 548, in prepare_network
    self._get_network(service_name)
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/controllers/docker_ctl.py", line 542, in _get_network
    if self.service_server.name not in {c.name for c in network.containers}:
                                                        ^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/models/networks.py", line 24, in containers
    return [
           ^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/models/networks.py", line 25, in <listcomp>
    self.client.containers.get(cid) for cid in
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/models/containers.py", line 954, in get
    resp = self.client.api.inspect_container(container_id)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/utils/decorators.py", line 19, in wrapped
    return f(self, resource_id, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/api/container.py", line 793, in inspect_container
    return self._result(
           ^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/api/client.py", line 281, in _result
    self._raise_for_status(response)
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/api/client.py", line 277, in _raise_for_status
    raise create_api_error_from_http_exception(e) from e
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/errors.py", line 39, in create_api_error_from_http_exception
    raise cls(e, response=response, explanation=explanation) from e
docker.errors.NotFound: 404 Client Error for http+docker://localhost/v1.45/containers/ep-d00469ce6cdc07f4ed470a81cc96aadcdbf0738f9ee90734010559d4d4f905b7/json: Not Found ("No such container: ep-d00469ce6cdc07f4ed470a81cc96aadcdbf0738f9ee90734010559d4d4f905b7")
  1. Error while managing service: Pool is closed
Error while managing service: PE
Traceback (most recent call last):
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/requests/adapters.py", line 667, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/elasticapm/instrumentation/packages/base.py", line 208, in call_if_sampling
    return wrapped(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/urllib3/connectionpool.py", line 766, in urlopen
    conn = self._get_conn(timeout=pool_timeout)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/urllib3/connectionpool.py", line 271, in _get_conn
    raise ClosedPoolError(self, "Pool is closed.")
urllib3.exceptions.ClosedPoolError: UnixHTTPConnectionPool(host='localhost', port=None): Pool is closed.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/controllers/docker_ctl.py", line 372, in set_target
    running = self.get_target(service_name)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/controllers/docker_ctl.py", line 347, in get_target
    for container in self.client.containers.list(filters=filters, ignore_removed=True):
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/models/containers.py", line 1018, in list
    containers.append(self.get(r['Id']))
                      ^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/models/containers.py", line 954, in get
    resp = self.client.api.inspect_container(container_id)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/utils/decorators.py", line 19, in wrapped
    return f(self, resource_id, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/api/container.py", line 794, in inspect_container
    self._get(self._url("/containers/{0}/json", container)), True
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/utils/decorators.py", line 44, in inner
    return f(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/api/client.py", line 246, in _get
    return self.get(url, **self._set_request_timeout(kwargs))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/requests/sessions.py", line 602, in get
    return self.request("GET", url, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/requests/sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/elasticapm/instrumentation/packages/base.py", line 208, in call_if_sampling
    return wrapped(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/requests/sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/requests/adapters.py", line 703, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: UnixHTTPConnectionPool(host='localhost', port=None): Pool is closed.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/scaler_server.py", line 414, in with_logs
    fn(*args, **kwargs)
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/scaler_server.py", line 814, in update_scaling
    with pool:
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/scaler_server.py", line 105, in __exit__
    self.finish()
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/scaler_server.py", line 109, in finish
    self.futures.pop(0).result()
  File "/usr/local/lib/python3.11/concurrent/futures/_base.py", line 449, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/controllers/docker_ctl.py", line 397, in set_target
    raise ServiceControlError(str(error), service_name)
assemblyline_core.scaler.controllers.interface.ServiceControlError: UnixHTTPConnectionPool(host='localhost', port=None): Pool is closed.
  1. Error while managing service: conflict container is marked for removal and cannot be started
Error while managing service: Extract
Traceback (most recent call last):
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/api/client.py", line 275, in _raise_for_status
    response.raise_for_status()
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/requests/models.py", line 1024, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 409 Client Error: Conflict for url: http+docker://localhost/v1.45/containers/7aae352d0d78b1e26471f016287e80ea5a7d7aa63b6292e5ff2b064944bffcf7/start

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/controllers/docker_ctl.py", line 390, in set_target
    self._start(service_name)
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/controllers/docker_ctl.py", line 209, in _start
    container = self.client.containers.run(
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/models/containers.py", line 883, in run
    container.start()
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/models/containers.py", line 420, in start
    return self.client.api.start(self.id, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/utils/decorators.py", line 19, in wrapped
    return f(self, resource_id, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/api/container.py", line 1136, in start
    self._raise_for_status(res)
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/api/client.py", line 277, in _raise_for_status
    raise create_api_error_from_http_exception(e) from e
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/errors.py", line 39, in create_api_error_from_http_exception
    raise cls(e, response=response, explanation=explanation) from e
docker.errors.APIError: 409 Client Error for http+docker://localhost/v1.45/containers/7aae352d0d78b1e26471f016287e80ea5a7d7aa63b6292e5ff2b064944bffcf7/start: Conflict ("container is marked for removal and cannot be started")

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/scaler_server.py", line 414, in with_logs
    fn(*args, **kwargs)
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/scaler_server.py", line 814, in update_scaling
    with pool:
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/scaler_server.py", line 105, in __exit__
    self.finish()
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/scaler_server.py", line 109, in finish
    self.futures.pop(0).result()
  File "/usr/local/lib/python3.11/concurrent/futures/_base.py", line 449, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/controllers/docker_ctl.py", line 397, in set_target
    raise ServiceControlError(str(error), service_name)
assemblyline_core.scaler.controllers.interface.ServiceControlError: 409 Client Error for http+docker://localhost/v1.45/containers/7aae352d0d78b1e26471f016287e80ea5a7d7aa63b6292e5ff2b064944bffcf7/start: Conflict ("container is marked for removal and cannot be started")
  1. Error while managing service: connection pool, read timeout
Error while managing service: PE
Traceback (most recent call last):
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/urllib3/connectionpool.py", line 534, in _make_request
    response = conn.getresponse()
               ^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/urllib3/connection.py", line 516, in getresponse
    httplib_response = super().getresponse()
                       ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/http/client.py", line 1395, in getresponse
    response.begin()
  File "/usr/local/lib/python3.11/http/client.py", line 325, in begin
    version, status, reason = self._read_status()
                              ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/http/client.py", line 286, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/socket.py", line 718, in readinto
    return self._sock.recv_into(b)
           ^^^^^^^^^^^^^^^^^^^^^^^
TimeoutError: timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/requests/adapters.py", line 667, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/elasticapm/instrumentation/packages/base.py", line 208, in call_if_sampling
    return wrapped(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/urllib3/connectionpool.py", line 841, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/urllib3/util/retry.py", line 474, in increment
    raise reraise(type(error), error, _stacktrace)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/urllib3/util/util.py", line 39, in reraise
    raise value
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/urllib3/connectionpool.py", line 787, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/urllib3/connectionpool.py", line 536, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/urllib3/connectionpool.py", line 367, in _raise_timeout
    raise ReadTimeoutError(
urllib3.exceptions.ReadTimeoutError: UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=60)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/controllers/docker_ctl.py", line 394, in set_target
    self.client.containers.prune()
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/models/containers.py", line 1026, in prune
    return self.client.api.prune_containers(filters=filters)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/utils/decorators.py", line 32, in wrapper
    return f(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/api/container.py", line 1014, in prune_containers
    return self._result(self._post(url, params=params), True)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/utils/decorators.py", line 44, in inner
    return f(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/docker/api/client.py", line 242, in _post
    return self.post(url, **self._set_request_timeout(kwargs))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/requests/sessions.py", line 637, in post
    return self.request("POST", url, data=data, json=json, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/requests/sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/elasticapm/instrumentation/packages/base.py", line 208, in call_if_sampling
    return wrapped(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/requests/sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/requests/adapters.py", line 713, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=60)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/scaler_server.py", line 414, in with_logs
    fn(*args, **kwargs)
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/scaler_server.py", line 758, in update_scaling
    with pool:
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/scaler_server.py", line 105, in __exit__
    self.finish()
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/scaler_server.py", line 109, in finish
    self.futures.pop(0).result()
  File "/usr/local/lib/python3.11/concurrent/futures/_base.py", line 456, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/var/lib/assemblyline/.local/lib/python3.11/site-packages/assemblyline_core/scaler/controllers/docker_ctl.py", line 397, in set_target
    raise ServiceControlError(str(error), service_name)
assemblyline_core.scaler.controllers.interface.ServiceControlError: UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=60)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
assess We still haven't decided if this will be worked on or not bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants