Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Share panel makes navigator "extremely slow" and crashing #422

Closed
jacestk opened this issue Feb 20, 2018 · 9 comments · Fixed by #423
Closed

Share panel makes navigator "extremely slow" and crashing #422

jacestk opened this issue Feb 20, 2018 · 9 comments · Fixed by #423

Comments

@jacestk
Copy link
Contributor

jacestk commented Feb 20, 2018

This fantastic Apps is completly out of order... :(
We can't use it anymore and have tons of projects on it....
I think it cames from LDAP users search. It was fully working on NC12 (12.0.029) with Deck 0.3.0
[NEW]
After some debug, I can tell you:

  • all users are "upcoming" nicely but after a loooooooooooooong time using:
    /ocs/v1.php/apps/files_sharing/api/v1/sharees?format=json&itemType=0&itemType=1&perPage=4
    this is the waiting of this promise that makes the navigator crashing.

Steps to reproduce)

1.launch Deck
2.Open a deck on list
3. click on Share icon
4. after the panel is opened the navigator compeltly lag and stop working.

Expected behaviour

It should run normal :) like a charm

Actual behaviour

The navigator is completly out of order. Quickly it asks you to close the tab.

Server configuration

Operating system:
Centos7.2
Web server:
Apache 2.4

Database:
MariaDB
PHP version:
mysql Ver 15.1 Distrib 5.5.56-MariaDB

Nextcloud version: (see Nextcloud admin page)
13.0.0.14

Are you using an external user-backend, if yes which one: LDAP/ActiveDirectory/Webdav/...
using an 1200+ users LDAP

Client configuration

Browser:
ALL !

Operating system:
Win7Pro

Logs

Browser log

FIREFOX
Error: Script terminated by timeout at:
xa@http://mydomain.fr/core/vendor/core.js?v=33e9d56d-15:3:18349
css@http://mydomain.fr/core/vendor/core.js?v=33e9d56d-15:3:22501
Ha@http://mydomain.fr/core/vendor/core.js?v=33e9d56d-15:3:20560
set@http://mydomain.fr/core/vendor/core.js?v=33e9d56d-15:3:22850
style@http://mydomain.fr/core/vendor/core.js?v=33e9d56d-15:3:22285
n.fn[d]/<@http://mydomain.fr/core/vendor/core.js?v=33e9d56d-15:4:19886
n.access@http://mydomain.fr/core/vendor/core.js?v=33e9d56d-15:2:30220
n.fn[d]@http://mydomain.fr/core/vendor/core.js?v=33e9d56d-15:4:19646
$.fn.avatar@http://mydomain.fr/index.php/js/core/merged-template-prepend.js?v=33e9d56d-15:5112:3
link@http://mydomain.fr/apps/deck/js/public/app.js?v=33e9d56d-15:1128:4
Ra/<@http://mydomain.fr/apps/deck/js/vendor/angular/angular.min.js?v=33e9d56d-15:17:132
ta/<@http://mydomain.fr/apps/deck/js/vendor/angular/angular.min.js?v=33e9d56d-15:85:367
va@http://mydomain.fr/apps/deck/js/vendor/angular/angular.min.js?v=33e9d56d-15:85:426
p@http://mydomain.fr/apps/deck/js/vendor/angular/angular.min.js?v=33e9d56d-15:71:93
f@http://mydomain.fr/apps/deck/js/vendor/angular/angular.min.js?v=33e9d56d-15:62:388
da/<@http://mydomain.fr/apps/deck/js/vendor/angular/angular.min.js?v=33e9d56d-15:62:11
W/<@http://mydomain.fr/apps/deck/js/vendor/angular/angular.min.js?v=33e9d56d-15:67:138
d@http://mydomain.fr/apps/deck/js/vendor/angular/angular.min.js?v=33e9d56d-15:64:120
m@http://mydomain.fr/apps/deck/js/vendor/angular/angular.min.js?v=33e9d56d-15:68:163
link/<@http://mydomain.fr/apps/deck/js/vendor/angular/angular.min.js?v=33e9d56d-15:288:340
$digest@http://mydomain.fr/apps/deck/js/vendor/angular/angular.min.js?v=33e9d56d-15:148:398
$apply@http://mydomain.fr/apps/deck/js/vendor/angular/angular.min.js?v=33e9d56d-15:151:353
l@http://mydomain.fr/apps/deck/js/vendor/angular/angular.min.js?v=33e9d56d-15:103:165
t@http://mydomain.fr/apps/deck/js/vendor/angular/angular.min.js?v=33e9d56d-15:108:228
yg/</A.onload@http://mydomain.fr/apps/deck/js/vendor/angular/angular.min.js?v=33e9d56d-15:109:139

