raelgc / scudcloud

ScudCloud - Slack for Linux
https://launchpad.net/~rael-gc/+archive/ubuntu/scudcloud
MIT License
1.22k stars 99 forks source link

Hangs on Opening / Stuck at Motivational Quotes #594

Open pfogel opened 7 years ago

pfogel commented 7 years ago

ScudCloud Version

ScudCloud 1.57 Python 3.5.2 Qt 5.5.1 PyQt 5.5.1 SIP 4.17

Distro and Desktop info

Ubuntu 16.04 64-bit Unity desktop Kernel version: 4.4.0-92

Expected behavior

Actual behavior

When launched, Scudcloud hangs with the loading animation, but never loads any data. Cannot find anything relevant in logs: syslog, Xorg.0.log, etc. Not sure where Scudcloud logs activity.

Often, closing the window and restarting Scudcloud a few times fixes it. Today, restarted Scudcloud at least 10 times. Finally everything loaded after trying Edit/reload about 4 times.

Screenshot attached.

screenshot from 2017-08-24 09-04-56

The "self help test" succeeds; results pasted below:

IP Address: 128.xxxxxxxxx
User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0
JavaScript: Enabled
jQuery Loaded: Success
Asset CDN: Success (594ms)
Files Legacy: Success (767ms)
Files Edge: Success (395ms)
Files Location: Success (Slack files US West (Oregon) (location: A backend: imgproxy-04a2ca72f3a69c4e1))
Web Socket (Message Proxy A): Success
Web Socket (Message Proxy B): Success
Web Socket (Message Proxy C): Success
Web Socket (Message Proxy D): Success
Web Socket (Flannel): Success
Web Socket (Flannel [No Compression]): Success
Bandwidth: Success (167.3 Mbps, 67 ms ping)

Everything seems to have worked. If you're still experiencing problems, tell us about it.

Steps to reproduce

  1. Launch Scudcloud, either from the command line ("scudcloud &") or from the dock icon.
raelgc commented 7 years ago

Hi @pfogel and thanks for reporting this issue.

I didn't notice this... are you under a slow or intermittent connection?

Anyway, I'll keep an eye on my desktop too to check if I'll watch this behavior.

pfogel commented 7 years ago

My connection is fast and steady; part of a University infrastructure and in a building that used to house a super computer center: >200 Mbps.

I reported this because it has been happening pretty consistently. Every morning when I launch Scudcloud I have to restart it multiple times. This morning it took more than 30 minutes of fussing with it to get it to load data.

Where does it log so that I can check what is going on? Or do I need to launch it in debug mode or something like that?

raelgc commented 7 years ago

You can check the JS console: start in the command line with scudcloud --debug=True &, then after it loads, right click in the message pane and select Inspect.

Maximize the Inspector window and click in the Console tab.

mtb-xt commented 7 years ago

I'm seeing the same issue on Archlinux (amd64 kernel 4.12.3): Scudcloud 1.61, python 3.6.2, pyqt5 5.9.

When launched with debug, I can see some errors in the console, I've attached them in this gist: https://gist.github.com/mtb-xt/d4efe788cd4200fde0014ab0dfe983c7

I'm on 200 mbit\s symmetrical connection, and yes, restarting several times fixes the issue. But it started only a few days ago for me.

skarap commented 7 years ago

Seeing the same issue. The error are the same as reported by mtb-xt. Btw I have 2 teams added.

raelgc commented 7 years ago

@mtb-xt I can see several Slack JS errors. Other platform users complained about them too: https://bugs.webkit.org/show_bug.cgi?id=149551

