wekan: Update to V6.09 or V6.11 fails

Wekan will run on V6.05 But if I update to V6.09 or V6.11 (latest Quay.io images) wekan - app fails during start up; (mongo seems fine…)

wekan-app  | > Starting migrate-attachments-collectionFS-to-ostrioFiles migration.
wekan-app  | create storagePath because it doesn't exist: ./wekan-uploads
wekan-app  | /build/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/promise_server.js:218
wekan-app  |       throw error;
wekan-app  |       ^
wekan-app  |
wekan-app  | Error: Argument passed in must be a single String of 12 bytes or a string of 24 hex characters
wekan-app  |     at new ObjectID (/build/programs/server/npm/node_modules/meteor/cfs_gridfs/node_modules/mongodb/node_modules/mongodb-core/node_modules/bson/lib/bson/objectid.js:34:11)
wekan-app  |     at Object.createReadStream (packages/cfs:gridfs/gridfs.server.js:75:14)
wekan-app  |     at Object.self.adapter.createReadStreamForFileKey (packages/cfs_storage-adapter.js:104:39)
wekan-app  |     at FS.Transform.createReadStream (packages/cfs_storage-adapter.js:404:35)
wekan-app  |     at Object.self.adapter.createReadStream (packages/cfs_storage-adapter.js:114:51)
wekan-app  |     at FS.File.createReadStream (packages/cfs_file.js:833:30)
wekan-app  |     at server/migrations.js:1147:32
wekan-app  |     at SynchronousCursor.forEach (packages/mongo/mongo_driver.js:1141:16)
wekan-app  |     at Cursor.<computed> [as forEach] (packages/mongo/mongo_driver.js:920:44)
wekan-app  |     at Object.migrationCallback (server/migrations.js:1136:25)
wekan-app  |     at packages/idmontie_migrations.js:238:17
wekan-app  |     at Function.time (/build/programs/server/profile.js:273:30)
wekan-app  |     at /build/programs/server/boot.js:415:15
wekan-app  |     at /build/programs/server/boot.js:465:7
wekan-app  |     at Function.run (/build/programs/server/profile.js:280:14)
wekan-app  |     at /build/programs/server/boot.js:463:13
wekan-app exited with code 1

Running in Docker from quay.io images. works on V6.05 image, but fails on V6.09 and V6.11.

WeKan ® Version	6.05.0
Meteor version	2.2
Node version	12.22.10
MongoDB version	4.4.13
MongoDB storage engine	wiredTiger
MongoDB Oplog enabled	
OS Type	Linux
OS Platform	linux
OS Arch	x64
OS Release	4.14.268-205.500.amzn2.x86_64
OS Uptime	1 days, 10 hours, 16 seconds
OS Load Average	1.01, 0.56, 0.35
OS Total Memory	8 GB
OS Free Memory	166 MB
OS CPU Count	2
version: '2'

services:

  wekandb:
    image: mongo:4.4
    container_name: wekan-db
    restart: always
    logging:
      driver: awslogs
      options:
        awslogs-region: us-east-2
        awslogs-group: Wekan_Mongo_DB
    command: mongod --oplogSize 128
    networks:
      - wekan-tier
    expose:
      - 27017
    volumes:
      - wekan-db:/data/db
      - wekan-db-dump:/dump

  wekan:
    image: quay.io/wekan/wekan@sha256:0e2df1aefd2e5f0115ef88d279df60b7ae82533ef2d654d143866dbf9a69c505
    container_name: wekan-app
    restart: always
    logging:
      driver: awslogs
      options:
        awslogs-region: us-east-2
        awslogs-group: Wekan

    networks:
      - wekan-tier
    ports:
     - 3001:8080
    volumes:
      - /home/ec2-user/wekan/Attachments:/home/ec2-user/wekan/Attachments
    environment:
      - MONGO_URL=mongodb://wekandb:27017/wekan
      - ROOT_URL=https://wekan.vvbcbcbcbc.dev  #   <=== using only at same laptop/desktop where Wekan is installed
      - MAIL_URL=smtps://<<SNIP>>&secureConnection=true
      - MAIL_FROM=cbcbcb@hsjsjsklsdfnlsdjkflaskdjflaskdfj.com
      - WITH_API=true
      - ATTACHMENTS_STORE_PATH=/home/ec2-user/wekan/Attachments # pathname can be relative or fullpath
      - RICHER_CARD_COMMENT_EDITOR=false
      - CARD_OPENED_WEBHOOK_ENABLED=false
      - BIGEVENTS_PATTERN=NONE
      - BROWSER_POLICY_ENABLED=true
      - DEBUG=true
      - OAUTH2_ENABLED=true
      - OAUTH2_LOGIN_STYLE=redirect
       - OAUTH2_CLIENT_ID=sdkljasdlfkjasldfkjasldfkjasdlfjksdl;fkjasdl;fkjasd
      - OAUTH2_SECRET=klsdjlksdjflsdjfl;sdjfl;sjdfl;sjdfl;ksdjf
      - OAUTH2_SERVER_URL=kldlkasjflajsdflajsdfljksdfl;kjs;lksdjflasdf
      - OAUTH2_AUTH_ENDPOINT=/oauth2/v2.0/authorize
      - OAUTH2_USERINFO_ENDPOINT=klsjdlkasjdflasjfljksf;lasjkdf;laskdjf
      - OAUTH2_TOKEN_ENDPOINT=/oauth2/v2.0/token
      - OAUTH2_ID_MAP=email
      - OAUTH2_USERNAME_MAP=email
      - OAUTH2_FULLNAME_MAP=name
      - OAUTH2_EMAIL_MAP=email
    depends_on:
      - wekandb

