Seafile server 6.2.3 is ready! OAuth support and other improvements

Authentication via OAuth is supported. This will help you to integrate Seafile with your OAuth login server. WSGI now uses 5 processors instead of using threads, so there will be no high CPU usage in IDLE state.

Warning: This version is packaged in a CentOS 7 machine instead of an old CentOS 6 machine. So there may be some compatiblity issues.

The full changelog:

  • Support OAuth (https://manual.seafile.com/deploy/oauth.html)
  • WSGI uses 5 processors by default instead of 3 processors each with 5 threads
  • [share] Add “click to select” feature for download/upload links.
  • [Admin] Show/edit contact email in admin panel.
  • [Admin] Show upload links in admin panel.
  • [fix] Fix Shibboleth login redirection issue, see Shared Links via Shibboleth
  • [fix] In some case failed to unshare a folder.
  • [fix] LDAP search issue.
  • [fix] Fix Safari downloaded file names are encoded like ‘test-%2F%4B.doc’ if it contains special characters.
  • [fix] Disable client encrypt library creation when creating encrypt library is disabled on server.
  • Other small UI improvements
8 Likes

Thanks!
I did do the minor upgrade and it works like a charm as far as I can tell!

Edit:
I’ll take that back, I got this error in seahub.log

2017-11-15 08:15:52,810 [ERROR] django.pylibmc:132 get MemcachedError: error 26 from memcached_get(:1:CUR_TOPINFO): Broken pipe
Traceback (most recent call last):
File “/usr/local/lib/python2.7/dist-packages/django_pylibmc/memcached.py”, line 130, in get
return super(PyLibMCCache, self).get(key, default, version)
File “/home/seafile/nohatech/seafile-server-6.2.3/seahub/thirdpart/Django-1.8.18-py2.7.egg/django/core/cache/backends/memcached.py”, line 84, in get
val = self._cache.get(key)
Error: error 26 from memcached_get(:1:CUR_TOPINFO): Broken pipe
2017-11-15 08:15:53,643 [ERROR] django.pylibmc:132 get MemcachedError: error 26 from memcached_get(:1:CUR_TOPINFO): Broken pipe
Traceback (most recent call last):
File “/usr/local/lib/python2.7/dist-packages/django_pylibmc/memcached.py”, line 130, in get
return super(PyLibMCCache, self).get(key, default, version)
File “/home/seafile/nohatech/seafile-server-6.2.3/seahub/thirdpart/Django-1.8.18-py2.7.egg/django/core/cache/backends/memcached.py”, line 84, in get
val = self._cache.get(key)
Error: error 26 from memcached_get(:1:CUR_TOPINFO): Broken pipe
2017-11-15 08:16:15,178 [ERROR] django.pylibmc:132 get MemcachedError: error 26 from memcached_get(:1:throttle_user_1): Broken pipe
Traceback (most recent call last):
File “/usr/local/lib/python2.7/dist-packages/django_pylibmc/memcached.py”, line 130, in get
return super(PyLibMCCache, self).get(key, default, version)
File “/home/seafile/nohatech/seafile-server-6.2.3/seahub/thirdpart/Django-1.8.18-py2.7.egg/django/core/cache/backends/memcached.py”, line 84, in get
val = self._cache.get(key)
Error: error 26 from memcached_get(:1:throttle_user_1): Broken pipe
2017-11-15 08:16:15,192 [ERROR] django.pylibmc:132 get MemcachedError: error 26 from memcached_get(:1:throttle_user_1): Broken pipe
Traceback (most recent call last):
File “/usr/local/lib/python2.7/dist-packages/django_pylibmc/memcached.py”, line 130, in get
return super(PyLibMCCache, self).get(key, default, version)
File “/home/seafile/nohatech/seafile-server-6.2.3/seahub/thirdpart/Django-1.8.18-py2.7.egg/django/core/cache/backends/memcached.py”, line 84, in get
val = self._cache.get(key)
Error: error 26 from memcached_get(:1:throttle_user_1): Broken pipe

I have rebooted the server now and let’s see if the error will get back or not.

It’s back:

2017-11-15 08:26:22,479 [ERROR] django.pylibmc:132 get MemcachedError: error 26 from memcached_get(:1:throttle_user_1): Broken pipe
Traceback (most recent call last):
File “/usr/local/lib/python2.7/dist-packages/django_pylibmc/memcached.py”, line 130, in get
return super(PyLibMCCache, self).get(key, default, version)
File “/home/seafile/nohatech/seafile-server-6.2.3/seahub/thirdpart/Django-1.8.18-py2.7.egg/django/core/cache/backends/memcached.py”, line 84, in get
val = self._cache.get(key)
Error: error 26 from memcached_get(:1:throttle_user_1): Broken pipe
2017-11-15 08:27:12,837 [ERROR] django.pylibmc:132 get MemcachedError: error 26 from memcached_get(:1:throttle_user_1): Broken pipe
Traceback (most recent call last):
File “/usr/local/lib/python2.7/dist-packages/django_pylibmc/memcached.py”, line 130, in get
return super(PyLibMCCache, self).get(key, default, version)
File “/home/seafile/nohatech/seafile-server-6.2.3/seahub/thirdpart/Django-1.8.18-py2.7.egg/django/core/cache/backends/memcached.py”, line 84, in get
val = self._cache.get(key)
Error: error 26 from memcached_get(:1:throttle_user_1): Broken pipe
2017-11-15 08:27:13,911 [ERROR] django.pylibmc:132 get MemcachedError: error 26 from memcached_get(:1:throttle_user_1): Broken pipe
Traceback (most recent call last):
File “/usr/local/lib/python2.7/dist-packages/django_pylibmc/memcached.py”, line 130, in get
return super(PyLibMCCache, self).get(key, default, version)
File “/home/seafile/nohatech/seafile-server-6.2.3/seahub/thirdpart/Django-1.8.18-py2.7.egg/django/core/cache/backends/memcached.py”, line 84, in get
val = self._cache.get(key)
Error: error 26 from memcached_get(:1:throttle_user_1): Broken pipe
2017-11-15 08:27:15,563 [ERROR] django.pylibmc:132 get MemcachedError: error 26 from memcached_get(:1:throttle_user_1): Broken pipe
Traceback (most recent call last):
File “/usr/local/lib/python2.7/dist-packages/django_pylibmc/memcached.py”, line 130, in get
return super(PyLibMCCache, self).get(key, default, version)
File “/home/seafile/nohatech/seafile-server-6.2.3/seahub/thirdpart/Django-1.8.18-py2.7.egg/django/core/cache/backends/memcached.py”, line 84, in get
val = self._cache.get(key)
Error: error 26 from memcached_get(:1:throttle_user_1): Broken pipe

How do I fix this issue?

Edit:
I have tried to delete the memcached.sock file and also cleard the memcached cache but it’s not fixing the issue it’s still there.

Ok this is really strange!
When I did change seahub_settings.py to the old configuration the errors did stop.

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': 'unix:/var/run/memcached.sock',
#       'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
#      'LOCATION': '/var/run/memcached.sock',
    }
}

