Skip to content

instanceid not set during ownCloud installation #33014

Open
@patrickjahns

Description

@patrickjahns

When installing ownCloud (via cli), the instanceid is not directly set.

This causes issue, when one wants to install ownCloud and set the configuration into a readonly mode ('config_is_read_only '=> true) directly afterwards.

The only place where we set the intanceId is at:

public static function getInstanceId() {
$id = \OC::$server->getSystemConfig()->getValue('instanceid', null);
if ($id === null) {
// We need to guarantee at least one letter in instanceid so it can be used as the session_name
$id = 'oc' . \OC::$server->getSecureRandom()->generate(10, \OCP\Security\ISecureRandom::CHAR_LOWER.\OCP\Security\ISecureRandom::CHAR_DIGITS);
\OC::$server->getSystemConfig()->setValue('instanceid', $id);
}
return $id;

Steps to reproduce

  1. install ownCloud (via cli)
  2. set 'config_is_read_only' => true in config.php
  3. try to access ownCloud // execute occ

Expected behaviour

ownCloud works

Actual behaviour

An unhandled exception has been thrown:
Exception: Config file is read only. in /Users/usr/projects/owncloud/source/core/lib/private/Config.php:141
Stack trace:
#0 /Users/usr/projects/owncloud/source/core/lib/private/SystemConfig.php(100): OC\Config->setValue('instanceid', 'ocms4l43rsh7')
#1 /Users/usr/projects/owncloud/source/core/lib/private/legacy/util.php(1132): OC\SystemConfig->setValue('instanceid', 'ocms4l43rsh7')
#2 /Users/usr/projects/owncloud/source/core/lib/private/Server.php(439): OC_Util::getInstanceId()
#3 /Users/usr/projects/owncloud/source/core/lib/composer/pimple/pimple/src/Pimple/Container.php(113): OC\Server->OC\{closure}(Object(OC\Server))
#4 /Users/usr/projects/owncloud/source/core/lib/private/AppFramework/Utility/SimpleContainer.php(108): Pimple\Container->offsetGet('MemCacheFactory')
#5 /Users/usr/projects/owncloud/source/core/lib/private/ServerContainer.php(86): OC\AppFramework\Utility\SimpleContainer->query('MemCacheFactory')
#6 /Users/usr/projects/owncloud/source/core/lib/private/Server.php(1195): OC\ServerContainer->query('MemCacheFactory')
#7 /Users/usr/projects/owncloud/source/core/lib/private/Server.php(593): OC\Server->getMemCacheFactory()
#8 /Users/usr/projects/owncloud/source/core/lib/composer/pimple/pimple/src/Pimple/Container.php(113): OC\Server->OC\{closure}(Object(OC\Server))
#9 /Users/usr/projects/owncloud/source/core/lib/private/AppFramework/Utility/SimpleContainer.php(108): Pimple\Container->offsetGet('AppManager')
#10 /Users/usr/projects/owncloud/source/core/lib/private/ServerContainer.php(86): OC\AppFramework\Utility\SimpleContainer->query('AppManager')
#11 /Users/usr/projects/owncloud/source/core/lib/private/Server.php(1411): OC\ServerContainer->query('AppManager')
#12 /Users/usr/projects/owncloud/source/core/lib/private/legacy/app.php(346): OC\Server->getAppManager()
#13 /Users/usr/projects/owncloud/source/core/lib/private/legacy/app.php(110): OC_App::getEnabledApps()
#14 /Users/usr/projects/owncloud/source/core/lib/base.php(577): OC_App::loadApps(Array)
#15 /Users/usr/projects/owncloud/source/core/lib/base.php(994): OC::init()
#16 /Users/usr/projects/owncloud/source/core/console.php(64): require_once('/Users/usr...')
#17 /Users/usr/projects/owncloud/source/core/occ(11): require_once('/Users/usr...')

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions