Client: [Ubuntu] [2.1.0] Bandwidth control options disabled?

Created on 5 Jan 2016  路  25Comments  路  Source: owncloud/client

Ubuntu 15.10. On Windows platform seems work fine.

owncloud

Known Issue / Workaround Server Involved

All 25 comments

Since 2.1: You need to have it compiled (or using packages) with at least Qt 5.4.x for this to be enabled.

https://owncloud.org/changelog/desktop/

Same problem:

Distributor ID: Ubuntu
Description: Ubuntu 15.10
Release: 15.10

sudo apt-get install qt5-default

owncloud client version 2.1.0

The same problem:
Distributor ID: Ubuntu
Description: Ubuntu 15.10
Release: 15.10

sudo apt-get install qt5-default
owncloud client version 2.1.0

The requirement: _You need to have it compiled (or using packages) with at least Qt 5.4.x for this to be enabled. _ Does not seem to be enough ... Perhaps the packages for ubuntu distributed by owncloud.org and suse.org are complied to use qt4 ...

Indeed, according to https://build.opensuse.org/build/isv:ownCloud:desktop/xUbuntu_15.10/x86_64/owncloud-client/_log Qt4 is used. The problem is that for the deb based builds (Debian, Ubuntus) we can not set the build requirements depending on the platform version it is building for. We can do that for rpms.

This is a limitation of the build system of OBS. An alternative would be to build in an official PPA but there we would need somebody to volunteer to do that.

FYI @jnweiger - maybe worth to talk to the OBS gurus about.

With deb packaging the mechanisms are different that with rpm packaging, but a hook for dynamic dependencies exists there too:

@dragotin you are already talking to an OBS guru :-)

The rules file can say in its override_dh_auto_install section

  test $whatever_condition && echo "qt:Depends=qt5-thing >> $(CURDIR)/debian/substvars

and then the control file can list

Package: owncloud-client
Depends: .... %{qt:Depends} ...

to make the binary depend on the qt5-thing, only if $whatever_condition was true at build time.

Any update on if/when this will be fixed?

2.1.1 is also affected. is there a way to manually change this in a config file?

It looks like there is code that parses such configuration from owncloud.cfg:

https://github.com/owncloud/client/blob/6c07f08175f031ce70cc0b7512343b03e6f898b6/src/libsync/configfile.cpp#L543

Adding the following lines to the cfg however does not reduce the bandwidth

[BWLimit]
useUploadLimit=true
useDownloadLimit=true
uploadLimit=10
downloadLimit=10

