6.0.0-alpha14
7/2/25

[#12016] kronolith set wrong type_id
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

History
02/07/2013 09:29:25 AM Jan Schneider State ⇒ Resolved
 
02/07/2013 09:04:01 AM patrick (dot) vangilst (at) labri (dot) fr Comment #9 Reply to this comment
I can confirm this fix works for me.
Thanks a lot!
02/06/2013 05:34:13 PM Git Commit Comment #8 Reply to this comment
Changes have been made in Git (master):

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: 12016

  framework/Core/lib/Horde/Core/Tagger.php |    5 +++--
  1 files changed, 3 insertions(+), 2 deletions(-)

http://git.horde.org/horde-git/-/commit/193679f879a1d42f58e10731636a67aa66cedec1
02/06/2013 11:10:56 AM Jan Schneider Comment #7 Reply to this comment
Please tell me if I'm wrong....
You are wrong.
02/06/2013 09:52:57 AM patrick (dot) vangilst (at) labri (dot) fr Comment #6 Reply to this comment
I think the problem is that ensureTypes (in 
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....



02/05/2013 10:25:34 AM Jan Schneider Assigned to Michael Rubinsky
 
02/05/2013 09:32:58 AM patrick (dot) vangilst (at) labri (dot) fr Comment #5 Reply to this comment
Here is mysqld.log when I create a new event with a tag:

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 ?

02/04/2013 04:02:08 PM patrick (dot) vangilst (at) labri (dot) fr Comment #4 Reply to this comment
I i try:
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.....

02/04/2013 03:25:52 PM patrick (dot) vangilst (at) labri (dot) fr Comment #3 Reply to this comment
I tried this:
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...
02/04/2013 02:35:34 PM Michael Rubinsky Comment #2
State ⇒ Feedback
Reply to this comment
I can't reproduce this. The mappings are stored in Horde's configured 
cache since they should never change. Try migrating the content tables 
down/up, then clearing the cache.
02/04/2013 01:35:11 PM patrick (dot) vangilst (at) labri (dot) fr Comment #1
Milestone ⇒
State ⇒ Unconfirmed
Patch ⇒ No
Queue ⇒ Kronolith
Summary ⇒ kronolith set wrong type_id
Type ⇒ Bug
Priority ⇒ 1. Low
Reply to this comment
Hi,
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 ?

Saved Queries