qdrant: : Unsupported system page size on ARM64 system

I am trying to start qdrant/qdrant:v1.4.1 docker image on a ARM64 machine (a QNAP NAS with AL324 CPU and 16 Gigabyte RAM). Fails with memory allocation error.

Current Behavior

Start fails with memory allocation errors.

Steps to Reproduce

Start qdrant on an ARM64 machine using docker run qdrant/qdrant:v1.4.1

<jemalloc>: Unsupported system page size
<jemalloc>: Unsupported system page size
memory allocation of 5 bytes failed
./entrypoint.sh: line 25:     7 Aborted                 ./qdrant $@

Expected Behavior

Should properly start.

Possible Solution

Found a similar problem with redis, indicating that this might be a problem of the page size used at build time: https://github.com/docker-library/redis/issues/208

About this issue

  • Original URL
  • State: closed
  • Created 10 months ago
  • Comments: 27 (9 by maintainers)

Commits related to this issue

Most upvoted comments

/bounty $150

Making jemalloc compilation optional, depending on target architecture sounds reasonable

Then I used docker buildx build --no-cache --platform linux/arm64 -t qdrant --push . to cross-build on a conventional x64 Linux machine, which su

The image you cross-compiled, does it have jemalloc removed? Or did it magically start working without any code changes?

I have removed jemalloc as described by @generall, then cross-build on a x64 machine.

@StefanRichterHuber

How do I disable jemalloc?

You would need to remove https://github.com/qdrant/qdrant/blob/0f102a5575ac33df03f06563844198f3ea26136b/src/main.rs#L33-L34 and https://github.com/qdrant/qdrant/blob/0f102a5575ac33df03f06563844198f3ea26136b/src/main.rs#L48-L50

Tried to build the docker file but it seems to use private base image, or am I wrong here?

We don’t use any private base image.