Your message dated Sat, 22 Jul 2006 09:17:06 -0700
with message-id <[EMAIL PROTECTED]>
and subject line Bug#375744: fixed in postgresql-7.4 1:7.4.13-4
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--- Begin Message ---
Package: postgresql-contrib
Version: 7.4.7-6sarge2
Severity: critical
Justification: causes serious data loss


Hello,

using version 7.4.7-6sarge2 of postgresql-contrib cause trouble in
database replication using /usr/lib/postgresql/bin/DBMirror.pl

The problem I have found is if there is a ' character (the single quote)
in the data. In this case, the single quote (') is replaced by two
single quotes ('') in the table PendingData. This cause the replication
process to stop with a message "Error in PendingData Sequence Id XXX".

To replicate the non-replicated data, I have run a patched version of
DBMirror.pl. Here is my patch (mainly replacing the two single quotes by
a backslash and one single quote, this mean '' -> \'. Execepted if there
is a equal before, this mean don't replace ='') :

--- /usr/lib/postgresql/bin/DBMirror.pl 2005-05-18 10:33:34.000000000 +0200
+++ ./DBMirror.pl       2006-06-08 11:53:39.000000000 +0200
@@ -827,6 +827,9 @@
   $fnumber = 4;
   my $dataField = $pendingResult->getvalue($currentTuple,$fnumber);
 
+  # replace all the '' to \' in the texts
+  $dataField =~ s/([^=])\'\'/\1\\\'/g;
+
   while(length($dataField)>0) {
     # Extract the field name that is surronded by double quotes
     $dataField =~ m/(\".*?\")/s;

I'm sure this patch is not enough, because this don't take in account if
the data has in it something like "=''". I think the part to patch is
not the DBMirror.pl, but the "recordchange" procedure called by the
trigger on each data change.

Reverting postgresql-contrib to version 7.4.7-6sarge1 correct the
problem only if you have nothing in the Pending table.

Thanks for your attention, and have a nice day.

                Oliver

-- System Information:
Debian Release: 3.1
Architecture: i386 (i686)
Kernel: Linux 2.4.22
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages postgresql-contrib depends on:
ii  libc6                 2.3.2.ds1-22sarge3 GNU C Library: Shared libraries an
ii  libdbd-pg-perl        1.41-3             a PostgreSQL interface for Perl 5 
ii  libkrb53              1.3.6-2sarge2      MIT Kerberos runtime libraries
ii  libpam0g              0.76-22            Pluggable Authentication Modules l
ii  libpg-perl            1:2.0.2-4          Perl modules for PostgreSQL
ii  libpq3                7.4.7-6sarge2      PostgreSQL C client library
ii  libreadline4          4.3-11             GNU readline and history libraries
ii  libssl0.9.7           0.9.7e-3sarge1     SSL shared libraries
ii  libxml2               2.6.16-7           GNOME XML library
ii  postgresql            7.4.7-6sarge2      object-relational SQL database man
ii  zlib1g                1:1.2.2-4.sarge.2  compression library - runtime

-- no debconf information


--- End Message ---
--- Begin Message ---
Source: postgresql-7.4
Source-Version: 1:7.4.13-4

We believe that the bug you reported is fixed in the latest version of
postgresql-7.4, which is due to be installed in the Debian FTP archive:

libpq3_7.4.13-4_i386.deb
  to pool/main/p/postgresql-7.4/libpq3_7.4.13-4_i386.deb
postgresql-7.4_7.4.13-4.diff.gz
  to pool/main/p/postgresql-7.4/postgresql-7.4_7.4.13-4.diff.gz
postgresql-7.4_7.4.13-4.dsc
  to pool/main/p/postgresql-7.4/postgresql-7.4_7.4.13-4.dsc
postgresql-7.4_7.4.13-4_i386.deb
  to pool/main/p/postgresql-7.4/postgresql-7.4_7.4.13-4_i386.deb
postgresql-client-7.4_7.4.13-4_i386.deb
  to pool/main/p/postgresql-7.4/postgresql-client-7.4_7.4.13-4_i386.deb
postgresql-contrib-7.4_7.4.13-4_i386.deb
  to pool/main/p/postgresql-7.4/postgresql-contrib-7.4_7.4.13-4_i386.deb
postgresql-doc-7.4_7.4.13-4_all.deb
  to pool/main/p/postgresql-7.4/postgresql-doc-7.4_7.4.13-4_all.deb
postgresql-plperl-7.4_7.4.13-4_i386.deb
  to pool/main/p/postgresql-7.4/postgresql-plperl-7.4_7.4.13-4_i386.deb
postgresql-plpython-7.4_7.4.13-4_i386.deb
  to pool/main/p/postgresql-7.4/postgresql-plpython-7.4_7.4.13-4_i386.deb
postgresql-pltcl-7.4_7.4.13-4_i386.deb
  to pool/main/p/postgresql-7.4/postgresql-pltcl-7.4_7.4.13-4_i386.deb
postgresql-server-dev-7.4_7.4.13-4_all.deb
  to pool/main/p/postgresql-7.4/postgresql-server-dev-7.4_7.4.13-4_all.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [EMAIL PROTECTED],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Martin Pitt <[EMAIL PROTECTED]> (supplier of updated postgresql-7.4 package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [EMAIL PROTECTED])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.7
Date: Sat, 22 Jul 2006 17:17:04 +0200
Source: postgresql-7.4
Binary: postgresql-plpython-7.4 postgresql-client-7.4 postgresql-7.4 
postgresql-contrib-7.4 libpq3 postgresql-doc-7.4 postgresql-plperl-7.4 
postgresql-server-dev-7.4 postgresql-pltcl-7.4
Architecture: source i386 all
Version: 1:7.4.13-4
Distribution: unstable
Urgency: low
Maintainer: Martin Pitt <[EMAIL PROTECTED]>
Changed-By: Martin Pitt <[EMAIL PROTECTED]>
Description: 
 libpq3     - PostgreSQL C client library
 postgresql-7.4 - object-relational SQL database, version 7.4 server
 postgresql-client-7.4 - front-end programs for PostgreSQL 7.4
 postgresql-contrib-7.4 - additional facilities for PostgreSQL
 postgresql-doc-7.4 - documentation for the PostgreSQL database management 
system
 postgresql-plperl-7.4 - PL/Perl procedural language for PostgreSQL 7.4
 postgresql-plpython-7.4 - PL/Python procedural language for PostgreSQL 7.4
 postgresql-pltcl-7.4 - PL/TCL procedural language for PostgreSQL 7.4
 postgresql-server-dev-7.4 - development files for PostgreSQL 7.4 server-side 
programming
Closes: 375744 377495 379145
Changes: 
 postgresql-7.4 (1:7.4.13-4) unstable; urgency=low
 .
   * Add debian/patches/37_contrib-dbmirror_quoteparsing.patch: Fix parsing of
     quotes escaped as '' in PendingData table. Closes: #375744
   * debian/rules: Build with -fPIC everywhere to improve the proactive
     security effectivity of address space layout randomization. This has no
     measurable performance impact on at least i386, amd64, and powerpc.
   * debian/postgresql-7.4.init: Add LSB magic comment header (provide both
     postgresql-7.4 and a generic postgresql service). Closes: #377495
   * debian/postgresql-7.4.init: Silently exit if init.d-functions does not
     exist. (See bug #362488 for postgresql-8.1)
   * debian/rules: Install init script at priority 19, since Apache and web
     applications usually reside on priority 20, but often require a running
     database. This follows a recent change in the MySQL package, thanks to
     Christian Hammers for pointing this out. Closes: #379145
   * Build server-related packages on mips and mipsel again. The SIGBUS problem
     turned out to be a kernel bug, which is fixed on 2.6.16 and later. Thanks
     to Thiemo Seufer for his investigations!
Files: 
 f6dbd3b8ba62b6c857c4f2ca5d8c3fd3 1060 misc optional postgresql-7.4_7.4.13-4.dsc
 1e07168124bb0cac63eaed5d460e9b5f 29650 misc optional 
postgresql-7.4_7.4.13-4.diff.gz
 588baa69d8bf1bfc531d953bff5a5010 1265218 doc optional 
postgresql-doc-7.4_7.4.13-4_all.deb
 8cca297f7bf0ebee85a72a93812e27ac 516252 libdevel optional 
postgresql-server-dev-7.4_7.4.13-4_all.deb
 d67fd2e23a4434d59bfa200f881b8601 3373550 misc optional 
postgresql-7.4_7.4.13-4_i386.deb
 04856f6ba6ab610310d06f336007c102 977334 misc optional 
postgresql-client-7.4_7.4.13-4_i386.deb
 8ec8a9d795f31bc496ed4b498076f09c 192050 libs optional libpq3_7.4.13-4_i386.deb
 388f848ed12187f99aba69bbddb95484 554442 misc optional 
postgresql-contrib-7.4_7.4.13-4_i386.deb
 84db701b7344709e7c9c5c73dcd3d1c1 114926 misc optional 
postgresql-plperl-7.4_7.4.13-4_i386.deb
 2f6e74c76c2a64e9bfb587d5797845ba 117182 misc optional 
postgresql-plpython-7.4_7.4.13-4_i386.deb
 1abe94ad75ee7f0f65799fcd437148a2 119306 misc optional 
postgresql-pltcl-7.4_7.4.13-4_i386.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFEwkwkDecnbV4Fd/IRAqQeAKDFhpwmCXc5Hlx1CuvLGW0aHNpEiACfUItD
RwsvYbisl3OQdaHUs4bl2/o=
=0Cs5
-----END PGP SIGNATURE-----


--- End Message ---

Reply via email to