"collabora online" does not work under seafile server pro 6.3.7

@daniel.pan
by doing the update seafile server pro 6.3.6 to 6.3.7 collabora no longer works. retrograding to 6.3.6 collabora works again
debian 9

seahub.log

2018-10-16 14:34:32,552 [ERROR] seahub.wopi.utils:208 get_wopi_dict Set wopi cache failed, key: wopi_access_token_fef72891c6274448a01ac700b928b398
2018-10-16 14:35:05,824 [ERROR] seahub.wopi.utils:208 get_wopi_dict Set wopi cache failed, key: wopi_access_token_07ebd953afea48d19d66293f2134210c

Have you tried restarting memcached / cleaning the cache?

yes, I cleaned the cache and restart memcached, the error is still present, I tried also by restarting the server, the error is still present. as soon as I go back to seafile server 6.3.6, it works without restarting the server or memcached

1 Like

Hello, I tested collabora online on our demo site(https://demo.seafile.com/demo) after I updated it to 6.3.7 pro, everything seams to be working fine.


Can you paste your conf/seahub_settings.py here ?

Hi
here is my configuration seahub_settings.py:

# -*- coding: utf-8 -*-
SECRET_KEY = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'seahub-db',
        'USER': 'seafile',
        'PASSWORD': 'XXXXXXXXXXXXXXXXXXX',
        'HOST': '127.0.0.1',
        'PORT': '3306'
    }
}

EMAIL_USE_TLS = True
EMAIL_BACKEND = 'django_smtp_ssl.SSLEmailBackend'
#EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 
EMAIL_HOST = 'XXXXX.XXX.XXX'
EMAIL_HOST_USER = 'cloud@XXXXX.XXX'
EMAIL_HOST_PASSWORD = 'XXXXXXXXXX'
EMAIL_PORT = 465
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
SERVER_EMAIL = EMAIL_HOST_USER
REPLACE_FROM_EMAIL = True
ADD_REPLY_TO_HEADER = True

#DEBUG = True

ENABLE_WIKI = True

#BRANDING_CSS = 'custom/custom.css'
#LOGO_PATH = 'custom/mylogo.png'
#LOGO_WIDTH = 250
#LOGO_HEIGHT = 41
#DESKTOP_CUSTOM_BRAND = 'Mon Cloud Personnel'
#DESKTOP_CUSTOM_LOGO = 'custom/desktop-custom-logo.png'
#FAVICON_PATH = 'custom/favicon.png'

# video thumbnails
ENABLE_VIDEO_THUMBNAIL = False
THUMBNAIL_VIDEO_FRAME_TIME = 20  # use the frame at 5 second as thumbnail
THUMBNAIL_ROOT = '/home/cloud/seahub-data/thumbnail/thumb/'
ENABLE_RESUMABLE_FILEUPLOAD = True
TIME_ZONE = 'Europe/Paris'
ENABLE_TERMS_AND_CONDITIONS = False
ENABLE_SYS_ADMIN_VIEW_REPO = True
SHOW_TRAFFIC = True
LANGUAGE_CODE = 'fr'
SITE_NAME = 'Seafile'
SITE_TITLE = 'Mon Espace Cloud'
ENABLE_SHARE_LINK_AUDIT = False
ENABLE_UPLOAD_LINK_VIRUS_CHECK = True
USE_PDFJS = True
FILE_PREVIEW_MAX_SIZE = 30 * 1024 * 1024
ENABLE_THUMBNAIL = True
THUMBNAIL_ROOT = '/home/cloud/seahub-data/thumbnail/thumb/'
THUMBNAIL_SIZE_FOR_ORIGINAL = 1024
THUMBNAIL_IMAGE_SIZE_LIMIT = 30 # MB
ENABLE_GUEST_INVITATION = True
NOTIFY_ADMIN_AFTER_REGISTRATION = True
ENABLE_USER_CLEAN_TRASH = True
ENABLE_SHARE_TO_ALL_GROUPS = True

# Add the ability of tagging a snapshot of a library (Use ENABLE_REPO_SNAPSHOT_LABEL = True to turn the feature on)
ENABLE_REPO_SNAPSHOT_LABEL = True

# Enable cloude mode and hide `Organization` tab.
CLOUD_MODE = False
# Disable global address book
ENABLE_GLOBAL_ADDRESSBOOK = True
MAX_NUMBER_OF_FILES_FOR_FILEUPLOAD = 2000

# If you don't want to run seahub website on your site's root path, set this option to your preferred path.
# e.g. setting it to '/seahub/' would run seahub on http://example.com/seahub/.
SITE_ROOT = '/'

# Config Memcached ( Http or Socket )
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': 'unix:/var/run/memcached.sock',
    }
}

LIBRARY_TEMPLATES = {
    'Mon Cloud': ['/Documents', '/Photo', '/Partage', '/Musique', '/Video']
}

ENABLED_ROLE_PERMISSIONS = {
    'default': {
        'can_add_repo': True,
        'can_add_group': True,
        'can_view_org': True,
        'can_use_global_address_book': True,
        'can_generate_share_link': True,
        'can_generate_upload_link': True,
        'can_invite_guest': True,
        'can_connect_with_android_clients': True,
        'can_connect_with_ios_clients': True,
        'can_connect_with_desktop_clients': True,
    },
    'guest': {
        'can_add_repo': False,
        'can_add_group': False,
        'can_view_org': True,
        'can_use_global_address_book': False,
        'can_generate_share_link': False,
        'can_generate_upload_link': False,
        'can_invite_guest': False,
        'can_connect_with_android_clients': False,
        'can_connect_with_ios_clients': False,
        'can_connect_with_desktop_clients': False,
    }
}

# From 6.1.0 CE version on, Seafile support viewing/editing **doc**, **ppt**, **xls** files via LibreOffice
# Add this setting to view/edit **doc**, **ppt**, **xls** files
OFFICE_SERVER_TYPE = 'CollaboraOffice'

# Enable LibreOffice Online
ENABLE_OFFICE_WEB_APP = True

# Url of LibreOffice Online's discovery page
# The discovery page tells Seafile how to interact with LibreOffice Online when view file online
# You should change `https://collabora-online.seafile.com/hosting/discovery` to your actual LibreOffice Online server address
OFFICE_WEB_APP_BASE_URL = 'https://office.boubou.me/hosting/discovery'

# Expiration of WOPI access token
# WOPI access token is a string used by Seafile to determine the file's
# identity and permissions when use LibreOffice Online view it online
# And for security reason, this token should expire after a set time period
WOPI_ACCESS_TOKEN_EXPIRATION = 30 * 60   # seconds

# List of file formats that you want to view through LibreOffice Online
# You can change this value according to your preferences
# And of course you should make sure your LibreOffice Online supports to preview
# the files with the specified extensions
OFFICE_WEB_APP_FILE_EXTENSION = ('odp', 'ods', 'odt', 'xls', 'xlsb', 'xlsm', 'xlsx','ppsx', 'ppt', 'pptm', 'pptx', 'doc', 'docm', 'docx')

# Enable edit files through LibreOffice Online
ENABLE_OFFICE_WEB_APP_EDIT = True

# types of files should be editable through LibreOffice Online
OFFICE_WEB_APP_EDIT_FILE_EXTENSION = ('odp', 'ods', 'odt', 'xls', 'xlsb', 'xlsm', 'xlsx','ppsx', 'ppt', 'pptm', 'pptx', 'doc', 'docm', 'docx')

I did a test and the problem is the same. 6.3.6 ok, 6.3.7 error
I have no errors in nginx and in loolwsd.log
i have only one error in seahub.log
2018-10-17 06:30:09,096 [ERROR] seahub.wopi.utils:208 get_wopi_dict Set wopi cache failed, key: wopi_access_token_783649f13cdc4cbba42b0aad4888e8a9

I can reproduce your issue now.

It’s caused by your cache setting in seahub_settings.py.

Try change your cache setting to the following, according to this manual.

CACHES = {
    'default': {
        'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
        'LOCATION': '127.0.0.1:11211',
    },
    'locmem': {
        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
    },
}
COMPRESS_CACHE_BACKEND = 'locmem'
2 Likes

thanks a lot for your help, it works now
congratulations for all the work done by the whole seafile team :wink:

Why is memached here really needed? If I have only a 3 Users Version, this cache could be omitted.