[pkg-horde] Bug#810858: Bug#810858: webmail-install and horde try to create db schema multiple times + wrong schema version

Ivan Sergio Borgonovo ivan.s.b at gmail.com
Wed Jan 13 11:09:01 UTC 2016


Hi,

On 01/13/2016 10:49 AM, Mathieu Parent wrote:
> 2016-01-12 22:28 GMT+01:00 Ivan Sergio Borgonovo <ivan.s.b at gmail.com>:
>> Package: php-horde-webmail
>> Version: 5.2.11-1
>
> Hello,
>
>> I had to fresh reinstall horde on Debian testing.
>>
>> It was installed several months ago on the same machine and it was working,
>> it passed through a series of updates and I just had to update the DB schema
>> of some components.
>> Now with the same package version that were previously working fine and
>> coming from a series of upgrades I can't get a fresh install working.
>>
>> I did
> [...]
>> Dropped the DB, run horde-db-migrate. It successfully build the DB with no
>> error this time but again, when I log into horde it tries again to create
>> imp_schema_info table.
>
> Can you try this again with logs enabled and post them here?

On testing with current assortment of horde packages.
Step by step what I did:

createuser -E -P horde
createdb -O horde horde "Horde DB"

aptitude install php-horde-webmail

webmail-install

[webmail-install doesn't accept parameters and it doesn't seem to read 
any configuration file where I could set any logging option]

DB: pgsql
user: horde
password: pino
connection: unix
socket: /var/run/postgresql
port: default
DB: horde
charset: utf-8
Split: false

Creating and updating database tables...
====================

Fatal Error:
SQLSTATE[42P07]: Duplicate table: 7 ERROR:  relation "imp_schema_info" 
already exists
In /usr/share/php/Horde/Db/Adapter/Pdo/Base.php on line 231

  1. Horde_Core_Bundle->migrateDb() /usr/bin/webmail-install:32
  2. Horde_Core_Db_Migration->getMigrator() 
/usr/share/php/Horde/Core/Bundle.php:102
  3. Horde_Db_Migration_Migrator->__construct() 
/usr/share/php/Horde/Core/Db/Migration.php:125
  4. Horde_Db_Migration_Migrator->_initializeSchemaInformation() 
/usr/share/php/Horde/Db/Migration/Migrator.php:77
  5. Horde_Db_Adapter_Base_TableDefinition->end() 
/usr/share/php/Horde/Db/Migration/Migrator.php:281
  6. Horde_Db_Adapter_Base_Schema->endTable() 
/usr/share/php/Horde/Db/Adapter/Base/TableDefinition.php:207
  7. Horde_Db_Adapter_Postgresql_Schema->execute() 
/usr/share/php/Horde/Db/Adapter/Base/Schema.php:569
  8. Horde_Db_Adapter_Base_Schema->__call() 
/usr/share/php/Horde/Db/Adapter/Base/Schema.php:569
  9. call_user_func_array() 
/usr/share/php/Horde/Db/Adapter/Base/Schema.php:166
10. Horde_Db_Adapter_Pdo_Base->execute()
11. Horde_Core_Bundle->migrateDb() /usr/bin/webmail-install:32
12. Horde_Core_Db_Migration->getMigrator() 
/usr/share/php/Horde/Core/Bundle.php:102
13. Horde_Db_Migration_Migrator->__construct() 
/usr/share/php/Horde/Core/Db/Migration.php:125
14. Horde_Db_Migration_Migrator->_initializeSchemaInformation() 
/usr/share/php/Horde/Db/Migration/Migrator.php:77
15. Horde_Db_Adapter_Base_TableDefinition->end() 
/usr/share/php/Horde/Db/Migration/Migrator.php:281
16. Horde_Db_Adapter_Base_Schema->endTable() 
/usr/share/php/Horde/Db/Adapter/Base/TableDefinition.php:207
17. Horde_Db_Adapter_Postgresql_Schema->execute() 
/usr/share/php/Horde/Db/Adapter/Base/Schema.php:569
18. Horde_Db_Adapter_Base_Schema->__call() 
/usr/share/php/Horde/Db/Adapter/Base/Schema.php:569
19. call_user_func_array() 
/usr/share/php/Horde/Db/Adapter/Base/Schema.php:166
20. Horde_Db_Adapter_Pdo_Base->execute()
21. PDO->query() /usr/share/php/Horde/Db/Adapter/Pdo/Base.php:231