@daniel.pan this is not a good issue is it safe to run with the old configuration until it’s fixed? I did notice other people alos having this issue with the Pro version.

Edit:
Also I can’t play movie files trough the webbrowser any more. It’s just saying that the format is not supported but I know it’s supported as it did work in 6.2.2

What system do you use?

Can you try:

sudo pip install --upgrade pylibmc django-pylibmc

I have started to recovery my server from backup as it was needed in production but as I did uninstall and re-install thoes two package and it did not help.
Also I did uninstall and re-installed the rest of the packages that is needed for memecached but no luck there either.
Everything did work before with 6.2.2 so I can’t see why the package should be a issue my guess was more some file that was not correctly configured with 6.2.3 but I could not figure it out and I was out of time as we need the server I started to recover it from backup.

Regarding the video files I did also there uninstall and reinstall ffmpeg, pillow and moviepy without any luck.
The videofiles that I tried to play in the webbrowser was mp4 and mov files non of them did work.

Edit: I’m running Ubuntu 16.04 LTS

Other users also have issues with the video player as well.

ffmpeg, pillow and moviepy are not needed to play mp4 and mov. It is a pure JS solution.

Ok I understand, but still it don’t work either are memcached.
Waiting for a update, can you reproduce the issue?

We can’t reproduce the issue. MP4 and mov can play in our testing.

I’m sure that is cause by bad CSP header setup and it’s not SeaHub problem.

As @holantomas says it’s because of the CSP, sorry that I did take that out on the seahub - I was a little quick on that.
But the memcached issue can you reproduce that?
That one did work before without any issue and also now when I’m back on my previuse backup memcached works fine.

