Troubleshooting

RabbitMQ is not persisting messages despite using Docker volumes

Docker will create a randomly generated hostname for each container every time you deploy a new container instance.

RabbitMQ stores persistent message/queue data using a folder structure based off a node’s hostname. If you do not set a static container hostname, then RabbitMQ will loose any unprocessed messages if you launch a new RabbitMQ container or do a docker-compose down/up.

This happens even if you use a persistent volume (docker run -v).

This will result in tasks being lost and may be the reason a document has not been OCR’d or processed completely.

Solution: Ensure you run the RabbitMQ container with the --hostname option when starting, ensuring RabbitMQ uses a static folder name every time it starts, such as:

docker run -d --name mayan-rabbitmq --hostname mayan-rabbitmq --restart=always...

For Docker Compose:

rabbitmq:
    container_name: mayan-edms-rabbitmq
    image: rabbitmq:3-management
    hostname: mayan-edms-rabbitmq
    environment:
    RABBITMQ_DEFAULT_USER: mayan
    RABBITMQ_DEFAULT_PASS: mayanrabbitpass
    RABBITMQ_DEFAULT_VHOST: mayan
    networks:
    - mayan-bridge
    restart: unless-stopped
    volumes:
    - /docker-volumes/mayan-edms/rabbitmq:/var/lib/rabbitmq

References: - https://stackoverflow.com/questions/41330514/docker-rabbitmq-persistency

MAYAN_APT_INSTALLS does not work for Archlinux with kernels > 4.14

This is caused by a change from kernel 4.18 - 4.19. Metacopy on these kernels is set to yes in archlinux kernels (/sys/module/overlay/parameters/metacopy) and overlayfs should override this which it does not at the moment.

The workaround is to disable metacopy:

echo N | sudo tee /sys/module/overlay/parameters/metacopy

References:

Error: unable to execute 'x86_64-linux-gnu-gcc': No such file or directory

This happens when using the MAYAN_APT_INSTALLS feature. It means that the GCC package is required to compile the packages specified with MAYAN_APT_INSTALLS.

Solution: Include gcc in the list of packages specified with MAYAN_APT_INSTALLS.