nextcloud / deck

🗂 Kanban-style project & personal management tool for Nextcloud, similar to Trello
https://apps.nextcloud.com/apps/deck
GNU Affero General Public License v3.0
1.21k stars 276 forks source link

Boards list is empty after upgrading to Deck 1.2.7 #3024

Closed khassad closed 3 years ago

khassad commented 3 years ago

How to use GitHub

Steps to reproduce

Install the 1.2.7 upgrade for Deck component.

Expected behaviour

Users should be able to see the list of boards on the left menu and access/manage them from this list.

Actual behaviour

After installing the 1.2.7 upgrade, existing boards lists for users are empty. There is only the "Upcoming cards" and "Add board" entries on the left menu. When one add a new board it is displayed but if I leave the Deck and come back it's gone and no way to have it back. If a user that never used its account logs in he may see his boards list 1st time he access the Deck app.

Server configuration detail

Operating system: Linux 5.4.56-200.el7.x86_64 #1 SMP Sat Aug 8 21:08:01 UTC 2020 x86_64

Webserver: nginx/1.18.0 (fpm-fcgi)

Database: mariadb 10.5.8

PHP version:

7.4.15 Modules loaded: Core, date, libxml, pcre, zlib, filter, hash, readline, Reflection, SPL, session, cgi-fcgi, bcmath, bz2, ctype, curl, dom, fileinfo, gd, gmp, iconv, intl, json, mbstring, openssl, pcntl, PDO, posix, standard, SimpleXML, xml, xmlwriter, zip, exif, mysqlnd, xmlreader, pdo_mysql, apcu, igbinary, redis, memcached, imagick, Zend OPcache

Nextcloud version: 20.0.9 - 20.0.9.1

Updated from an older Nextcloud/ownCloud or fresh install:

Where did you install Nextcloud from: Download from Nextcloud web site

Signing status Array ( ) No errors have been found.
List of activated apps ``` Enabled: - accessibility: 1.6.0 - activity: 2.13.4 - admin_audit: 1.10.0 - analytics: 3.4.1 - announcementcenter: 4.0.1 - apporder: 0.12.0 - bookmarks: 4.1.0 - breezedark: 20.0.11 - bruteforcesettings: 2.1.0 - calendar: 2.2.0 - carnet: 0.23.8 - circles: 0.20.8 - cloud_federation_api: 1.3.0 - cms_pico: 1.0.15 - comments: 1.10.0 - contacts: 3.5.1 - contactsinteraction: 1.1.0 - dashboard: 7.0.0 - data_request: 1.7.0 - dav: 1.16.2 - deck: 1.2.7 - drawio: 1.0.0 - event_update_notification: 1.2.0 - external: 3.7.2 - federatedfilesharing: 1.10.2 - federation: 1.10.1 - files: 1.15.0 - files_accesscontrol: 1.10.2 - files_automatedtagging: 1.10.1 - files_external: 1.11.1 - files_markdown: 2.3.3 - files_mindmap: 0.0.24 - files_pdfviewer: 2.0.1 - files_rightclick: 0.17.0 - files_sharing: 1.12.2 - files_trashbin: 1.10.1 - files_versions: 1.13.0 - files_videoplayer: 1.9.0 - firstrunwizard: 2.9.0 - forms: 2.2.4 - groupfolders: 8.2.0 - integration_gitlab: 1.0.0 - integration_suitecrm: 0.0.4 - issuetemplate: 0.7.0 - keeweb: 0.6.5 - logreader: 2.5.0 - lookup_server_connector: 1.8.0 - mail: 1.9.5 - news: 15.3.2 - nextcloud_announcements: 1.9.0 - notes: 4.0.4 - notifications: 2.8.0 - oauth2: 1.8.0 - ocsms: 2.2.0 - password_policy: 1.10.1 - photos: 1.2.3 - piwik: 0.8.0 - polls: 1.8.3 - privacy: 1.4.0 - provisioning_api: 1.10.0 - quickaccesssorting: 1.1.2 - quicknotes: 0.6.7 - quota_warning: 1.9.1 - ransomware_detection: 0.10.0 - ransomware_protection: 1.10.0 - recommendations: 0.8.0 - riotchat: 0.7.6 - serverinfo: 1.10.0 - settings: 1.2.0 - sharebymail: 1.10.0 - side_menu: 1.23.1 - socialsharing_diaspora: 2.2.0 - socialsharing_email: 2.2.0 - spreed: 10.0.7 - support: 1.3.0 - survey_client: 1.8.0 - systemtags: 1.10.0 - talk_simple_poll: 1.3.0 - tasks: 0.13.6 - text: 3.1.0 - theming: 1.11.0 - theming_customcss: 1.8.0 - twofactor_backupcodes: 1.9.0 - twofactor_totp: 5.0.0 - twofactor_u2f: 6.1.0 - updatenotification: 1.10.0 - user_status: 1.0.1 - user_usage_report: 1.4.2 - viewer: 1.4.0 - w2g2: 3.0.3 - weather_status: 1.0.0 - whiteboard: 0.0.3 - workflowengine: 2.2.0 Disabled: - encryption - files_antivirus - files_downloadactivity - files_retention - files_trackdownloads - maps - ownpad - registration - user_ldap ```
Configuration (config/config.php) ``` { "instanceid": "***REMOVED SENSITIVE VALUE***", "passwordsalt": "***REMOVED SENSITIVE VALUE***", "secret": "***REMOVED SENSITIVE VALUE***", "trusted_domains": [ "coopnow.fr", "collab.advit.am", "coop.coopnow.fr", "nc.c-l.io" ], "datadirectory": "***REMOVED SENSITIVE VALUE***", "tempdirectory": "\/home\/nc\/tmp", "overwrite.cli.url": "https:\/\/coopnow.fr", "htaccess.RewriteBase": "\/", "dbtype": "mysql", "version": "20.0.9.1", "dbname": "***REMOVED SENSITIVE VALUE***", "dbhost": "***REMOVED SENSITIVE VALUE***", "dbport": "3306", "dbtableprefix": "oc_", "dbuser": "***REMOVED SENSITIVE VALUE***", "dbpassword": "***REMOVED SENSITIVE VALUE***", "logtimezone": "Europe\/Paris", "installed": true, "memcache.local": "\\OC\\Memcache\\APCu", "memcache.distributed": "\\OC\\Memcache\\Redis", "memcache.locking": "\\OC\\Memcache\\Redis", "redis": { "host": "***REMOVED SENSITIVE VALUE***", "port": 0, "dbindex": 0, "password": "***REMOVED SENSITIVE VALUE***", "timeout": 1.5 }, "mail_smtpmode": "smtp", "mail_domain": "***REMOVED SENSITIVE VALUE***", "maintenance": false, "theme": "", "loglevel": 2, "log.condition": { "apps": [ "admin_audit" ] }, "log_rotate_size": 104857600, "mail_smtpauthtype": "LOGIN", "mail_smtpsecure": "ssl", "mail_smtpauth": 1, "mail_smtphost": "***REMOVED SENSITIVE VALUE***", "mail_smtpport": "465", "mail_smtpname": "***REMOVED SENSITIVE VALUE***", "mail_smtppassword": "***REMOVED SENSITIVE VALUE***", "updater.release.channel": "stable", "mysql.utf8mb4": true, "has_rebuilt_cache": true, "mail_sendmailmode": "smtp", "mail_from_address": "***REMOVED SENSITIVE VALUE***", "encryption.legacy_format_support": false, "encryption.key_storage_migrated": false } ```

Are you using external storage, if yes which one: local (NFS)

Are you using encryption:

Are you using an external user-backend, if yes which one:

Client configuration

Browser: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0

Operating system: Linux

Logs

Web server error log ``` no related error ```
Nextcloud log ``` no related error ```
Browser log Uncaught (in promise) Error: Request failed with status code 500 exports createError.js:16 exports settle.js:17 onreadystatechange xhr.js:62 exports xhr.js:37 exports xhr.js:13 exports dispatchRequest.js:52 promise callback*c.prototype.request Axios.js:61 t Axios.js:76 exports bind.js:9 value BoardApi.js:114 e main.js:406 c runtime.js:45 _invoke runtime.js:274 e runtime.js:97 V main.js:1644 a main.js:1644 Z main.js:1644 Z main.js:1644 loadBoards main.js:405 g vuex.esm.js:851 dispatch vuex.esm.js:516 dispatch vuex.esm.js:406 created App.vue:98 VueJS 17 main.js:67 main.js:2228 Webpack 3 createError.js:16:14 This error is trigerred by main.js
juliusknorr commented 3 years ago

Uncaught (in promise) Error: Request failed with status code 500

There is a server error so you should definitely see something in the server logs

