[horde] commit problem

Jan Schneider jan at horde.org
Fri Jan 6 09:43:28 UTC 2012


Zitat von Claude Tompers <claude.tompers at restena.lu>:

> On 01/05/2012 04:55 PM, Jan Schneider wrote:
>> Please don't top-post.
>>
>> Zitat von Claude Tompers <claude.tompers at restena.lu>:
>>
>>> On 01/05/2012 10:43 AM, Jan Schneider wrote:
>>>>
>>>> Zitat von Claude Tompers <claude.tompers at restena.lu>:
>>>>
>>>>> Hello,
>>>>>
>>>>> Our MySQL admin recently migrated all our Horde tables to INNODB.
>>>>> Since
>>>>> then, at least the horde_prefs table can not be edited anymore.
>>>>> What we can see from a tcpdump is, that autocommit is explicitly
>>>>> set to
>>>>> 0, but it seems that the final commit command is never sent.
>>>>> We just rolled back (temporarily) to MyISAM and now it works again.
>>>>>
>>>>> Is this a known issue or is there any config parameter that should fix
>>>>> this ?
>>>>
>>>> Since InnoDB is the default engine for Horde 4, and such an behavior
>>>> would break everybody's ability to save preferences, I can clearly say
>>>> that this is not a known issue.
>>>>
>>> Hi Jan,
>>>
>>> Thanks for your reply. We did some digging this afternoon and had quite
>>> a few results.
>>> In short, we're using the mysqli driver and session handling is also
>>> done in the mysql database.
>>> When I try updating my prefs (changing the language for example), a lot
>>> of session handling query go through as well as the actual UPDATE
>>> horde_prefs query.
>>> All these queries seem to be handled by the same Horde_Db_Adapter_Mysqli
>>> instance. Immediately after the UPDATE query, the Adapter is closed
>>> without committing to the database.
>>> Therefore the changes are not applied. I'm surprised that nobody else
>>> has this issue because we did not fiddle around in the code (At least
>>> not until we added a few error_log commands this afternoon).
>>
>> This could well be bug in your mysqli extension. IIRC we use
>> autocommit most of the time, if it is disabled, this might be the
>> problem. An exception is problably the session driver.
>> Try switching to the mysql/pdo driver instead.
>>
>> Jan.
>>
>
> I'm getting the exact same results for mysql/pdo. It works for MyISAM
> tables but not for InnoDB. From the dump, I see that autocommit is
> explicitly disabled for the connection that updates the horde prefs.
> I've asked myself though if the session driver and the prefs handler
> should use the same MySQL adapter instance and thereby the same
> connection to the server ?

I don't see anything wrong with that.

Jan.

-- 
Do you need professional PHP or Horde consulting?
http://horde.org/consulting/



More information about the horde mailing list