10.0.1 fails with a call to undefined function

I’ve just updated to v10.0.1 and get a WSOD. THe error log contains this:

Fatal error:  Call to undefined function OC\\Security\\hash_equals() in /var/www/nextcloud/paragon/lib/private/Security/Crypto.php on line 128
Stack trace:
1. {main}() /var/www/nextcloud/paragon/index.php:0
2. require_once() /var/www/nextcloud/paragon/index.php:46
3. OC::init() /var/www/nextcloud/paragon/lib/base.php:1059
4. OC::initSession() /var/www/nextcloud/paragon/lib/base.php:660
5. OC\\Session\\CryptoWrapper->wrapSession() /var/www/nextcloud/paragon/lib/base.php:422
6. OC\\Session\\CryptoSessionData->__construct() /var/www/nextcloud/paragon/lib/private/Session/CryptoWrapper.php:98
7. OC\\Session\\CryptoSessionData->initializeSession() /var/www/nextcloud/paragon/lib/private/Session/CryptoSessionData.php:60
8. OC\\Security\\Crypto->decrypt() /var/www/nextcloud/paragon/lib/private/Session/CryptoSessionData.php:74

Any idea?

Which version of php are you using? Did you get errors with the code-integrity check (admin-page or via occ command)?

Could this be an issue from using a PHP version below 5.6? I thought the hash_equals function only worked on PHP 5.6 or higher.

It’s been the PHP version that caused the issue. I’m on Ubunutu 14.04 where PHP 5.5.9 is still the default and in fact the latest available PHP version in the canonical repositories. But I switched to PHP 5.6 using PPA and then Nextcloud was working again.

I was missing a notice about the new requirement of PHP 5.6, found it eventually in the index.php - but that wasn’t obvious. Have I missed something?

The function is available due to our 3rdparty folder.
Please make sure you uploaded that fully and correctly.

I’m deploying via git clone, so I guess I should be just fine also with regard to the 3rdparty folder, right?

If you did git submodule init + git submodule update yes

Yes, that’s OK. Just for the records, I’m doing this with Ansible and the relevant task for this looks like:

- name: "Clone Git Repository"
  git:
    accept_hostkey: yes
    repo: 'git@github.com:nextcloud/server.git'
    dest: '{{ webRoot }}'
    track_submodules: yes
    force: yes
    version: '{{ nextcloud_version }}'