Summary | horde_vfs with splitread MySQL |
Queue | Horde Groupware Webmail Edition |
Queue Version | 1.2.6 |
Type | Bug |
State | Resolved |
Priority | 2. Medium |
Owners | jan (at) horde (dot) org |
Requester | roderburg (at) uni-koeln (dot) de |
Created | 12/23/2010 (5307 days ago) |
Due | |
Updated | 01/12/2011 (5287 days ago) |
Assigned | 12/28/2010 (5302 days ago) |
Resolved | 01/12/2011 (5287 days ago) |
Github Issue Link | |
Github Pull Request | |
Milestone | |
Patch | No |
Fix splitread database usage in VFS (
Bug #9467).http://git.horde.org/horde-git/-/commit/76b6725d97341196296ca077d9773ca5ed4a8e45
Assigned to Jan Schneider
State ⇒ Resolved
Fix splitread database usage in VFS (
Bug #9467).http://cvs.horde.org/diff.php/framework/VFS/lib/VFS/sql.php?rt=horde&r1=1.1.2.6&r2=1.1.2.7&ty=u
http://cvs.horde.org/diff.php/horde/docs/CHANGES?rt=horde&r1=1.515.2.643&r2=1.515.2.644&ty=u
New Attachment: vfs-sql.patch
So I think, there must be places, where this "write object" is *not*
used for writing.
happens. It is in the VFS function CreateFolder in lib/VFS/sql.php.
And after I knew what to look for I found one more occurence of the
same error in the VFS function DeleteFile.
Patch attached.
The failing requests are definitively sent to the Read DB.
So I think, there must be places, where this "write object" is *not*
used for writing.
Perhaps an expert can get some clue from the Log-File-Snippet in my
bug report.
Btw, would lib/VFS/sql.php be the right module to look, given my
configuration?
State ⇒ Feedback
driver, the driver instantiates two different database objects, and it
uses the write object for the INSERT query. You have to track down
yourself why the insert fails.
Priority ⇒ 2. Medium
Type ⇒ Bug
Summary ⇒ horde_vfs with splitread MySQL
Queue ⇒ Horde Groupware Webmail Edition
Milestone ⇒
Patch ⇒ No
State ⇒ Unconfirmed
Relevant config parameters:
$conf['sql']['persistent'] = true;
$conf['sql']['username'] = 'horde';
$conf['sql']['password'] = '*******';
$conf['sql']['hostspec'] = 'mysqlgold.rrz.uni-koeln.de';
$conf['sql']['port'] = 3306;
$conf['sql']['protocol'] = 'tcp';
$conf['sql']['database'] = 'horde3';
$conf['sql']['charset'] = 'utf-8';
$conf['sql']['ssl'] = false;
$conf['sql']['read']['persistent'] = true;
$conf['sql']['read']['username'] = 'horde';
$conf['sql']['read']['password'] = '*******';
$conf['sql']['read']['hostspec'] = 'modulok.rrz.uni-koeln.de';
$conf['sql']['read']['port'] = 3306;
$conf['sql']['read']['protocol'] = 'tcp';
$conf['sql']['read']['database'] = 'horde3';
$conf['sql']['read']['charset'] = 'utf-8';
$conf['sql']['splitread'] = true;
$conf['sql']['phptype'] = 'mysql';
mysqlgold is the MySQL master, modulok the read-only MySql Slave.
$conf['prefs']['driver'] = 'sql';
$conf['alarms']['driver'] = 'sql';
$conf['datatree']['driver'] = 'sql';
$conf['group']['driver'] = 'sql';
$conf['perms']['driver'] = 'sql';
$conf['share']['driver'] = 'sql';
$conf['lock']['driver'] = 'sql';
$conf['token']['driver'] = 'sql';
All of these work as expected.
$conf['vfs']['type'] = 'sql';
$conf['vfs']['params']['driverconfig'] = 'horde';
The vfs system, however, has problems.
When it tries to write something into the DB, we get error messages
like this in the imp log and the user gets a "DB Error: unknown error"
Dec 22 14:52:55 HORDE [error] [imp] DB Error: unknown error: INSERT
INTO horde_vfs (vfs_id, vfs_type, vf _path, vfs_name, vfs_modified,
vfs_owner) VALUES (1096, 2, '.horde/imp/attachments', 'nzaremeh',
1293025 75, '') [nativecode=1290 ** The MySQL server is running with
the --read-only option so it cannot execute this statement] [pid 1310
on line 2678 of
"/var/local/ukweb/webmail/docs/horde-3.3/imp/lib/Compose.php"]
which seem to indicate that the correct writeable MySQL host is not used.
Main place where this happens when "linked attachments" are used.