Summary | kronolith set wrong type_id |
Queue | Kronolith |
Queue Version | 4.0.3 |
Type | Bug |
State | Resolved |
Priority | 1. Low |
Owners | mrubinsk (at) horde (dot) org |
Requester | patrick.vangilst (at) labri (dot) fr |
Created | 02/04/2013 (4531 days ago) |
Due | |
Updated | 02/07/2013 (4528 days ago) |
Assigned | 02/04/2013 (4531 days ago) |
Resolved | 02/07/2013 (4528 days ago) |
Github Issue Link | |
Github Pull Request | |
Milestone | |
Patch | No |
Thanks a lot!
commit 193679f879a1d42f58e10731636a67aa66cedec1
Author: Michael J Rubinsky <mrubinsk@horde.org>
Date: Wed Feb 6 12:31:57 2013 -0500
Cannot use array_combine - the order of $types is not guaranteed.
Possible fix for
Bug: 12016framework/Core/lib/Horde/Core/Tagger.php | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
http://git.horde.org/horde-git/-/commit/193679f879a1d42f58e10731636a67aa66cedec1
content/lib/Types/Manager.php) constructs a wrong DB statement:
SELECT type_id, type_name FROM `rampage_types` WHERE type_name IN
('event','calendar')
should be:
SELECT type_id, type_name FROM `rampage_types` WHERE type_name IN
(,'calendar','event')
I made a dump of arguments received by ensureTypes($types):
array(2) {
[0]=>
string(5) "event"
[1]=>
string(8) "calendar"
}
I'm investigating which function calls ensureType whith this arg....
Please tell me if I'm wrong....
130205 10:23:48 3510 Connect horde@localhost on horde
3510 Query SET NAMES 'utf8'
3510 Query SELECT 1
3510 Query SHOW CHARACTER SET
3510 Query SELECT 1
3510 Query SET NAMES 'utf8'
3511 Connect horde@localhost on horde
3511 Query SET NAMES 'utf8'
3511 Query SELECT 1
3511 Query SHOW CHARACTER SET
3511 Query SELECT 1
3511 Query SET NAMES 'utf8'
3511 Query SELECT 1
3511 Query SELECT g.group_uid AS group_uid, g.group_name AS
group_name FROM horde_groups g, horde_groups_members m WHERE
m.user_uid = 'vangilst' AND g.group_uid = m.group_uid ORDER BY
g.group_name
3510 Query SELECT 1
3510 Query SELECT DISTINCT s.* FROM kronolith_shares s LEFT JOIN
kronolith_shares_users u ON u.share_id = s.share_id WHERE
s.share_owner = 'vangilst' OR (s.perm_creator & 2) OR (s.perm_default
& 2) OR ( u.user_uid = 'vangilst' AND (u.perm & 2)) ORDER BY
s.attribute_name ASC
3511 Query SELECT 1
3511 Query SELECT g.group_uid AS group_uid, g.group_name AS
group_name FROM horde_groups g, horde_groups_members m WHERE
m.user_uid = 'vangilst' AND g.group_uid = m.group_uid ORDER BY
g.group_name
3510 Query SELECT 1
3510 Query SELECT DISTINCT s.* FROM nag_shares s LEFT JOIN
nag_shares_users u ON u.share_id = s.share_id WHERE (s.share_owner =
'vangilst' OR (s.perm_creator & 2) OR (s.perm_default & 2) OR (
u.user_uid = 'vangilst' AND (u.perm & 2))) ORDER BY s.attribute_name
ASC
3510 Query SELECT 1
3510 Query SELECT * FROM nag_shares WHERE share_name =
'Z2-15KN6MPKsOJYbOJTVuA1'
3511 Query SELECT 1
3511 Query SELECT g.group_uid AS group_uid, g.group_name AS
group_name FROM horde_groups g, horde_groups_members m WHERE
m.user_uid = 'vangilst' AND g.group_uid = m.group_uid ORDER BY
g.group_name
3510 Query SELECT 1
3510 Query SELECT DISTINCT s.* FROM nag_shares s LEFT JOIN
nag_shares_users u ON u.share_id = s.share_id WHERE (s.share_owner =
'vangilst' OR (s.perm_creator & 2) OR (s.perm_default & 2) OR (
u.user_uid = 'vangilst' AND (u.perm & 2))) AND share_owner =
'vangilst' ORDER BY s.attribute_name ASC
3511 Query SELECT 1
3511 Query SELECT g.group_uid AS group_uid, g.group_name AS
group_name FROM horde_groups g, horde_groups_members m WHERE
m.user_uid = 'vangilst' AND g.group_uid = m.group_uid ORDER BY
g.group_name
3510 Query SELECT 1
3510 Query SELECT DISTINCT s.* FROM nag_shares s LEFT JOIN
nag_shares_users u ON u.share_id = s.share_id WHERE (s.share_owner =
'vangilst' OR (s.perm_creator & 6) OR (s.perm_default & 6) OR (
u.user_uid = 'vangilst' AND (u.perm & 6))) ORDER BY s.attribute_name
ASC
3511 Query SELECT 1
3511 Query SELECT g.group_uid AS group_uid, g.group_name AS
group_name FROM horde_groups g, horde_groups_members m WHERE
m.user_uid = 'vangilst' AND g.group_uid = m.group_uid ORDER BY
g.group_name
3510 Query SELECT 1
3510 Query SELECT DISTINCT s.* FROM kronolith_shares s LEFT JOIN
kronolith_shares_users u ON u.share_id = s.share_id WHERE
(s.share_owner = 'vangilst' OR (s.perm_creator & 2) OR (s.perm_default
& 2) OR ( u.user_uid = 'vangilst' AND (u.perm & 2))) AND s.share_owner
= 'vangilst' ORDER BY s.attribute_name ASC
3510 Query SELECT 1
3510 Query SELECT * FROM kronolith_shares WHERE share_name =
'f0UhDsGiuZFPokNxbgrtcw1'
3512 Connect horde@localhost on horde
3512 Query SET NAMES 'utf8'
3512 Query SELECT 1
3512 Query SHOW CHARACTER SET
3512 Query SELECT 1
3512 Query SET NAMES 'utf8'
3510 Query SELECT 1
3510 Query SELECT object_id, object_name FROM `rampage_objects`
WHERE object_name IN ('') AND type_id = 1
3512 Query SELECT 1
3512 Query INSERT INTO kronolith_events (event_id, event_uid,
event_creator_id, event_title, event_description, event_location,
event_timezone, event_url, event_private, event_status,
event_attendees, event_resources, event_modified, event_start,
event_end, event_allday, event_alarm, event_alarm_methods,
event_recurtype, calendar_id) VALUES ('A88Rpf0sRcGK8kwsEpfSBQ1',
'20130205092348.2SnZwK5ThzMY-vjbxxxVsg1@webmail2.domainfr',
'vangilst', 'test', '', 'nowhere', '', '', 0, '2', 'a:0:{}', 'a:0:{}',
1360056228, '2013-02-20 00:00:00', '2013-02-20 01:00:00', 0, 0,
'a:0:{}', 0, 'f0UhDsGiuZFPokNxbgrtcw1')
3513 Connect horde@localhost on horde
3513 Query SET NAMES 'utf8'
3513 Query SELECT 1
3513 Query SHOW CHARACTER SET
3513 Query SELECT 1
3513 Query SET NAMES 'utf8'
3513 Query SELECT 1
3513 Query SELECT * FROM horde_histories WHERE object_uid =
'kronolith:f0UhDsGiuZFPokNxbgrtcw1:20130205092348.2SnZwK5ThzMY-vjbxxxVsg1@webmail2.domain.fr'
3513 Query SELECT 1
3513 Query INSERT INTO horde_histories (object_uid, history_ts,
history_who, history_desc, history_action, history_extra) VALUES
('kronolith:f0UhDsGiuZFPokNxbgrtcw1:20130205092348.2SnZwK5ThzMY-vjbxxxVsg1@webmail2.domain.fr', 1360056228, 'vangilst', NULL, 'add',
NULL)
3510 Query SELECT 1
3510 Query SELECT object_id, object_name FROM `rampage_objects`
WHERE object_name IN
('20130205092348.2SnZwK5ThzMY-vjbxxxVsg1@webmail2.domain.fr') AND
type_id = 1
3510 Query SELECT 1
3510 Query INSERT INTO `rampage_objects` (object_name, type_id)
VALUES ('20130205092348.2SnZwK5ThzMY-vjbxxxVsg1@webmail2.domain.fr', 1)
3510 Query SELECT 1
3510 Query SELECT user_id, user_name FROM `rampage_users` WHERE
user_name IN ('vangilst')
3510 Query SELECT 1
3510 Query SELECT tag_id FROM `rampage_tags` WHERE LOWER(tag_name)
= LOWER('test_tag')
3510 Query SELECT 1
3510 Query INSERT INTO `rampage_tags` (tag_name) VALUES ('test_tag')
3510 Query SELECT 1
3510 Query SELECT 1 from `rampage_tagged` WHERE user_id = 1 AND
object_id = 1 AND tag_id = 1
3510 Query SELECT 1
3510 Query INSERT INTO `rampage_tagged` (user_id, object_id,
tag_id, created) VALUES (1, 1, 1, '2013-02-05T09:23:48')
3510 Query SELECT 1
3510 Query UPDATE `rampage_tag_stats` SET count = count + 1 WHERE
tag_id = 1
3510 Query SELECT 1
3510 Query INSERT INTO `rampage_tag_stats` (tag_id, count) VALUES (1, 1)
3510 Query SELECT 1
3510 Query UPDATE `rampage_user_tag_stats` SET count = count + 1
WHERE user_id = 1 AND tag_id = 1
3510 Query SELECT 1
3510 Query INSERT INTO `rampage_user_tag_stats` (user_id, tag_id,
count) VALUES (1, 1, 1)
3510 Query SELECT 1
3510 Query SELECT pref_scope, pref_name, pref_value FROM
horde_prefs WHERE pref_uid = 'vangilst' AND pref_scope = 'horde'
3510 Query SELECT 1
3510 Query SHOW FIELDS FROM `horde_prefs`
3510 Query SELECT 1
3510 Query SELECT pref_scope, pref_name, pref_value FROM
horde_prefs WHERE pref_uid = 'vangilst' AND pref_scope = 'kronolith'
3510 Query SELECT 1
Any idea ?
horde-db-migrate -d kronolith 17 | tee /root/krono_down.log
I can see this DB statement in my log file:
== 18 KronolithUpgradeCategoriesToTags: Migrating event tags to
categories. ===
-- select('SELECT event_uid, event_category, event_creator_id,
calendar_id FROM kronolith_events')
2013-02-04T15:48:29+00:00 DEBUG: SQL (0.0004s)
SELECT event_uid, event_category, event_creator_id, calendar_id FROM
kronolith_events
-> 0.0010s
2013-02-04T15:48:29+00:00 DEBUG: SQL (0.0003s)
SELECT object_id, object_name FROM `rampage_objects` WHERE object_name
IN ('20130204154545.bOl19mYTouD2XSgXk7t5aQ2@webmail2.domain.fr') AND
type_id = 2
But nothing happens since type_id=1....
Then if I run:
horde-db-migrate -d kronolith 18 | tee /root/krono_up.log
I can see:
== 18 KronolithUpgradeCategoriesToTags: Migrating event categories to
tags. ===
-- select('SELECT event_uid, event_category, event_creator_id,
calendar_id FROM kronolith_events')
2013-02-04T15:53:43+00:00 DEBUG: SQL (0.0001s)
SELECT event_uid, event_category, event_creator_id, calendar_id FROM
kronolith_events
-> 0.0005s
2013-02-04T15:53:43+00:00 DEBUG: SQL (0.0002s)
SELECT object_id, object_name FROM `rampage_objects` WHERE object_name
IN ('20130204154545.bOl19mYTouD2XSgXk7t5aQ2@webmail2.domain.fr') AND
type_id = 2
2013-02-04T15:53:43+00:00 DEBUG: SQL (0.0062s)
INSERT INTO `rampage_objects` (object_name, type_id) VALUES
('20130204154545.bOl19mYTouD2XSgXk7t5aQ2@webmail2.domain.fr', 2)
Now I have the correct type_id in database.....
horde-db-migrate -d kronolith down
horde-db-migrate -d kronolith up
horde-clear-cache
but no change, events are still set with type_id=1......
The events are still in database but disapeared from web UI...
If I create a task in NAG, the type_id is 3, which is correct...
State ⇒ Feedback
cache since they should never change. Try migrating the content tables
down/up, then clearing the cache.
Milestone ⇒
State ⇒ Unconfirmed
Patch ⇒ No
Queue ⇒ Kronolith
Summary ⇒ kronolith set wrong type_id
Type ⇒ Bug
Priority ⇒ 1. Low
I'm setting up a fresh new install of Horde Webmail Edition 5.0.3
with Kronolith 4.0.3 on RHEL 6.3 with php-5.3.3.
Starting whith an empty database, I create an event in the default
calendar and it seems that the initial database setup sets wrong
type_id in rampage_types table.
Here are my sql statements:
mysql> select * from rampage_types;
+---------+-----------+
| type_id | type_name |
+---------+-----------+
| 1 | calendar |
| 2 | event |
| 3 | task |
+---------+-----------+
mysql> select * from rampage_objects;
+-----------+----------------------------------------------------------+---------+
| object_id | object_name
| type_id |
+-----------+----------------------------------------------------------+---------+
| 1 |
20130204125127.1iaIcsxax7sCZckU1QabJA8@webmail2.domain.fr | 1 |
| 3 |
20130204125519.nx1NVCc7PIHcjwaThqvk8A1@webmail2.domain.fr | 1 |
| 2 | RLfoTY0wyPu5wP7W2Tp5Rg9
| 2 |
+-----------+----------------------------------------------------------+---------+
mysql> select share_id, share_name, attribute_name from
kronolith_sharesng where share_name='RLfoTY0wyPu5wP7W2Tp5Rg9';
+----------+-------------------------+--------------------+
| share_id | share_name | attribute_name |
+----------+-------------------------+--------------------+
| 2 | RLfoTY0wyPu5wP7W2Tp5Rg9 | Agenda de <my_name> |
+----------+-------------------------+--------------------+
Here we can see that this share_name is a calendar (agenda), but in
rampage_objects table, the type_id is 2 (event).
It's the same for the events (type_id=1, calendar)....
This is annoying when migrating from my old H3 db to this new H5
install, because I can't see tags for events (sql statement looking
for type_id=1 for events, thus displaying no tags...)
Is there something wrong with my install, or is it a bug ?