Seahub backend won’t load completely because of an error (“TypeError: e is undefined”) in media/assets/scripts/dist/main.68c570aae3d0.js.

I replaced it for testing purposes with the corresponding file from 6.2.2 and the error was gone. Tested with FF52ESR and FF57.

@daniel.pan

I’m on 6.2.3 again and running on Ubuntu 16.04LTS in a try-out envurment and I still get this issue regarding memcached:

2017-11-15 15:27:57,999 [ERROR] django.pylibmc:132 get MemcachedError: error 26 from memcached_get(:1:throttle_user_1): Broken pipe
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/django_pylibmc/memcached.py", line 130, in get
    return super(PyLibMCCache, self).get(key, default, version)
  File "/home/seafile/nohatech/seafile-server-6.2.3/seahub/thirdpart/Django-1.8.18-py2.7.egg/django/core/cache/backends/memcached.py", line 84, in get
    val = self._cache.get(key)
Error: error 26 from memcached_get(:1:throttle_user_1): Broken pipe
2017-11-15 15:27:58,585 [ERROR] django.pylibmc:132 get MemcachedError: error 26 from memcached_get(:1:CUR_TOPINFO): Broken pipe
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/django_pylibmc/memcached.py", line 130, in get
    return super(PyLibMCCache, self).get(key, default, version)
  File "/home/seafile/nohatech/seafile-server-6.2.3/seahub/thirdpart/Django-1.8.18-py2.7.egg/django/core/cache/backends/memcached.py", line 84, in get
    val = self._cache.get(key)
Error: error 26 from memcached_get(:1:CUR_TOPINFO): Broken pipe
2017-11-15 15:27:58,742 [ERROR] django.pylibmc:132 get MemcachedError: error 26 from memcached_get(:1:CUR_TOPINFO): Broken pipe
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/django_pylibmc/memcached.py", line 130, in get
    return super(PyLibMCCache, self).get(key, default, version)
  File "/home/seafile/nohatech/seafile-server-6.2.3/seahub/thirdpart/Django-1.8.18-py2.7.egg/django/core/cache/backends/memcached.py", line 84, in get
    val = self._cache.get(key)
Error: error 26 from memcached_get(:1:CUR_TOPINFO): Broken pipe 

Do you need something from me to fix this issue?
If I use 6.2.2 it works, in 6.2.3 it brokes.

Edit:
Is it anymore users that have this issue with memcached?
You can find the error in seahub.log and it seem to only appear if your browsing Seafile trough the WebGUI.

Edit2:
Seafile 6.2.0 Pro has the same issue as 6.2.3 they are posts about it here in the forum.
So it seem this is something that are a side effect fore something that you have change in 6.2.2 to 6.2.3.

Here is some users that also has this issue but in Seafile 6.2.0 pro.
@Cisco @gauburtin

The problem with authorization with Cyrillic characters in the name.

2017-11-15 18:44:12,183 [ERROR] django.request:256 handle_uncaught_exception Internal Server Error: /oauth/callback/
Traceback (most recent call last):
  File "/mnt/data/cloud/seafile-server-6.2.3/seahub/thirdpart/Django-1.8.16-py2.7.egg/django/core/handlers/base.py", line 132, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/mnt/data/cloud/seafile-server-6.2.3/seahub/seahub/oauth/views.py", line 74, in _decorated
    return func(request)
  File "/mnt/data/cloud/seafile-server-6.2.3/seahub/seahub/oauth/views.py", line 138, in oauth_callback
    user_info, error = format_user_info(user_info_resp)
  File "/mnt/data/cloud/seafile-server-6.2.3/seahub/seahub/oauth/views.py", line 124, in format_user_info
    value = str(user_info_json.get(item, ''))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5: ordinal not in range(128)

After some further testing on a clean server, we found that there are two additional modules should be installed either:

centos 7:

yum install zlib-devel.x86_64 libmemcached-devel -y
pip install --upgrade pylibmc django-pylibmc

ubuntu 16.04:

apt-get install zlib1g-dev libmemcached-dev -y
pip install --upgrade pylibmc django-pylibmc

Could you test it again, and we are looking forward to your reply.

Best regards.

I’m getting in seafile.log every 5 minuts this message. Maybe devs just forget remove some debug dumps cause I think it’s not error but, it filling log file and it harder to find error messages.

[11/16/17 07:37:13] size-sched.c(96): Repo size compute queue size is 0