@dheineman once Ubuntu ships with a Qt version which also works with their proprietary changes to the systray in Unity (something half way working is already part of the upcoming Qt 5.6.0, but it's still not there).

@yhoogstrate No, this is a compile time option. The code path that makes bandwidth control work with older version of Qt used other libraries and was buggy, so we decided to remove it.

Sorry guys to bother you again... but it is really a problem for me and I assume also for others.
I assume it's not really elegant to do a static compilation for Qt5?

The problem for me is that ownClound syncs really agressively. When ownCloud is syncing with a server in the same local network, it takes all available bandwidth. This way my browser can't even load websites because they get timed out. Even worse, other people in my network can't use the wifi either, when owncloud on my instance is syncing.

If other people are having similar problems, maybe one of the following workarounds may be of use to you:

  • If you are not admin on the server you are syncing with, solve it at the client side. Shape the bandwith on the client side. There are quite some tools availble for GNU/Linux. They mostly work on interface level which means that it also shapes the bandwith of any other tool on your client instance. However, limiting the bandwith of an interface gives the other network members bandwith again. - http://www.hecticgeek.com/2012/02/simple-traffic-shaping-ubuntu-linux/
  • If you are admin, configure your web-server such that owncloud will consume less bandwith. If you are hosting to both internal as external networks you should probably set your limit twice as the network connection to the outside world has usually less bandwidth. There are several configurations possible, and especially if you have already setup an DDOS prevention system you need to be careful that you don't mix up or break those systems. You might find some useful tips to get started over here: http://linuxpoison.blogspot.nl/2012/02/setup-and-configure-bandwidth-limiting.html

@yhoogstrate If not each Linux distribution would cook their own soup we would have an easier time supporting several linux distributions at once. For OS X and Windows, we just ship our own Qt and it works.

My upload bandwidth seems capped at 100KB/s. I've just got a new net connection where I can upload at 4MB/s. Is there any work around using conf files for this annoying bug? Or any workaround that doesn't require building from source? This is making my uploads 40x slower than they need to be :(

My owncloud.cfg file doesn't have a BWLimit setting, is it hardcoded in the source perhaps?

I'm running Ubuntu 14.04, with the desktop client version 2.1

My upload bandwidth seems capped at 100KB/s.

@shanness I'd be surprised. If this is greyed out, the whole code path is that takes care of bandwith limiting is not run, and partly not even compiled in. What's your indication?

Hey @danimo, I was using iptraf to watch it. I just tried it again, and am getting about 500kb/s in iptraf, and 8MB says it'll take over 2 minutes in the desktop client.

I scp copied the files to the server I have owncloud on and got almost 4MB/s..
TestFile.jpg 100% 3927KB 3.8MB/s 00:01

Uploading from my phone using the owncloud app uploads the files in a couple of seconds. So it seems there is some weird rate limiting happening in the linux desktop client. And the bandwidth options are indeed greyed out.

@yhoogstrate BTW, if you start the client with OWNCLOUD_MAX_PARALLEL=1 owncloud you can at least lower the upload/download concurrency if you want.

@shanness For the same network connectin and the time file size, the Android client is much much faster?

@guruz Yes, for the same file size and the same internet connection, the android client is much much faster. The only difference is that the desktop client has ethernet into the router, and the phone is using wifi. But as you can see above, the scp (via the desktop computer) gets the same speed it seems as the android client. It's only this desktop client that runs slow :(

The loss of bandwidth control options means that the workaround to bug 9832 that I was using up til now is no longer doable.

@awnz You should be able to start the client with OWNCLOUD_MAX_PARALLEL=1 owncloud

Thanks @guruz for the suggestion, before I had a chance to try it I "got lucky" - the instance of this issue I was facing today was a regularly aborting download of about 60GB of photos and videos, I kept pausing/resuming when it failed, and just before you posted your suggestion I got though 20GB before 9832 reared its head and killed the connection.

On the first attempt after doing "export OWNCLOUD_MAX_PARALLEL=1; owncloud" it again failed with 9832, on second attempt it completed but had only 2GB to go at that point anyway.

I'll try it again next time I face a big sync, not sure when that'll be.

I can now report that the "export OWNCLOUD_MAX_PARALLEL=1; owncloud" does not get around this problem. And something about the ownCloud 2.2 client seems to be making this issue worse - it used to get through about a gig before failing, now I'm lucky for it to even get past scanning for changes and syncing the first few files for the photo repository that is so often a problem for me.

FWIW this looks to be affecting only the Linux build. I have a customer with a similarly huge photo repository syncing to Windows PCs without issue.

Can the last of the v2.0 Linux builds be made available for download please? That was my successful way around this issue.

Workaround back to working for me after compiling v2.0.2 myself by:

  1. Download and extract the ZIP from https://github.com/owncloud/client/tree/2.0.2
  2. sudo apt-get install libsqlite3-dev libssl-dev doxygen
  3. Following https://doc.owncloud.org/desktop/2.0/building.html (including dependencies listed there)
  4. cmake -DCMAKE_INSTALL_PREFIX=/usr ../client-2.0.2
  5. make
  6. sudo make install

@awnz I think this is a server issue or server configuration issue (PHP, webserver, FPM, whatever...).
Might also be related to the Qt version the client is using.

@awnz OK, maybe a server issue after all: https://github.com/owncloud/core/issues/24653

Thanks @guruz I've subscribed to that bug and once the fix is released (and #4828 also fixed/released) I'll try the repo current version again.

I'm having the same problem. I have installed all the QT5.6.2 packages (following https://github.com/owncloud/client/issues/4334#issuecomment-291894893 )

# dpkg -l | grep -P "owncloud|oc-\w*qt5"
ii  libowncloudsync0:amd64                      2.3.2-1.1                                                                        amd64        the ownCloud sync library
ii  oc-libqt5concurrent5:amd64                  5.6.2-88.1                                                                       amd64        Qt 5 concurrent module
ii  oc-libqt5core5a:amd64                       5.6.2-88.1                                                                       amd64        Qt 5 core module
ii  oc-libqt5dbus5:amd64                        5.6.2-88.1                                                                       amd64        Qt 5 D-Bus module
ii  oc-libqt5designer5:amd64                    5.6.2-1                                                                          amd64        Qt 5 designer module
ii  oc-libqt5designercomponents5:amd64          5.6.2-1                                                                          amd64        Qt 5 Designer components module
ii  oc-libqt5gui5:amd64                         5.6.2-88.1                                                                       amd64        Qt 5 GUI module
ii  oc-libqt5network5:amd64                     5.6.2-88.1                                                                       amd64        Qt 5 network module
ii  oc-libqt5opengl5:amd64                      5.6.2-88.1                                                                       amd64        Qt 5 OpenGL module
ii  oc-libqt5opengl5-dev:amd64                  5.6.2-88.1                                                                       amd64        Qt 5 OpenGL library development files
ii  oc-libqt5printsupport5:amd64                5.6.2-88.1                                                                       amd64        Qt 5 print support module
ii  oc-libqt5sql5:amd64                         5.6.2-88.1                                                                       amd64        Qt 5 SQL module
ii  oc-libqt5sql5-sqlite:amd64                  5.6.2-88.1                                                                       amd64        Qt 5 SQLite 3 database driver
ii  oc-libqt5test5:amd64                        5.6.2-88.1                                                                       amd64        Qt 5 test module
ii  oc-libqt5widgets5:amd64                     5.6.2-88.1                                                                       amd64        Qt 5 widgets module
ii  oc-libqt5xml5:amd64                         5.6.2-88.1                                                                       amd64        Qt 5 XML module
ii  oc-qt5-default:amd64                        5.6.2-88.1                                                                       amd64        Qt 5 development defaults package
ii  oc-qt5-qmake:amd64                          5.6.2-88.1                                                                       amd64        Qt 5 qmake Makefile generator tool
ii  owncloud-client:amd64                       2.3.2-1.1                                                                        amd64        The ownCloud sync client - github.com/owncloud/client
ii  owncloud-client-l10n                        2.3.2-1.1                                                                        all          Internationalization files for ownCloud

# lsb_release -a
LSB Version:    core-9.20160110ubuntu0.2-amd64:core-9.20160110ubuntu0.2-noarch:security-9.20160110ubuntu0.2-amd64:security-9.20160110ubuntu0.2-noarch
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.2 LTS
Release:    16.04
Codename:   xenial
Was this page helpful?
0 / 5 - 0 ratings