wefork / wekan

The open-source Trello-like kanban (built with Meteor)
https://wekan.io
MIT License
61 stars 12 forks source link

Upload attachement, got MongoError: Can't get executor for query #58

Closed pcads closed 7 years ago

pcads commented 7 years ago

Downloaded and installed on Ubuntu16.04 Got this error every time when I try to upload an attachment. Thanks

SA GridFS - ERROR! { [MongoError: Can't get executor for query { files_id: ObjectId('5862e052ce561dca093d224e'), n: { $gte: 0 } }] name: 'MongoError', ok: 0, errmsg: 'Can\'t get executor for query { files_id: ObjectId(\'5862e052ce561dca093d224e\'), n: { $gte: 0 } }', code: 17241, codeName: 'Location17241' }

xet7 commented 7 years ago

@pcads

Hi, that problem is because of MongoDB version 3.4.1 that was released 2016-12-20.

Downgrade to MongoDB 3.4.0, this keeps your existing data:

sudo apt-get remove mongodb-org*
sudo apt install -y mongodb-org=3.4.0 mongodb-org-server=3.4.0 mongodb-org-shell=3.4.0 mongodb-org-mongos=3.4.0 mongodb-org-tools=3.4.0

I'll try to figure out later what has changed in MongoDB 3.4.1.

xet7 commented 7 years ago

Link to the related discussion at Meteor forums: https://forums.meteor.com/t/suddenly-cant-upload-images-to-newer-digitalocean-droplets/32591/9

xet7 commented 7 years ago

I did post bug report to MongoDB Node.js forums: https://groups.google.com/forum/#!topic/node-mongodb-native/yLvyY-uyljA

But I'm not sure is it correct place to report bug.

pcads commented 7 years ago

Thank you @xet7 , however, I still have the same problem after downgraded to 3.4.0.

xet7 commented 7 years ago

@pcads

Old version of MongoDB is still in memory, so restart MongoDB service:

sudo systemctl daemon-reload
sudo systemctl stop mongod
sudo systemctl start mongod
b-long commented 7 years ago

Have you all seen this?

https://forums.meteor.com/t/docker-team-up-to-create-a-reference-docker-image-for-meteor/30829/60

xet7 commented 7 years ago

@b-long

Please continue to discuss that Docker issue at #33

Not here, it's offtopic for this issue.

pcads commented 7 years ago

Thanks @xet7 . However, I got the same error even after a fresh install MongoDB verison 3.4.0 Meteor release-1.3.5 Node 0.10.48 npm 2.15.1

BTW, I am running inside a Ubuntu16.04 desktop VM on a Mac. I don't think that'd be an issue though.

xet7 commented 7 years ago

@pcads

I have npm 4.1.1, installed with:

sudo npm -g install npm

Please not that if you upgrade kernel during installs, VM needs reboot, so npm starts to work correctly.

I also used n to install node:

sudo npm -g install n
sudo n 0.10.48

Did you install build-essential, fibers, node-gyp etc? https://github.com/wefork/wekan/wiki/Install-from-source

I'm running Lubuntu 16.04 HVM on Qubes OS, but virtualization platform does affect this. I'm unable to reproduce, for me attachments and importing from Trello works with MongoDB 3.4.0.

pcads commented 7 years ago

Yes, I did install node-gyp, fibers, build-essential.

I even spun up a new lubuntu 16.10 vm, still failed at the same error. So I am gonna give up for now, untill maybe there's a docker solution.

BTW, everything else works fine, I really really like you guys' work! Great system.

I probably will try to use Docker, but these node dependencies already drove me crazy (I am not a Node guy). :-) I doubt I'd be any luckier using Docker.

Thanks for your help and I will check back.

xet7 commented 7 years ago

@pcads

Thanks, I noticed install from source instructions didn't work anymore, I already made some fixes and I'm also in progress of creating VirtualBox appliance that has Wekan etc.

pcads commented 7 years ago

@xet7 Thanks a lot. Yes, I strictly followed the "install from the source" instruction. I will play with it when I have time.

xet7 commented 7 years ago

@pcads

I have now created new VirtualBox appliance with newest Wekan: https://wekan.xet7.org

pcads commented 7 years ago

@xet7 Thanks, I will give the VM a try. Have to convert it to VMWare disk first.

BTW, I hacked together a script to build a docker container and am able to run the app inside the container. But I still got the same error. It has to be some weird dependency/compatibility issues.

xet7 commented 7 years ago

@pcads

Please see latest working Dockerfiles etc that I just merged to Wefork repo, and issue #33

pcads commented 7 years ago

@xet7 I git clone wekan repo docker-compose up

Then I got this at the end: ERROR: Service 'wekan' failed to build: One or more build-args [meteor_release npm_version src_path node_version architecture] were not consumed, failing build.

xet7 commented 7 years ago

@pcads

As you can see from pull request I merged just some minutes ago, Dockerfiles are under active developement and getting fixes, please continue Docker issue at #33 . Also those Dockerfiles etc are currently for building locally, there is not yet image at Docker Hub. Please let it stabilize and wait when we have Docker images working correctly.

This issue is only about MongoDB error, so for this issue Docker is offtopic.

pcads commented 7 years ago

Thank you @xet7

I spun up the two containers (off topic, ARGs in Dockerfile seems not working), but I still got the same error:

wekan-db | 2017-01-18T05:43:27.720+0000 I NETWORK [thread1] connection accepted from 172.18.0.3:42682 #24 (20 connections now open)

wekan-app | SA GridFS - ERROR! { [MongoError: Can't get executor for query { files_id: ObjectId('587f007f8a541001007f8ba4'), n: { $gte: 0 } }] wekan-app | name: 'MongoError', wekan-app | ok: 0, wekan-app | errmsg: 'Can\'t get executor for query { files_id: ObjectId(\'587f007f8a541001007f8ba4\'), n: { $gte: 0 } }', wekan-app | code: 17241, wekan-app | codeName: 'Location17241' } wekan-app | wekan-app | /build/programs/server/npm/node_modules/meteor/cfs_gridfs/node_modules/mongodb/lib/mongodb/connection/base.js:246 wekan-app | throw message;
wekan-app | ^ wekan-app | Error: Error storing uploaded file to TempStore: Can't get executor for query { files_id: ObjectId('587f007f8a541001007f8ba4'), n: { $gte: 0 } } wekan-app | at EventEmitter. (packages/cfs_collection/packages/cfs_collection.js:161:1) wekan-app | at EventEmitter.emit (events.js:117:20) wekan-app | at Stream. (packages/cfs_tempstore/packages/cfs_tempstore.js:343:1) wekan-app | at Stream.emit (events.js:117:20)

larsmathuseck commented 7 years ago

Got the same error on Ubuntu 16.04. I used this guide to install: https://github.com/wefork/wekan/wiki/Install-from-source

Is there any other way of installation?

xet7 commented 7 years ago

@larsmathuseck

You can install VirtualBox appliance: https://wekan.xet7.org

pcads commented 7 years ago

@xet7 with docker mongodb 2.6.10 image, I don't have this issue anymore. The bug is still there if I use docker mongodb 3.4 image.

xet7 commented 7 years ago

@pcads

I just now tried to install MongoDB 3.4.0 from PPA and it was not available there anymore. So we need to use 2.6.10.

pcads commented 7 years ago

@xet7 Thanks! Just wondering what's the big difference between 2.6.10 and 3.4, sorry I am not very familiar with mongodb. Of course we don't want to risk some other features won't work.

Also, Mongodb 3.0 works as well.

stephenmoloney commented 7 years ago

@pcads @xet7

Do you want me to change the mongo version in the dockerfile?

Let me know the correct version to use and I'll change it.

ghost commented 7 years ago

I tried several different versions of Mongo. The only one that did not crash on a file upload was Mongo 3.0.

If you are use Docker don't forget to delete your volumes when switching between different Mongo versions.

MattNer0 commented 7 years ago

still had this problem even after downgrading from 3.4.1 to 3.4.0 but it seems to be working fine with Mongodb v3.2.7

xet7 commented 7 years ago

I changed docker-compose.yml to use MongoDB v3.2.11, and also docker commands to be used to README.md at: https://github.com/wekan/wekan

Works. Closing issue.

kaefert commented 7 years ago

are there any plans to support newer MongoDB versions in the future? Or is this a bug in the MongoDB versions 3.4.0 and 3.4.1 that needs to be fixed in future MongoDB versions?

I am trying to run wekan on my Qnap TS-469L (a NAS with an intel atom processor) and the only MongoDB package I was able to get to run was 3.4.0. see also: https://forum.qnap.com/viewtopic.php?f=320&t=118808

xet7 commented 7 years ago

@kaefert

Your issue moved to https://github.com/wekan/wekan/issues/1180