Server: 12.0.3 RC2 Update Error with SAML Backend

Created on 14 Sep 2017  路  11Comments  路  Source: nextcloud/server

Steps to reproduce

  1. Change Update-Channel to Beta
  2. Run php -f /var/www/cloud/htdocs/updater/updater.phar from console
  3. Install Update

Expected behaviour

Update.phar should Install Update from 12.0.2 to 12.0.3 RC2 without errors

Actual behaviour

Getting Error after "Updated databse"

PHP Fatal error: Class OCA\User_SAML\UserBackend contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (OCP\Authentication\IApacheBackend::getLogoutUrl) in /var/www/cloud/htdocs/apps/user_saml/lib/userbackend.php on line 467

Server configuration

Operating system: Debian 8.9 (Linux apache01 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u3 (2015-08-04) x86_64 GNU/Linux)

Web server: Apache 2.4.10-10+deb8u10

Database: MYSQL 5.6.30-1~bpo8+1

PHP version: php5-fpm 5.6.30+dfsg-0+deb8u1

Nextcloud version: 12.0.2

Updated from an older Nextcloud/ownCloud or fresh install: Fresh installed

Where did you install Nextcloud from: https://download.nextcloud.com/server/releases/nextcloud-12.0.2.zip

Signing status:


Signing status

Login as admin user into your Nextcloud and access 
http://example.com/index.php/settings/integrity/failed 
paste the results here.

List of activated apps:


App list

  - activity: 2.5.2
  - comments: 1.2.0
  - dav: 1.3.0
  - federatedfilesharing: 1.2.0
  - federation: 1.2.0
  - files: 1.7.2
  - files_pdfviewer: 1.1.1
  - files_sharing: 1.4.0
  - files_texteditor: 2.4.1
  - files_trashbin: 1.2.0
  - files_versions: 1.5.0
  - files_videoplayer: 1.1.0
  - firstrunwizard: 2.1
  - gallery: 17.0.0
  - logreader: 2.0.0
  - lookup_server_connector: 1.0.0
  - nextcloud_announcements: 1.1
  - notifications: 2.0.0
  - oauth2: 1.0.5
  - password_policy: 1.2.2
  - provisioning_api: 1.2.0
  - serverinfo: 1.2.0
  - sharebymail: 1.2.0
  - survey_client: 1.0.0
  - systemtags: 1.2.0
  - theming: 1.3.0
  - twofactor_backupcodes: 1.1.1
  - updatenotification: 1.2.0
  - user_ldap: 1.2.1
  - user_saml: 1.3.2
  - workflowengine: 1.2.0

Nextcloud configuration:


Config report

{
    "system": {
        "instanceid": "<REMOVED>",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "<REMOVED>"
        ],
        "datadirectory": "\/opt\/cloud-data",
        "overwrite.cli.url": "<REMOVED>",
        "dbtype": "mysql",
        "version": "12.0.2.0",
        "dbname": "cloud-lklg",
        "dbhost": "<REMOVED>",
        "dbport": "",
        "dbtableprefix": "oc_",
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "ldapIgnoreNamingRules": false,
        "ldapProviderFactory": "\\OCA\\User_LDAP\\LDAPProviderFactory",
        "forcessl": true,
        "forceSSLforSubdomains": true,
        "memcache.local": "\\OC\\Memcache\\APCu",
        "mail_smtpmode": "smtp",
        "mail_smtpauthtype": "LOGIN",
        "mail_from_address": "it-service",
        "mail_domain": "<REMOVED>",
        "mail_smtphost": "<REMOVED>",
        "updater.release.channel": "beta",
        "maintenance": false,
        "loglevel": 0,
        "theme": ""
    }
}

Are you using external storage, if yes which one: No

Are you using encryption: No

Are you using an external user-backend, if yes which one: LDAP + SAML

LDAP configuration (delete this part if not used)


LDAP config

Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade

  [Symfony\Component\Console\Exception\CommandNotFoundException]  
  There are no commands defined in the "ldap" namespace.

bug high

Most helpful comment

Update from 12.0.2 to 12.0.3 via Update-Channel 'stable' still results in:
PHP Fatal error: Class OCA\User_SAML\UserBackend contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (OCP\Authentication\IApacheBackend::getLogoutUrl) in /var/www/nextcloud/apps/user_saml/lib/userbackend.php on line 34

Solution: application of patch: https://github.com/nextcloud/user_saml/pull/145.patch

enables 'Update successful' via
sudo -u www-data ./occ upgrade

(subsequently disable maintenance mode in ./config/config.php:
'maintenance' => false,)

All 11 comments

PHP Fatal error: Class OCA\User_SAML\UserBackend contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (OCP\Authentication\IApacheBackend::getLogoutUrl) in /var/www/cloud/htdocs/apps/user_saml/lib/userbackend.php on line 467

https://github.com/nextcloud/server/pull/6177

And it was fixed in https://github.com/nextcloud/user_saml/pull/145 but not yet published: https://apps.nextcloud.com/apps/user_saml

cc @LukasReschke

Is there any simple way to fix this without restoring?

Is there any simple way to fix this without restoring?

Apply this patch to the user_saml app: https://github.com/nextcloud/user_saml/pull/145.patch

Many thanks. That allowed it to upgrade properly.

Sorry for this noob question, but where can I find this file in my directory structure? - It's not under nextcloud/lib...

ok, seems I have found the file - problem was, it's spelled lowercase. Still got problems after completing the update process...

New version is published in app store and should be pulled on the next update automatically or manually via the app management.

Update from 12.0.2 to 12.0.3 via Update-Channel 'stable' still results in:
PHP Fatal error: Class OCA\User_SAML\UserBackend contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (OCP\Authentication\IApacheBackend::getLogoutUrl) in /var/www/nextcloud/apps/user_saml/lib/userbackend.php on line 34

Solution: application of patch: https://github.com/nextcloud/user_saml/pull/145.patch

enables 'Update successful' via
sudo -u www-data ./occ upgrade

(subsequently disable maintenance mode in ./config/config.php:
'maintenance' => false,)

I have the same problem as yours @schmidchr

Updating the SAML app manually before upgrading via the apps interface should resolve this, there seems to be a bug in the updater that it is loading the app to early.

Updating the SAML app manually before upgrading via the apps interface should resolve this, there seems to be a bug in the updater that it is loading the app to early.

That is because it is an authentication type app. This could only be fixed by first upgrading user_saml and then run the server upgrade :/

We look into resolving such things in the future. Some work has been done in the caniupdate app: https://github.com/nextcloud/caniupdate

Was this page helpful?
0 / 5 - 0 ratings