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

Gert van der Spoel gert at 3edge.com
Mon Sep 3 08:22:26 UTC 2012


> -----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?

(maybe have to watch out to not mess up the $_ used in map(stuff($_) .. when
adding debugging stuff).






More information about the interchange-users mailing list