volumes:
  wekan-db:
    driver: local
  wekan-db-dump:
    driver: local

networks:
  wekan-tier:
    driver: bridge

Not sure if this is attachment related. Where did the attachment settings in docker-compose.yml GO? I cannot find any migration instructions.

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 19 (10 by maintainers)

Most upvoted comments

@g-roliveira

I’m currently looking how to use only ObjectID or some hash when storing files to serverside, because not all filesystems accept all characters. Or alternatively, sanitizing characters that can not be used when saving file. This is also related to using minio https://github.com/wekan/minio-metadata .

Tried that, no joy. I’m not 100% sure of the relationship between ATTACHMENTS_STORE_PATH and WRITABLE_PATH. so I created a subdirectory in the already existing volume mount called uploads and set the WRITABLE_PATH to point to it…

docker-compose.yml:

wekan:
    container_name: wekan-app
<snip>
volumes:
      - /home/ec2-user/wekan/Attachments:/home/ec2-user/wekan/Attachments
 environment:
<snip>
 # ==== STORE ATTACHMENT ON SERVER FILESYSTEM INSTEAD OF MONGODB ====
 # https://github.com/wekandoc/wekan/pull/2603
- ATTACHMENTS_STORE_PATH=/home/ec2-user/wekan/Attachments

 # ==== WRITEABLE PATH FOR FILE UPLOADS ====
 - WRITABLE_PATH=/home/ec2-user/wekan/Attachments/uploads

Still fails. but slightly different error:

wekan-app  | > Starting migrate-attachments-collectionFS-to-ostrioFiles migration.
wekan-app  | /build/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/promise_server.js:218
wekan-app  |       throw error;
wekan-app  |       ^
wekan-app  |
wekan-app  | Error: Argument passed in must be a single String of 12 bytes or a string of 24 hex characters
wekan-app  |     at new ObjectID (/build/programs/server/npm/node_modules/meteor/cfs_gridfs/node_modules/mongodb/node_modules/mongodb-core/node_modules/bson/lib/bson/objectid.js:34:11)
wekan-app  |     at Object.createReadStream (packages/cfs:gridfs/gridfs.server.js:75:14)
wekan-app  |     at Object.self.adapter.createReadStreamForFileKey (packages/cfs_storage-adapter.js:104:39)
wekan-app  |     at FS.Transform.createReadStream (packages/cfs_storage-adapter.js:404:35)
wekan-app  |     at Object.self.adapter.createReadStream (packages/cfs_storage-adapter.js:114:51)
wekan-app  |     at FS.File.createReadStream (packages/cfs_file.js:833:30)
wekan-app  |     at server/migrations.js:1147:32
wekan-app  |     at SynchronousCursor.forEach (packages/mongo/mongo_driver.js:1141:16)
wekan-app  |     at Cursor.<computed> [as forEach] (packages/mongo/mongo_driver.js:920:44)
wekan-app  |     at Object.migrationCallback (server/migrations.js:1136:25)
wekan-app  |     at packages/idmontie_migrations.js:238:17
wekan-app  |     at Function.time (/build/programs/server/profile.js:273:30)
wekan-app  |     at /build/programs/server/boot.js:415:15
wekan-app  |     at /build/programs/server/boot.js:465:7
wekan-app  |     at Function.run (/build/programs/server/profile.js:280:14)
wekan-app  |     at /build/programs/server/boot.js:463:13