Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    • Switch to GitLab Next
  • Sign in / Register
  • GlitchTip Backend GlitchTip Backend
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 21
    • Issues 21
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 2
    • Merge requests 2
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar

GitLab 15.0 is launching on May 22! This version brings many exciting improvements, but also removes deprecated features and introduces breaking changes that may impact your workflow. To see what is being deprecated and removed, please visit Breaking changes in 15.0 and Deprecations.

  • GlitchTip
  • GlitchTip BackendGlitchTip Backend
  • Issues
  • #88
Closed
Open
Created Jun 23, 2021 by Joe Krill@joekrill

Feature request: Support arm docker image

Whenever I run GlitchTip in a Docker container on my Mac M1, one of the first log messages I get once the server is up and listening (after the uWSGI workers are spawned) is:

[busyness] 26473184 requests in listen queue, spawning 1 emergency worker(s) (1)!

And from then on, the following log message is output about once every second (date stamp changes, everything else remains the same for every message):

Wed Jun 23 12:32:14 2021 - *** uWSGI listen queue of socket ":8000" (fd: 3) full !!! (26473184/64) ***

There is no way there are 26473184 requests in the queue here - especially not the moment the server starts up. And that 26473184 is consistent - it doesn't vary for me. Increasing somaxconn in the container or increasing the UWSGI_LISTEN environment variable has no effect, btw.

So far, this only happens on my Mac M1. I have no issues running on an Intel Mac I tested. So I'm fairly certain this is because of the ARM architecture.

I don't have a lot of experience with uWSGI, Django, or even Python for that matter. But I tried to investigate this as much as I could.

First I tried to find some other Django apps using uWSGI to run and see if they had similar problems (https://github.com/sissbruecker/linkding and https://github.com/healthchecks/healthchecks, for example). I only found one instance of a similar error: https://github.com/django-oscar/django-oscar. It does the same thing for me, but the number of requests is different (though consistent). But I was having trouble narrowing in on commonalities, so that was a bit of a dead-end for me.

I decided to try to build the docker image myself, so I pulled the gitchtip-backend repo and tried to build from there. That failed because cargo wasn't found at some point during the pip install process -- in particular, it was when it was building symbolic. I eventually got a rust toolchain installed by adding these 2 lines to the Dockerfile:

RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
ENV PATH=/root/.cargo/bin:$PATH

Which gets me further, but ultimately hangs at Building wheel for symbolic (setup.py) ... \, and eventually dies from a timeout. So I think this may all stem from the symbolic package? I found this issue in the symbolic github that seems likely related.

The app still works, by the way. I can log in and post events, etc. But requests are extremely slow, and it leads to ever-increasing resource usage by the glitchtip server - not to mention being blasted by that log message every second.

I would love to figure out how to get this working correctly on ARM, but my expertise in some of these areas is lacking and I'm not sure what to try next. Are others having issues on ARM64? Are there plans to support it? Or is there any guidance on getting things working relatively well on ARM64.

Reproducing:

This should be reproducible by simply using the docker-compose.sample.yml from the documentation site on a Mac with an M1 chip (or potentially some other ARM64 chip).

Edited Jul 03, 2021 by David Burke
Assignee
Assign to
Time tracking