I have a different webkit version running here (I've installed KDE Neon PPA). I'll open the debug console and check if I can see the same JS errors.

skelband commented 7 years ago

I'm getting this with Linux Mint 18.3.

raelgc commented 7 years ago

Please, can you all post the output of scudcloud --version ?

skarap commented 7 years ago

ScudCloud 1.50 Python 3.5.3 Qt 5.7.1 PyQt 5.7 SIP 4.18.1

for me it also started a couple of days ago, so I don't think the webkit issue has anything to do with this. Also - sometimes scudcloud is able to properly load, if I load slack and login in the browser.

mtb-xt commented 7 years ago

ScudCloud 1.61 Python 3.6.2 Qt 5.9.1 PyQt 5.9 SIP 4.19.3

pfogel commented 7 years ago

performance much better the last 2 days, but i'm not aware of any changes on my end. opens on the first try and loads reasonably quickly. possible something changed at slack?

raelgc commented 7 years ago

ScudCloud itself has not changed in the last 2 months. All Slack changes. They keep working and improving their JS. Sometimes they introduce a change that breaks our simple client and we need to change. But sometimes are just changes that they see are breaking some platforms, so they revert or fix.

I wish they had a proper API, but probably this will never happen.

loonies commented 7 years ago

I'm also affected. So annoying.

mtb-xt commented 7 years ago

The issue seems to have disappeared for me, weird...

CommodoreCrunch commented 7 years ago

I also get this on Arch, but only on the second of two teams. It doesn't matter if I restart, refresh, or sign out and back in. That second team never loads.

ScudCloud 1.61 Python 3.6.2 Qt 5.9.1 PyQt 5.9 SIP 4.19.3

raelgc commented 7 years ago

Someone still affected by this issue? Today I just pushed a webkit update for those on Ubuntu xenial and zesty.

skarap commented 7 years ago

I've seen this yesterday and today. Exiting and starting scudcloud again got it working.

raelgc commented 7 years ago

@skarap, still an issue for you? There are 2 issues related to this:

skarap commented 7 years ago

Haven't seen it for a few days now. Will send an update if it stops working again. Thanks

raelgc commented 7 years ago

Thank you!

loonies commented 7 years ago

I'm unable to start Scudcloud anymore. Anyone else affected?

ghostofkendo commented 7 years ago

Today, it started happening again to me too. I'm running Arch Linux.

$ scudcloud --version
ScudCloud 1.63
Python 3.6.2
Qt 5.9.1
WebKit 602.1
PyQt 5.9
SIP 4.19.3
loonies commented 7 years ago

Same here. Turned off Scudcloud the last night, unable to start it since this AM :(

raelgc commented 7 years ago

This is back :(

skelband commented 7 years ago

Doing the JS debug console thing, I see a load of errors at the bottom. Trying to upload a screenshot but I get an error from github :(

raelgc commented 7 years ago

image

skelband commented 7 years ago

selection_013

Different browser.

skelband commented 7 years ago

Yep. Looks like we get the same.

raelgc commented 7 years ago

I just tested here in a VM with KDE Neon (i.e., an environment with a newest qt+webkit) and it worked fine.

skelband commented 7 years ago

If there is a deb package available somewhere, I'm happy to give it a go.

RealGrep commented 7 years ago

Yup, was working fine previously, but now I just get an infinite spinny. Arch Linux, installed from the AUR.

ScudCloud 1.63
Python 3.6.2
Qt 5.9.1
WebKit 602.1
PyQt 5.9
SIP 4.19.3

Same as previously posted on Arch. I'm also trying to load the second team I added.

Thanks for your work, BTW, I appreciate it. Very useful.

pfogel commented 7 years ago

Yep, I'm back to this also. ScudCloud 1.57 Python 3.5.2 Qt 5.5.1 PyQt 5.5.1 SIP 4.17

And I also agree with RealGrep: very highly appreciate your hard work. Many thanks.

Am going to try installing the most recent release. (Have been using the version in the repo.) OK, that didn't do anything. Same behavior. Not fixed by repeatedly selecting "Reload" from the Edit menu.

pfogel commented 7 years ago

A colleague has informed me that there is now an official Ubuntu and Fedora package for Slack: https://slack.com/downloads/linux . Last time I checked they didn't have any.

Again, thanks to Rael for all of his hard work here.

raelgc commented 7 years ago

I'm trying to find a workaround for this (spent almost my entire morning on this). But the problem is: even the updated webkit I've published last month is not new enough to get the latest Slack working.

I tried in a KDE Neon (16.04) machine and it worked, but the packages to update are too many.

@pfogel Yes, there is an official client and it's really good.

dvdn commented 7 years ago

Got same issue with last version ( #600 )

ScudCloud 1.63 Python 3.5.2 Qt 5.5.1 WebKit 602.1 PyQt 5.5.1 SIP 4.17

Distro and Desktop info : 4.10.0-33-generic // 16.04.1-Ubuntu // x86_64 GNU/Linux

Merci

paoloantinori commented 7 years ago

Same problem on Fedora 26

skelband commented 7 years ago

@raelgc I appreciate all your efforts on this.

cbrune commented 7 years ago

@skelband I 2nd your thoughts -- @raelgc really appreciate your efforts here.

bums me out a bit. the "official" slack client does not support the X11 URGENCY bit in WM_HINTS, which I helped add to scudcloud.... sure is nice to be able to take things apart and put them back together how you want.

again @raelgc appreciate your efforts.

anonyth commented 7 years ago

Same issue here. My profile matches that of ghostofkendo and RealGrep above. I'm on Manjaro, have built (and rebuilt) from AUR, have stable bandwidth, use ~5 Slacks within, and also tried a fresh .cfg to rule out something sideways in my profile. @raelgc I'm grateful for your effort here. Scudcloud is a pleasure to use.

$ scudcloud --version
ScudCloud 1.63
Python 3.6.2
Qt 5.9.1
WebKit 602.1
PyQt 5.9
SIP 4.19.3
rashkopetrov commented 7 years ago

Same issue here.

It occurred recently just after dist-upgrading the Ubuntu.

~$ scudcloud --version
ScudCloud 1.63
Python 3.5.2
Qt 5.5.1
WebKit 602.1
PyQt 5.5.1
SIP 4.17

~$ uname -a
Linux Alexa 4.4.0-93-generic #116-Ubuntu SMP Fri Aug 11 21:17:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:    16.04
Codename:   xenial

Console log:

TypeError: d["a"].File is not a function. (In 'd["a"].File()', 'd["a"].File' is an instance of ProxyObject)
TypeError: undefined is not an object (evaluating 'TS.interop.redux.configureStore')
TypeError: undefined is not an object (evaluating 'a.id')
rosshadden commented 7 years ago

Guys I'm sure he gets it by now. Just thumbs-up this or an earlier comment if you have the same issue, and if you want notifications click the subscribe button. <3

tabowling commented 7 years ago

Same issue for me on Fedora 26

scudcloud-1.60-1.fc26.noarch python2-2.7.13-12.fc26.x86_64 python3-3.6.2-5.fc26.x86_64 qt-4.8.7-28.fc26.x86_64 package pyqt is not installed sip-4.19.1-1.fc26.x86_64

scudcloud error from 2017-09-20 08-06-40

HalisCz commented 7 years ago

Same issue here on Fedora 26:

ScudCloud 1.63 Python 3.6.2 Qt 5.7.1 WebKit 602.1 PyQt 5.8.1 SIP 4.19.1

raelgc commented 7 years ago

Guys, I spent a good time checking this. It's an "issue" in the Slack JS, very deep one (several layers of obscurity). I wrote "issue", because it works in updated web engines, but not in the qt version Ubuntu 16.04 and Fedora are using.

Solution one could be try to de-obfuscate their JS and see the whole reason for the failure.

Another solution would be upgrade again the web engine, but this time the upgrade would be huge.

The third alternative solution is to use the Qt WebEngine (which is based in Chromium), but will rely on upgrade a bulk of libraries too.

Alveel commented 7 years ago

How do these options compare to each other?

What kind of "huge" are we talking about if the web engine gets upgraded?

The first solution doesn't seem feasible unless you have a lot of free time on your hands, and know what you're doing I think.

HalisCz commented 7 years ago

@raelgc Thank you for quick reply, I really appreciate your work.

Can you include versions of web engine that works?

Do you consider using eg. flatpak for creating budle of scudcloud with up-to-date web engine included, so there will be no dependency hell for users?

Is there any way how can I help you? (Altough I don't have any JS knowledge, but maybe with flatpak etc.)

raelgc commented 7 years ago

@Alveel and @HalisCz, good questions.

Let me try to answer and give more solutions. I'd love comments!

1. Update webkit again

To upgrade webkit again, we need to upgrade more libraries this time (we're already using the most updated supported in 16.04 using default libraries). My first thought was trying to check the packages and dependencies in KDE Neon, because it's 16.04 and it has an updated webkit. But afraid it can break stuff. This will be smallest solution size, I think at least around 500MB.

To investigate this, we should get a KDE Neon install (I have it in a VM) and investigate all webkit dependencies (the package name is libqt5webkit5). I started to investigate once, but didn't finish (several dependencies), maybe there is an easier way to check Debian package dependency tree.

2. Use Qt WebEngine (Chromium based)

To use Qt WebEngine, I know the library is missing in any Debian based distros, but we should be able to download and build it from Qt website. But this uses around 1GB (last time I checked).

And it'll require some update in our code too: http://doc.qt.io/archives/qt-5.5/qtwebenginewidgets-qtwebkitportingguide.html

3. Flatpak

@HalisCz I thought about a flatpak/snap too. But last time I checked the snap dependencies, they were huge too (around 3GB). I'll check if flatpak has less dependencies for webkit/webengine.

4. Try a Electron/JS solution

That will be similar to the official app... what makes me wonder:

5. What's the point of ScudCloud today?

We're playing cat/mouse game here always trying to accommodate all Slack HTML/CSS/JS changes when they break ScudCloud. Made sense when no official client was provided, but now I got wondering if spend so much time with this (usually at night when family is sleeping) makes sense.

It's not Slack fault: they're a company and supposing to keep moving forward. They have an official client since some time ago, and they even improved the memory usage. Of course, we can discuss if they should offer a real API or not, but this is their business.

HalisCz commented 7 years ago

@raelgc

  1. Update webkit again

I would suggest run clean docker container with distribution of choice (ubuntu 17.04 I guess) and try to install requested version of webkit. Apt will ask if you agree to install all those dependencies and it wil list them.

  1. Use Qt WebEngine (Chromium based)

I am not sure about the idea of trying to fit in weekly updated scudcloud into rock-solid stable distribution like debian. Either users want updated scudcloud, so they should get updated webkit (so no reason to use Qt WebEngine), or they are not. If you are seriously thinking about bundling libraries within scudcloud package, I would deeply suggest flatpak (because of this is it's purpose)

  1. Flatpak

I would be happy to help you develop flatpak package, altough I've never tried (yet). If you have library issues, I think this is the correct way.

  1. Try a Electron/JS solution

Agreed. I dislike this option.

  1. What's the point of ScudCloud today?

Only the project owner can settle the project's purpose. But I can say that I am using scudcloud because:

djb61 commented 7 years ago

Unless I have missed it the official client for Linux doesn't work with proxy servers. That is the main reason I had stuck with scudcloud even after they launched the official client.

chris48s commented 7 years ago

Unless I have missed it the official client for Linux doesn't work with proxy servers.

@djb61 From https://get.slack.help/hc/en-us/articles/212924728-Slack-for-Linux-beta-

You can specify the proxy server used with the --proxy-server=IP:port command line switch