khassad commented 3 years ago

I agree, and yes I see some 500 for this request in nginx logs but that's all. I do have error on nextcloud.log but not about boards app recently. Any idea where I should look ?

juliusknorr commented 3 years ago

You could check the boards request response in the network console of your browser, maybe that gives a hint:

image

khassad commented 3 years ago

Yup, that was the idea ! :) { "status": 500, "message": "Argument 2 passed to OCA\\Circles\\Db\\MembersRequest::getGroupsFromCircle() must be an instance of OCA\\Circles\\Model\\Member, null given, called in <NC_ROOT_DIR>/apps/circles/lib/Service/CirclesService.php on line 333", "exception": { "\u0000*\u0000message": "Argument 2 passed to OCA\\Circles\\Db\\MembersRequest::getGroupsFromCircle() must be an instance of OCA\\Circles\\Model\\Member, null given, called in <NC_ROOT_DIR>/apps/circles/lib/Service/CirclesService.php on line 333", "\u0000Exception\u0000string": "", "\u0000*\u0000code": 0, "\u0000*\u0000file": "<NC_ROOT_DIR>/lib/private/AppFramework/Http/Dispatcher.php", "\u0000*\u0000line": 110, "\u0000Exception\u0000trace": [ { "file": "<NC_ROOT_DIR>/lib/private/AppFramework/App.php", "line": 152, "function": "dispatch", "class": "OC\\AppFramework\\Http\\Dispatcher", "type": "->" }, { "file": "<NC_ROOT_DIR>/lib/private/Route/Router.php", "line": 309, "function": "main", "class": "OC\\AppFramework\\App", "type": "::" }, { "file": "<NC_ROOT_DIR>/lib/base.php", "line": 1008, "function": "match", "class": "OC\\Route\\Router", "type": "->" }, { "file": "<NC_ROOT_DIR>/index.php", "line": 37, "function": "handleRequest", "class": "OC", "type": "::" } ], "\u0000Exception\u0000previous": {} } }

And I do have some errors like that in nextcloud.log, including while running background jobs.

We use Circles to share Decks and we sometimes binds groups to circles. Also I now had a different behavior : on at least 1 deck we can't even load it with the direct link, the loading icon keep turning... I'm not sure if this particular deck was shared through Circles thou

khassad commented 3 years ago

Some server logs found when a user tries to access a deck which is stuck. Looks like it's definitively tied to the Circles failing when resolving a circle into users list.

logs_bug_deck-20210427.txt

RaceX58 commented 3 years ago

I have exactly the same problem. It seems to be a rights problem because if I had the users to the "admin" group, it resolves the issue.

I'm using Deck 1.2.7 and Circcles 0.20.8

RaceX58 commented 3 years ago

Response from network console :

{"status":500,"message":"Call to a member function isLevel() on null","exception":{"\u0000*\u0000message":"Call to a member function isLevel() on null","\u0000Exception\u0000string":"","\u0000*\u0000code":0,"\u0000*\u0000file":"\/var\/www\/html\/nextcloud\/lib\/private\/AppFramework\/Http\/Dispatcher.php","\u0000*\u0000line":110,"\u0000Exception\u0000trace":[{"file":"\/var\/www\/html\/nextcloud\/lib\/private\/AppFramework\/App.php","line":152,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"-\u003E","args":[{},"index"]},{"file":"\/var\/www\/html\/nextcloud\/lib\/private\/Route\/Router.php","line":309,"function":"main","class":"OC\\AppFramework\\App","type":"::","args":["OCA\\Deck\\Controller\\BoardController","index",{},{"_route":"deck.board.index"}]},{"file":"\/var\/www\/html\/nextcloud\/lib\/base.php","line":1008,"function":"match","class":"OC\\Route\\Router","type":"-\u003E","args":["\/apps\/deck\/boards"]},{"file":"\/var\/www\/html\/nextcloud\/index.php","line":37,"function":"handleRequest","class":"OC","type":"::","args":[]}],"\u0000Exception\u0000previous":{}}}

khassad commented 3 years ago

I have exactly the same problem. It seems to be a rights problem because if I had the users to the "admin" group, it resolves the issue.

I'm using Deck 1.2.7 and Circcles 0.20.8

Hi, in our case being admin doesn't change anything. What we can see comparing your logs and ours is that it's the very same function, isLevel(), that is involved and throw the exception since it does get a null value, but in your case I don't see any call to a Circle function. Do you have any example of board being shared with a circle to compare the behavior with one without a circle in share list ?