Now... let's edit /etc/horde/horde/conf.php and increase the logging 
level to DEBUG and visit http://site/horde/

journald let me know in console that:

Message from syslogd at caronte at Jan 13 11:34:22 ...
  HORDE: [horde] SQLSTATE[42P07]: Duplicate table: 7 ERROR:  relation 
"imp_schema_info" already exists [pid 484 on line 235 of 
"/usr/share/php/Horde/Db/Adapter/Pdo/Base.php"]

Broadcast message from systemd-journald at caronte (Wed 2016-01-13 11:34:22 
CET):

HORDE[484]: [horde] SQLSTATE[42P07]: Duplicate table: 7 ERROR:  relation 
"imp_schema_info" already exists [pid 484 on line 235 of 
"/usr/share/php/Horde/Db/Adapter/Pdo/Base.php"]

YES, twice!

and the web page with the log is in the attachment.

Reloading after "autologin" doesn't produce any error.

Going in Administration -> configuration report ALL insalled components 
as "DB access is not configured" with the exception of "Horde" and 
"timeobjects".

As said before proceeding to create conf.files for the various 
application DOESN'T change the "DB access is not configured" status.

Logging out and back in result in the same error as the first login.
If I configure kronolith I get the

SQLSTATE[42703]: Undefined column: 7 ERROR: column "event_timezone" does 
not exist LINE 1: ...endees, event_title, event_recurcount, event_url, 
event_time... ^

error too.

kronolith tables are there but the kronolith_events table doesn't 
contain any event_timezone column for example.

Attached you could even find a list of the tables created.

And I get:

horde=# select * from kronolith_schema_info ;
  version
---------
       17
(1 row)

horde=# select * from imp_schema_info ;
  version
---------
        3

now

dropdb horde
createdb -O horde horde "Horde DB"
horde-db-migrate &>~/Documents/nfs/migrate-db.log
no error reported, log attached.
logging back to horde via web get the same results (DB acccess is not 
configured...).

Avoiding to drop the DB before running horde-db-migrate abort early 
trying to recreate imp_schema_info.
DB content seems identical to the one obtained running webmail-install 
(same kronolith and imp version, same missing columns in kronolith_events).

If I knew more about horde internals I'd try to dig deeper in what:
Horde_Core_Db_Migration->getMigrator() 
/usr/share/horde/lib/LoginTasks/Task/AdminCheck.php:54
and why it feels the need to keep trying to update the DB.
Apparently the DB have to be updated since kronolith is missing some 
columns, but something is not going as expected, possibly for the mix of 
application versions currently in testing.

thanks

-- 
Ivan Sergio Borgonovo
http://www.webthatworks.it

-------------- next part --------------
A non-text attachment was scrubbed...
Name: horde.log
Type: text/x-log
Size: 178505 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-horde-hackers/attachments/20160113/8dcc4bc3/attachment-0001.bin>
-------------- next part --------------
                     List of relations
 Schema |               Name               | Type  | Owner 