Erreur dans les liens source : SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
URL de la ressource : http://mydomain.fr/core/vendor/core.js?v=33e9d56d-15
URL du lien source : purify.min.js.map

@jacestk
Copy link
Contributor Author

jacestk commented Feb 20, 2018

Ok, the bug cames from the fact that all my users are filling the dropdown menu under the input name selector. So there are about 1200+ GET for the avatar running at the same time.
On old NC12 (12.0..0.29), only 2 steps (12 users) were coming, then when I was slidding the drop down menu, GET request were made 6 by 6.
I'm looking in the code were is the promise call to reduce the list and see if it is not running fast.
If you take a look at the "main user search" on the up right menubar,for myself it returns only the 24 first "A" users. Not all the whole list.

@juliushaertl
Copy link
Member

The sharing API doesn't respect the limit of users requested, so it returns all users when searching them in the servers ContactsManager. A partly fix is in nextcloud/server#8206 already, I'll see if I can add a hotfix to deck, so that at least the rendering of the users will be limited. So at least the massive wait time that is required during the list rendering should be fine then.

@jacestk
Copy link
Contributor Author

jacestk commented Feb 20, 2018

Ahah yep I thought also it was a bug from NC...

juliushaertl added a commit that referenced this issue Feb 20, 2018
fixes #422

Signed-off-by: Julius Härtl <jus@bitgrid.net>
@juliushaertl
Copy link
Member

#423 should help with the hanging UI.

@jacestk
Copy link
Contributor Author

jacestk commented Feb 21, 2018

Mhhhh or not :) Changed the lines below as mentioned in the patch:

 -                 var users = response.ocs.data.exact.users.concat(response.ocs.data.users);
+                 var users = response.ocs.data.exact.users.concat(response.ocs.data.users.slice(0, 4));
-                 var groups = response.ocs.data.exact.groups.concat(response.ocs.data.groups);
+                 var groups = response.ocs.data.exact.groups.concat(response.ocs.data.groups.slice(0, 4)); 

No changes for me... ?!?!

@juliushaertl
Copy link
Member

@jacestk In general you need to either patch the combined js file in js/public/app.js or enable debug more on your nextcloud instance so that all the js files get loaded individually.

@jacestk
Copy link
Contributor Author

jacestk commented Feb 22, 2018

Ok thank you, I made the patch and set on the debug mode. Just waiting for the NC core update!

@kluthe
Copy link

kluthe commented Feb 22, 2018

@juliushaertl - thank you for the workaround!

When I enable debug mode in nextcloud, the board user assignement works perfect. Fast and no loading problems from LDAP. I have 1200 Users.

But the Card user assignement is dead.

What does it mean "patch the combined js file in js/public/app.js"?

Deck is such an awesome app. Keep on!

@juliushaertl
Copy link
Member

What does it mean "patch the combined js file in js/public/app.js"?

We use a build script to combine all the individual js files into one app.js, since that is not available for the shipped release package, you need to find the code and patch it in app.js, if you don't run in debug mode.

Anyway I'll try to do a bugfix release soon, so that the fix will be available to everyone.

But the Card user assignement is dead.

I cannot reproduce that, can you open a new issue with some more details?

juliushaertl added a commit that referenced this issue Feb 25, 2018
fixes #422

Signed-off-by: Julius Härtl <jus@bitgrid.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants