ciur / papermerge

Open Source Document Management System for Digital Archives (Scanned Documents)
https://papermerge.com
Apache License 2.0
2.49k stars 263 forks source link

Error / Internal Server Error #581

Closed tobasium closed 8 months ago

tobasium commented 8 months ago

Hi i wantet to run papermerge but it did not work. Maybe someone could help me to solve the problem. Did not see where exactly the problem is.

I use portainer and tested 2 different compose files:

Web App + Worker PostgreSQL

Web App + Worker for test i use the same data as in documentation.

papermerge starts

i try to login it loads and then it shows only error

i only see Error

Log in Docker: sqlalchemy.exc.NoResultFound: No row was found when one was required


PostgreSQL (change username tobasium)

papermerge starts

i try to login

Under the pw field it shows: Internal Server Error

Docker Log: [SQL: SELECT core_user.id AS core_user_id, core_user.username AS core_user_username, core_user.email AS core_user_email, core_user.password AS core_user_password, core_user.is_superuser AS core_user_is_superuser, core_user.is_staff AS core_user_is_staff, core_user.is_active AS core_user_is_active, core_user.first_name AS core_user_first_name, core_user.last_name AS core_user_last_name, core_user.home_folder_id AS core_user_home_folder_id, core_user.inbox_folder_id AS core_user_inbox_folder_id, core_user.date_joined AS core_user_date_joined, core_user.created_at AS core_user_created_at, core_user.updated_at AS core_user_updated_at FROM core_user WHERE core_user.username = %(username_1)s LIMIT %(param_1)s] [parameters: {'username_1': 'tobasium', 'param_1': 1}] (Background on this error at: https://sqlalche.me/e/20/f405)

Info:

ciur commented 8 months ago

Can you please attach full webapp's docker log ?

Issue may be related (or even the same?) to Issue#579. In case it is same problem - well, I am currently working on it!

tobasium commented 8 months ago

i will deploy both stacks and send you the log seperatly in 5 min

tobasium commented 8 months ago

only Web App + Worker

_papermerge-web-1_logs.txt

tobasium commented 8 months ago

PostgreSQL compose

_papermerge-web-1_logs (1).txt

ciur commented 8 months ago

In case of last logs there is an error:

sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedTable) relation "core_user" does not exist
LINE 2: FROM core_user 
             ^

Which means that in your case tables were not created. Could you check if db postgresql://scott:tiger@db:5432/mydatabase is accessible (i.e. you can connect to it) and it has some tables in it (e.g. core_use) ?

It is interesting, because I literally just copy paste this docker compose:

  version: "3.9"

  x-backend: &common
    image: papermerge/papermerge:3.0.1
    environment:
        PAPERMERGE__SECURITY__SECRET_KEY: 12345
        PAPERMERGE__AUTH__USERNAME: john
        PAPERMERGE__AUTH__PASSWORD: hohoho
        PAPERMERGE__DATABASE__URL: postgresql://scott:tiger@db:5432/mydatabase
        PAPERMERGE__REDIS__URL: redis://redis:6379/0
    volumes:
      - index_db:/core_app/index_db
      - media:/core_app/media
  services:
    web:
      <<: *common
      ports:
       - "12000:80"
      depends_on:
        - redis
        - db
    worker:
      <<: *common
      command: worker
    redis:
      image: redis:6
    db:
      image: bitnami/postgresql:14.4.0
      volumes:
        - postgres_data:/var/lib/postgresql/data/
      environment:
        POSTGRES_USER: scott
        POSTGRES_PASSWORD: tiger
        POSTGRES_DB: mydatabase
  volumes:
    postgres_data:
    index_db:
    media:

And then docker compose up just works (means db is created, I can authenticate with username john).

tobasium commented 8 months ago

could you quickly tell me how i could test it.

here is the log from db _papermerge-db-1_logs.txt

ciur commented 8 months ago

I found the problem. The problem is that docker compose's "depends_on" waits only for the container to start, but not the service inside it; in other words "db" container may be up, while actual initialization of the postgres/mysql database is not yet ready!

I will fix that part. Thank you again for reporting the problem!

ciur commented 8 months ago

@tobasium I've published 3.0.2. Also in documentation I've updated docker-compose examples to include healthcheck key - which ensures that webapp/workers will start only after database process (not just db container) is up and running. Please use update docker compose examples.

tobasium commented 8 months ago

Hi, tested, and found new error: MySQL / MariaDB compose _papermerge-web-1_logs.txt

tobasium commented 8 months ago

Hi tested, Solr compose works. so that i can login into pm but solr container exits after start with following error:

Cannot write to /var/solr as 8983:8983 drwxr-xr-x 2 root root 2 Jan 21 17:02 /var/solr Cannot write to /var/solr as 8983:8983 drwxr-xr-x 2 root root 2 Jan 21 17:02 /var/solr

ciur commented 8 months ago

I am closing the ticket as original issue was solved (original issue was that app started before db service was up, which caused "core_user table not found exception" - fixed in 3.0.2).