[imp] Mnemo stopped working after last upgrade

Michael J Rubinsky mrubinsk at horde.org
Fri Feb 13 15:08:52 UTC 2015


Quoting Jens Wahnes <wahnes at uni-koeln.de>:

> 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?

Good catch. The conditional should be checking against the lowercase  
word. Fixed in Git.


-- 
mike
The Horde Project
http://www.horde.org
https://www.facebook.com/hordeproject
https://www.twitter.com/hordeproject
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5869 bytes
Desc: S/MIME Signature
URL: <http://lists.horde.org/archives/imp/attachments/20150213/bd9a9abb/attachment.bin>


More information about the imp mailing list