--------+----------------------------------+-------+-------
 public | content_schema_info              | table | horde
 public | gollem_schema_info               | table | horde
 public | gollem_shares                    | table | horde
 public | gollem_shares_groups             | table | horde
 public | gollem_shares_users              | table | horde
 public | gollem_sharesng                  | table | horde
 public | gollem_sharesng_groups           | table | horde
 public | gollem_sharesng_users            | table | horde
 public | horde_alarm_schema_info          | table | horde
 public | horde_alarms                     | table | horde
 public | horde_auth_schema_info           | table | horde
 public | horde_cache                      | table | horde
 public | horde_cache_schema_info          | table | horde
 public | horde_core_schema_info           | table | horde
 public | horde_dav_collections            | table | horde
 public | horde_dav_objects                | table | horde
 public | horde_dav_schema_info            | table | horde
 public | horde_group_schema_info          | table | horde
 public | horde_groups                     | table | horde
 public | horde_groups_members             | table | horde
 public | horde_histories                  | table | horde
 public | horde_histories_modseq           | table | horde
 public | horde_history_schema_info        | table | horde
 public | horde_imap_client_data           | table | horde
 public | horde_imap_client_message        | table | horde
 public | horde_imap_client_metadata       | table | horde
 public | horde_imap_client_schema_info    | table | horde
 public | horde_lock_schema_info           | table | horde
 public | horde_locks                      | table | horde
 public | horde_muvfs                      | table | horde
 public | horde_perms                      | table | horde
 public | horde_perms_schema_info          | table | horde
 public | horde_prefs                      | table | horde
 public | horde_prefs_schema_info          | table | horde
 public | horde_queue_schema_info          | table | horde
 public | horde_queue_tasks                | table | horde
 public | horde_sessionhandler             | table | horde
 public | horde_sessionhandler_schema_info | table | horde
 public | horde_signups                    | table | horde
 public | horde_token_schema_info          | table | horde
 public | horde_tokens                     | table | horde
 public | horde_users                      | table | horde
 public | horde_vfs                        | table | horde
 public | horde_vfs_schema_info            | table | horde
 public | imp_schema_info                  | table | horde
 public | imp_sentmail                     | table | horde
 public | ingo_forwards                    | table | horde
 public | ingo_lists                       | table | horde
 public | ingo_rules                       | table | horde
 public | ingo_schema_info                 | table | horde
 public | ingo_shares                      | table | horde
 public | ingo_shares_groups               | table | horde
 public | ingo_shares_users                | table | horde
 public | ingo_sharesng                    | table | horde
 public | ingo_sharesng_groups             | table | horde
 public | ingo_sharesng_users              | table | horde
 public | ingo_spam                        | table | horde
 public | ingo_vacations                   | table | horde
 public | kronolith_events                 | table | horde
 public | kronolith_events_geo             | table | horde
 public | kronolith_resources              | table | horde
 public | kronolith_schema_info            | table | horde
 public | kronolith_shares                 | table | horde
 public | kronolith_shares_groups          | table | horde
 public | kronolith_shares_users           | table | horde
 public | kronolith_sharesng               | table | horde
 public | kronolith_sharesng_groups        | table | horde
 public | kronolith_sharesng_users         | table | horde
 public | kronolith_storage                | table | horde
 public | mnemo_memos                      | table | horde
 public | mnemo_schema_info                | table | horde
 public | mnemo_shares                     | table | horde
 public | mnemo_shares_groups              | table | horde
 public | mnemo_shares_users               | table | horde
 public | mnemo_sharesng                   | table | horde
 public | mnemo_sharesng_groups            | table | horde
 public | mnemo_sharesng_users             | table | horde
 public | nag_schema_info                  | table | horde
 public | nag_shares                       | table | horde
 public | nag_shares_groups                | table | horde
 public | nag_shares_users                 | table | horde
 public | nag_sharesng                     | table | horde
 public | nag_sharesng_groups              | table | horde
 public | nag_sharesng_users               | table | horde
 public | nag_tasks                        | table | horde
 public | rampage_objects                  | table | horde
 public | rampage_tag_stats                | table | horde
 public | rampage_tagged                   | table | horde
 public | rampage_tags                     | table | horde
 public | rampage_types                    | table | horde
 public | rampage_user_tag_stats           | table | horde
 public | rampage_users                    | table | horde
 public | trean_bookmarks                  | table | horde
 public | trean_schema_info                | table | horde
 public | turba_objects                    | table | horde
 public | turba_schema_info                | table | horde
 public | turba_shares                     | table | horde
 public | turba_shares_groups              | table | horde
 public | turba_shares_users               | table | horde
 public | turba_sharesng                   | table | horde
 public | turba_sharesng_groups            | table | horde
 public | turba_sharesng_users             | table | horde
(102 rows)



More information about the pkg-horde-hackers mailing list