1 Like

I have already this package installed.
Still same issue.

Edit:
I did update Seafile trough the minor-update script, but I guess it doesent matter as that’s the right way to update it.
Did you try it with unix socket or http socket?

Also, you mention that it works on a clean server, does it work trough update for you as well?

I tested it again in a clean ubuntu 1604 server without error, this is screenshots of my seahub setting and the full command history.

Generally, I installed the following packages:

    8  sudo apt-get install python
    9  sudo apt-get install python2.7 libpython2.7 python-setuptools python-imaging python-ldap python-urllib3 ffmpeg python-pip sqlite3

   21  sudo apt-get install zlib1g-dev libmemcached-dev -y
   22  sudo pip install --upgrade pylibmc django-pylibmc

   30  sudo apt install memcached

Ok, I’m using socket and not HTTP for Memcached, I’ll try to switch to HTTP before I’m updating to 6.2.3 and look if that works instead.
I’ll get back to you.

Same issue, I did just access the WebGUI and then I did get this error in seahub.log and I did try HTTP memcached now.

2017-11-16 11:58:33,252 [ERROR] django.pylibmc:132 get MemcachedError: error 26 from memcached_get(:1:throttle_ping_192.168.234.1): Transport endpoint is not connected
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/django_pylibmc/memcached.py", line 130, in get
    return super(PyLibMCCache, self).get(key, default, version)
  File "/home/seafile/nohatech/seafile-server-6.2.3/seahub/thirdpart/Django-1.8.18-py2.7.egg/django/core/cache/backends/memcached.py", line 84, in get
    val = self._cache.get(key)
Error: error 26 from memcached_get(:1:throttle_ping_192.168.234.1): Transport endpoint is not connected
2017-11-16 12:04:33,282 [ERROR] django.pylibmc:132 get MemcachedError: error 26 from memcached_get(:1:throttle_ping_192.168.234.1): Transport endpoint is not connected
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/django_pylibmc/memcached.py", line 130, in get
    return super(PyLibMCCache, self).get(key, default, version)
  File "/home/seafile/nohatech/seafile-server-6.2.3/seahub/thirdpart/Django-1.8.18-py2.7.egg/django/core/cache/backends/memcached.py", line 84, in get
    val = self._cache.get(key)
Error: error 26 from memcached_get(:1:throttle_ping_192.168.234.1): Transport endpoint is not connected
2017-11-16 12:05:33,238 [ERROR] django.pylibmc:132 get MemcachedError: error 26 from memcached_get(:1:throttle_user_1): Transport endpoint is not connected
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/django_pylibmc/memcached.py", line 130, in get
    return super(PyLibMCCache, self).get(key, default, version)
  File "/home/seafile/nohatech/seafile-server-6.2.3/seahub/thirdpart/Django-1.8.18-py2.7.egg/django/core/cache/backends/memcached.py", line 84, in get
    val = self._cache.get(key)
Error: error 26 from memcached_get(:1:throttle_user_1): Transport endpoint is not connected
2017-11-16 12:07:33,272 [ERROR] django.pylibmc:132 get MemcachedError: error 26 from memcached_get(:1:throttle_ping_192.168.234.1): Transport endpoint is not connected
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/django_pylibmc/memcached.py", line 130, in get
    return super(PyLibMCCache, self).get(key, default, version)
  File "/home/seafile/nohatech/seafile-server-6.2.3/seahub/thirdpart/Django-1.8.18-py2.7.egg/django/core/cache/backends/memcached.py", line 84, in get
    val = self._cache.get(key)
Error: error 26 from memcached_get(:1:throttle_ping_192.168.234.1): Transport endpoint is not connected

Did you access the WebGUI after the clean install?
Is this due to the fact that I have updated/upgraded from 6.2.2 to 6.2.3?
As everything works in 6.2.2 the issue is in the update (6.2.3) and as you can run it with clean installation it seem that way that it’s the upgrade/update that are the issue some how.
SO how do we fix that? You can reproduce it if you first install 6.2.2 and then update to 6.2.3 and then brows to Seafile trough WebGUI and open a folder.

Edit:
I did go back to 6.2.2 trough the command ./minor-upgrade.sh and now everything works again.
So, I can say that the issue are with 6.2.3 as that’s the only thing that have changed on my server.

It’s no error, but it’s helpful to detect storage problems and performance issues, i think it’s good to have this number in the logs.