[ic] [interchange] Only apply GDBM filters if they are not already installed

Stefan Hornburg (Racke) racke at linuxia.de
Mon Sep 3 08:30:53 UTC 2012


On 09/03/2012 10:22 AM, Gert van der Spoel wrote:
>> -----Original Message-----
>> From: interchange-users-bounces at icdevgroup.org [mailto:interchange-users-
>> bounces at icdevgroup.org] On Behalf Of Stefan Hornburg (Racke)
>> Sent: maandag 3 september 2012 11:11
>> To: interchange-users at icdevgroup.org
>> Subject: Re: [ic] [interchange] Only apply GDBM filters if they are not
>> already installed
>>
>> On 09/03/2012 10:07 AM, Gert van der Spoel wrote:
>>>> -----Original Message-----
>>>> From: interchange-users-bounces at icdevgroup.org [mailto:interchange-
>> users-
>>>> bounces at icdevgroup.org] On Behalf Of Stefan Hornburg (Racke)
>>>> Sent: maandag 3 september 2012 10:49
>>>> To: interchange-users at icdevgroup.org
>>>> Subject: Re: [ic] [interchange] Only apply GDBM filters if they are not
>>>> already installed
>>>>
>>>> On 09/01/2012 02:23 PM, Stefan Hornburg (Racke) wrote:
>>>>> On 08/31/2012 03:22 AM, David Christensen wrote:
>>>>>> commit 0c31ea3287df97c8fedbf23ad71244e4ebe019c7
>>>>>> Author: David Christensen<david at endpoint.com>
>>>>>> Date: Thu Aug 30 20:01:28 2012 -0500
>>>>>>
>>>>>> Only apply GDBM filters if they are not already installed
>>>>>>
>>>>>> In certain circumstances, using the same GDBM-based file in multiple
>>>> catalogs with
>>>>>> GDBM_ENABLE_UTF8=1 set was causing the GDBM filters to be installed
>>>> multiple times on the same
>>>>>> handle, which was resulting in encoding/decoding errors.
>>>>>>
>>>>>> Vend::Table::GDBM will now only install the filters if they do not
>>>> exist on this handle, which
>>>>>> should preserve existing behavior plus account for these corner-
>> cases.
>>>>>>
>>>>>
>>>>> Actually it seems to be the other way around, the filter is only
>> applied
>>>> to the first file:
>>>>>
>>>>> Configuring catalog dataident...Using MySQL,
>>>> DSN=dbi:mysql:dataident...applying UTF-8 filters to GDBM handle
>>>>> done.
>>>>> Configuring catalog dataident_dev...Using MySQL,
>>>> DSN=dbi:mysql:dataident_dev...LocaleDatabase locale: locale import into
>>>> failed: Wide character in subroutine entry at
>>>> /home/dataident/interchange/lib/Vend/Table/Common.pm line 516,<IN>
>> line
>>>> 2.
>>>>>
>>>>> done.
>>>>>
>>>>
>>>> I'm convinced now that the GDBM code is fine, the error happens on the
>>>> import of the text file.
>>>> Why this happens only in the second catalog still eludes me.
>>>>
>>>
>>> What is found on : /home/dataident/interchange/lib/Vend/Table/Common.pm
>> line
>>> 516 ?
>>
>>      $s->[$TIE_HASH]{"k$key"} = join("\t", map(stuff($_), @fields));
>
> If you can mess around in your install for debugging perhaps it is an idea
> to see what $s->[$CONFIG]{FILTER_TO} does on the 2 lines above this line.
> Does it act differently the first time and the second?

FILTER_TO is the same in both cases (empty), but the content of @fields differs.
In the first catalog it is valid UTF-8, in the second case it isn't.

Regards
         Racke


-- 
LinuXia Systems => http://www.linuxia.de/
Expert Interchange Consulting and System Administration
ICDEVGROUP => http://www.icdevgroup.org/
Interchange Development Team




More information about the interchange-users mailing list