RaceX58 commented 3 years ago

Do you have any example of board being shared with a circle to compare the behavior with one without a circle in share list ?

Ok so I did some tests :

It seems to be an issue with the Circle app.

khassad commented 3 years ago

Very good, we have narrowed the issue, at least for you case. But I'm curious : how did you remove circles from boards if they don't even load ?

RaceX58 commented 3 years ago

Very good, we have narrowed the issue, at least for you case. But I'm curious : how did you remove circles from boards if they don't even load ?

I added the boards creator to the "admin" group so he can access the boards. Then I removed the circles.

khassad commented 3 years ago

Ok, nice and thanks for the trick but in our case this doesn't even work since even as admin I don't get the boards list. Do you see the boards list when you are admin ? A user can enter the boards for which he still have a direct link somewhere, but only if they are not shared with a circle, some of them ends up loading without end through the direct link, being admin doesn't change anything.

RaceX58 commented 3 years ago

Ok, nice and thanks for the trick but in our case this doesn't even work since even as admin I don't get the boards list. Do you see the boards list when you are admin ?

The user needs to be in the admin group to see the list of boards. Maybe it's possible to remove the circle using a command line...

A user can enter the boards for which he still have a direct link somewhere, but only if they are not shared with a circle, some of them ends up loading without end through the direct link, being admin doesn't change anything.

I also have this infinite loading issue when the board is shared with circle and user not in the admin group

RaceX58 commented 3 years ago

Ok, nice and thanks for the trick but in our case this doesn't even work since even as admin I don't get the boards list. Do you see the boards list when you are admin ?

Maybe you can add an admin user to the circle and see if it helps.

khassad commented 3 years ago

Ok, nice and thanks for the trick but in our case this doesn't even work since even as admin I don't get the boards list. Do you see the boards list when you are admin ?

The user needs to be in the admin group to see the list of boards. I am in admin group and don't see anything, Deck behaviour is the same than with any user.

Maybe it's possible to remove the circle using a command line... I checked the API and I didn't see any way to remove a share... Quite a mistake imho :(

A user can enter the boards for which he still have a direct link somewhere, but only if they are not shared with a circle, some of them ends up loading without end through the direct link, being admin doesn't change anything.

I also have this infinite loading issue when the board is shared with circle and user not in the admin group You are luckier than us :)

khassad commented 3 years ago

Ok, nice and thanks for the trick but in our case this doesn't even work since even as admin I don't get the boards list. Do you see the boards list when you are admin ?

Maybe you can add an admin user to the circle and see if it helps.

Nope, I am admin and don't see any board.

I had to disable the Circles app then Deck got back to normal. This made the boards accessible again so it's a quick fix but it's bad since we loose all shares via Circles :( I hope we have provided enough data and this gets fixed soon.

Thanks for the help @RaceX58 :)

RaceX58 commented 3 years ago

Ok, nice and thanks for the trick but in our case this doesn't even work since even as admin I don't get the boards list. Do you see the boards list when you are admin ?

Maybe you can add an admin user to the circle and see if it helps.

Nope, I am admin and don't see any board.

I had to disable the Circles app then Deck got back to normal. This made the boards accessible again so it's a quick fix but it's bad since we loose all shares via Circles :( I hope we have provided enough data and this gets fixed soon.

Thanks for the help @RaceX58 :)

Glad I could help you. And I hope for a quick fix.

RaceX58 commented 3 years ago

This solved the issue

[https://github.com/nextcloud/circles/issues/576#issuecomment-828322516]

`$circle = $this->circlesRequest->getCircle( $circleUniqueId, $this->userId, Member::TYPE_USER, '', $forceAll ); /* if (!$forceAll) {

linuxpete commented 3 years ago

@RaceX58 : yes worked for me too: NextCloud : 20.0.8 Circles : 0.20.8 Deck: 1.2.7 Also Calendar : same type of issue : 2.2.1

All upgraded in one-session

Further : You will find the code around linenr 270 of nextcloud/apps/circles/lib/Service/ServiceCircle.php

thnx.

solracsf commented 3 years ago

https://github.com/nextcloud/circles/pull/566 causing these problems. Reverting this solves them both. In my case, both Decks boards and Calendars are back.

khassad commented 3 years ago

@RaceX58 : Same for me, I could reenable Circles after manually reverting the mentionned changes.