[imp] Mnemo stopped working after last upgrade

Jens Wahnes wahnes at uni-koeln.de
Fri Feb 13 13:27:58 UTC 2015


On Thu, Feb 12 2015, at 12:01:34 +0100, Jan Schneider wrote:

> Zitat von Jens Wahnes <wahnes at uni-koeln.de>:
>> On Thu, Feb 12 2015, at 10:12:39 +0100, Jan Schneider wrote:
>>> Zitat von Jens Wahnes <wahnes at uni-koeln.de>:
>>>> On Wed, Feb 11 2015, at 10:41:40 -0500, Michael J Rubinsky wrote:
>>>>> Quoting Jens Wahnes <wahnes at uni-koeln.de>:
>>>>>> Don't know if these are related, but I'm having trouble since today's
>>>>>> update even after applying the above patch.  When trying to login after
>>>>>> the upgrade, the following message appears in the browser:
>>>>>>
>>>>>>   A fatal error has occurred
>>>>>>   Missing required connection parameter(s).
>>>>>>   Details have been logged for the administrator.
>>>>>>
>>>>>> In the logfile, I found these lines:
>>>>>>
>>>>>>   2015-02-10T18:36:57+01:00 EMERG: HORDE [mnemo] Missing required
>>>>>> connection parameter(s). [pid 21859 on line 56 of
>>>>>> "[...]/mnemo/lib/Driver/Sql.php"]
>>>>>>   2015-02-10T18:36:57+01:00 DEBUG: HORDE 1.
>>>>>> Horde_Core_Block_Layout_View->toHtml()
>>>>>> [...]/services/portal/index.php:35
>>>>>>   2. Horde_Core_Block->getContent()
>>>>>> /usr/share/pear/Horde/Core/Block/Layout/View.php:98
>>>>>>   3. Horde_Core_Block->_call() /usr/share/pear/Horde/Core/Block.php:175
>>>>>>   4. Mnemo_Block_Summary->_content()
>>>>>> /usr/share/pear/Horde/Core/Block.php:278
>>>>>>   5. Mnemo::listMemos() [...]/mnemo/lib/Block/Summary.php:59
>>>>>>   6. Mnemo_Factory_Driver->create() [...]/mnemo/lib/Mnemo.php:80
>>>>>>   7. Mnemo_Driver_Sql->__construct()  
>>>>>> [...]/mnemo/lib/Factory/Driver.php:73
>>>>>>
>>>>>> For all I can tell, this is related to Mnemo as well, but I fail to
>>>>>> understand what's actually going on there.
>>>>>> So far, the only way I found to get Horde running again was to add a line
>>>>>> to registry.local.php that reads
>>>>>>
>>>>>>   $this->applications['mnemo']['status'] = 'inactive';
>>>>>>
>>>>>> Any hints for a proper fix would be appreciated.
>>>>
>>>>> How have you configured the storage backend in Mnemo's configuration?
>>
>>>> $conf[storage][driver] is set to "SQL".  From what I can see in the
>>>> logfile, it's actually using the "mysqli" driver.  To me, it also looks
>>>> like there are several successful SQL queries being processed before
>>>> the error occurs.
>>>>
>>>> $conf[notepads][driver] is set to "Default".
>>>>
>>>> These settings have been like that for quite a while now. There were no
>>>> problems with previous updates.
>>
>>> Provide the *complete* configuration. Details are what matters.
>>
>> What do you mean by "complete configuration"? Mnemo's or Horde's?
>>
>> Here's the complete contents of mnemo/config/conf.php for starters:
>>
>> <?php
>> /* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
>> // $Id: d97e56b407852ff0a86c7d88c9a57c8f3089e82f $
>> $conf['storage']['params']['driverconfig'] = 'horde';
>> $conf['storage']['driver'] = 'sql';
>> $conf['notepads']['driver'] = 'default';
>> $conf['menu']['import_export'] = false;
>> /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */
>>
>>
>> config/conf.php looks like this, with a couple of strings replaced with
>> "[...]" because I don't want to share them publicly:
>>
>> <?php
>> /* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
>> // $Id: 41a4cec5f53fb2d327c8ed9e1c6cfd330a6b7217 $
>> $conf['vhosts'] = false;
>> $conf['debug_level'] = E_ALL & ~E_NOTICE;
>> $conf['max_exec_time'] = 0;
>> $conf['compress_pages'] = true;
>> $conf['secret_key'] = '[...]';
>> $conf['umask'] = 077;
>> $conf['testdisable'] = false;
>> $conf['use_ssl'] = 2;
>> $conf['server']['name'] = $_SERVER['SERVER_NAME'];
>> $conf['server']['port'] = [...];
>> $conf['urls']['token_lifetime'] = 30;
>> $conf['urls']['hmac_lifetime'] = 30;
>> $conf['urls']['pretty'] = false;
>> $conf['safe_ips'] = array();
>> $conf['session']['name'] = 'Horde';
>> $conf['session']['use_only_cookies'] = true;
>> $conf['session']['timeout'] = 0;
>> $conf['session']['cache_limiter'] = 'nocache';
>> $conf['session']['max_time'] = 72000;
>> $conf['cookie']['domain'] = $_SERVER['SERVER_NAME'];
>> $conf['cookie']['path'] = '/';
>> $conf['sql']['username'] = '[...]';
>> $conf['sql']['password'] = '[...]';
>> $conf['sql']['hostspec'] = '[...]';
>> $conf['sql']['port'] = 3306;
>> $conf['sql']['protocol'] = 'tcp';
>> $conf['sql']['database'] = '[...]';
>> $conf['sql']['charset'] = 'utf-8';
>> $conf['sql']['ssl'] = true;
>> $conf['sql']['splitread'] = false;
>> $conf['sql']['phptype'] = 'mysqli';
>> $conf['nosql']['phptype'] = false;
>> $conf['ldap']['useldap'] = false;
>> $conf['auth']['admins'] = array('[...]');
>> $conf['auth']['checkip'] = true;
>> $conf['auth']['checkbrowser'] = true;
>> $conf['auth']['resetpassword'] = true;
>> $conf['auth']['alternate_login'] = false;
>> $conf['auth']['redirect_on_logout'] = false;
>> $conf['auth']['list_users'] = 'list';
>> $conf['auth']['params']['app'] = 'imp';
>> $conf['auth']['driver'] = 'application';
>> $conf['auth']['params']['count_bad_logins'] = false;
>> $conf['auth']['params']['login_block'] = false;
>> $conf['auth']['params']['login_block_count'] = 5;
>> $conf['auth']['params']['login_block_time'] = 5;
>> $conf['signup']['allow'] = false;
>> $conf['log']['priority'] = 'DEBUG';
>> $conf['log']['ident'] = 'HORDE';
>> $conf['log']['name'] = '[...]/logs/horde.log';
>> $conf['log']['params']['append'] = true;
>> $conf['log']['params']['format'] = 'default';
>> $conf['log']['type'] = 'file';
>> $conf['log']['enabled'] = true;
>> $conf['log_accesskeys'] = false;
>> $conf['prefs']['maxsize'] = 65535;
>> $conf['prefs']['params']['driverconfig'] = 'horde';
>> $conf['prefs']['driver'] = 'Sql';
>> $conf['alarms']['params']['driverconfig'] = 'horde';
>> $conf['alarms']['params']['ttl'] = 300;
>> $conf['alarms']['driver'] = 'Sql';
>> $conf['group']['driverconfig'] = 'horde';
>> $conf['group']['driver'] = 'Sql';
>> $conf['perms']['driverconfig'] = 'horde';
>> $conf['perms']['driver'] = 'Sql';
>> $conf['share']['no_sharing'] = false;
>> $conf['share']['auto_create'] = true;
>> $conf['share']['world'] = true;
>> $conf['share']['any_group'] = false;
>> $conf['share']['hidden'] = false;
>> $conf['share']['cache'] = false;
>> $conf['share']['driver'] = 'Sqlng';
>> $conf['cache']['default_lifetime'] = 86400;
>> $conf['cache']['params']['sub'] = 0;
>> $conf['cache']['driver'] = 'File';
>> $conf['cache']['use_memorycache'] = '';
>> $conf['cachecssparams']['url_version_param'] = true;
>> $conf['cachecss'] = false;
>> $conf['cachejsparams']['url_version_param'] = true;
>> $conf['cachejs'] = false;
>> $conf['cachethemes'] = false;
>> $conf['lock']['params']['driverconfig'] = 'horde';
>> $conf['lock']['driver'] = 'Sql';
>> $conf['token']['params']['driverconfig'] = 'horde';
>> $conf['token']['driver'] = 'Sql';
>> $conf['history']['params']['driverconfig'] = 'horde';
>> $conf['history']['driver'] = 'Sql';
>> $conf['davstorage']['params']['driverconfig'] = 'horde';
>> $conf['davstorage']['driver'] = 'Sql';
>> $conf['mailer']['params']['host'] = '[...]';
>> $conf['mailer']['params']['port'] = 25;
>> $conf['mailer']['params']['secure'] = 'tls';
>> $conf['mailer']['params']['localhost'] = '[...]';
>> $conf['mailer']['params']['auth'] = false;
>> $conf['mailer']['params']['lmtp'] = false;
>> $conf['mailer']['type'] = 'smtp';
>> $conf['vfs']['params']['driverconfig'] = 'horde';
>> $conf['vfs']['type'] = 'Sql';
>> $conf['sessionhandler']['type'] = 'Builtin';
>> $conf['sessionhandler']['hashtable'] = false;
>> $conf['spell']['params']['path'] = '/usr/bin/hunspell';
>> $conf['spell']['driver'] = 'aspell';
>> $conf['gnupg']['keyserver'] = array('pool.sks-keyservers.net');
>> $conf['gnupg']['timeout'] = 10;
>> $conf['openssl']['cafile'] = '/etc/ssl/certs/';
>> $conf['openssl']['path'] = '/usr/bin/openssl';
>> $conf['nobase64_img'] = false;
>> $conf['image']['driver'] = false;
>> $conf['exif']['driver'] = 'Bundled';
>> $conf['timezone']['location'] =
>> 'ftp://ftp.iana.org/tz/tzdata-latest.tar.gz';
>> $conf['problems']['email'] = '[...];
>> $conf['problems']['maildomain'] = '[...]';
>> $conf['problems']['tickets'] = false;
>> $conf['problems']['attachments'] = true;
>> $conf['menu']['links']['help'] = 'all';
>> $conf['menu']['links']['prefs'] = 'authenticated';
>> $conf['menu']['links']['problem'] = 'all';
>> $conf['menu']['links']['login'] = 'all';
>> $conf['menu']['links']['logout'] = 'authenticated';
>> $conf['portal']['fixed_blocks'] = array();
>> $conf['accounts']['driver'] = 'null';
>> $conf['user']['verify_from_addr'] = false;
>> $conf['user']['select_view'] = true;
>> $conf['facebook']['enabled'] = false;
>> $conf['twitter']['enabled'] = false;
>> $conf['urlshortener'] = false;
>> $conf['weather']['provider'] = false;
>> $conf['imap']['enabled'] = false;
>> $conf['imsp']['enabled'] = false;
>> $conf['kolab']['enabled'] = false;
>> $conf['hashtable']['driver'] = 'none';
>> $conf['activesync']['enabled'] = false;
>> /* CONFIG END. DO NOT CHANGE ANYTHING IN OR BEFORE THIS LINE. */

> This is a pretty standard configuration and what most of us are using.  
> No idea where this error might be coming from.

So I dug a bit deeper into this and found that newer versions of mnemo
(newer than 4.2.3) introduce the following code in
mnemo/lib/Factory/Driver.php:

  if ($params['driverconfig'] != 'Horde') {

But in the config file shown above, however, there is a line that shows

  $conf['storage']['params']['driverconfig'] = 'horde';

So there is "Horde" with a capital "H" in one place but with a
lower-case "H" in the other.  Now if I set aside all warnings ("DO NOT
CHANGE ANYTHING"), i.e. if I do actually edit mnemo/config/conf.php to
read

  $conf['storage']['params']['driverconfig'] = 'Horde';

then everything is fine with mnemo 4.2.5.

This, of course, brings me to the question, how the entry in the config
file could be in the wrong case?  Never ever did I manually edit that
file before, I always used the GUI to do that.  As we have got two
instances of Horde running with both of them showing this behavior,
there seems to be something more general wrong with our setup.  But
what might that be?


Jens
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
URL: <http://lists.horde.org/archives/imp/attachments/20150213/94edd260/attachment.bin>


More information about the imp mailing list