Hi Nathan,
I had a quick look at workflow.
In my understanding workflow is using the vfs in a wrong way in
workflow/inc/engine/config.inc.php: It uses the vfs to create a physikal
directory “workflow” in eGW’s files directory, which get then used not
via the vfs but directly.
That makes no sense at all, as it would show up as empty dir in
filemanager. It should make something like:
$workflow_dir = $GLOBALS[‘egw_info’][‘server’][‘files_dir’].’/workflow’;
if (!file_exists($workflow_dir) || !mkdir($workflow_dir,0700,true))
{
galaxia_show_error(lang(’/workflow directory does not exist and could
not be created, please ask adminstrator to check the global
configuration’), false, true);
}
if (!defined(‘GALAXIA_PROCESSES’))
{
// Note: this directory must be writeable by the webserver !
define(‘GALAXIA_PROCESSES’, $workflow_dir);
}
Ralf
Nathan Gray schrieb:
I’ve discovered a bug when using the new VFS code with workflow and
mysql, related to my changes 4 weeks ago (r 25192).
It looks like what’s happening is after workflow reconnects using
mysqlt instead of mysql, the PDO used by the VFS fails with:
An error happend
could not find driver
#0 /var/www/perpdevel/phpgwapi/inc/
class.sqlfs_stream_wrapper.inc.php(1289): PDO-
__construct(‘mysqlt:host=loc…’, ‘egroupware’, ‘…’)
#1 /var/www/perpdevel/phpgwapi/inc/
class.sqlfs_stream_wrapper.inc.php(890): sqlfs_stream_wrapper::_pdo()
#2 /var/www/perpdevel/phpgwapi/inc/
class.links_stream_wrapper.inc.php(118):
sqlfs_stream_wrapper::url_stat(‘links://default…’, 2, true)
#3 [internal function]: links_stream_wrapper->url_stat(‘links://
default…’, 2)
#4 /var/www/perpdevel/phpgwapi/inc/class.egw_vfs.inc.php(328):
is_dir(‘links://default…’)
#5 /var/www/perpdevel/phpgwapi/inc/class.egw_link.inc.php(870):
egw_vfs::find(‘links://default…’, Array, true)
#6 /var/www/perpdevel/phpgwapi/inc/class.egw_link.inc.php(290):
egw_link::list_attached(‘perp_inventory’, ‘STOCK:197’)
#7 /var/www/perpdevel/etemplate/inc/class.link_widget.inc.php(273):
egw_link::get_links(‘perp_inventory’, ‘STOCK:197’)
#8 /var/www/perpdevel/etemplate/inc/class.boetemplate.inc.php(528):
link_widget->pre_process(‘exec[links]’, Array, Array, NULL, Array,
Object(etemplate))
…
Regis, my proposed solution is to clone $GLOBALS[‘egw’]->db before
calling connect(), as connect() replaces the current connection when
it creates the mysqlt connection:
Index: workflow/inc/src/common/Base.php
— workflow/inc/src/common/Base.php (revision 25326)
+++ workflow/inc/src/common/Base.php (working copy)
@@ -23,8 +23,8 @@
//Force transactionnal mysql (Innodb) -> mysqlt
if ($db->databaseType==‘mysql’)
{
$db->disconnect();
- $db_clone = clone($GLOBALS[‘egw’]->db);
- $db = $db_clone->connect(
$GLOBALS[‘egw_info’][‘server’][‘db_name’],
$GLOBALS[‘egw_info’][‘server’][‘db_host’],
$GLOBALS[‘egw_info’][‘server’][‘db_port’],
Is it ok to commit this fix?
Nathan Gray
nathan at goarctic dot com
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don’t miss this year’s exciting event. There’s still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
eGroupWare-developers mailing list
eGroupWare-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/egroupware-developers
–
Ralf Becker
eGroupWare Training & Support ==> http://www.egroupware-support.de
Outdoor Unlimited Training GmbH [www.outdoor-training.de]
Handelsregister HRB Kaiserslautern 3587
Geschäftsführer Birgit und Ralf Becker
Leibnizstr. 17, 67663 Kaiserslautern, Germany
Telefon +49 (0)631 31657-0
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don’t miss this year’s exciting event. There’s still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
eGroupWare-developers mailing list
eGroupWare-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/egroupware-developers