Re: Weird behavior with unique constraint not respected, and random results on same queries

From: Thomas SIMON <tsimon(at)neteven(dot)com>
To: Magnus Hagander <magnus(at)hagander(dot)net>
Cc: pgsql-admin(at)lists(dot)postgresql(dot)org
Subject: Re: Weird behavior with unique constraint not respected, and random results on same queries
Date: 2020-10-15 06:53:49
Message-ID: 40baef4b-b604-95f4-b467-3c347e095a2b@neteven.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Hi Magnus,

Just for the record, you got it right with locale data change, after
index rebuild, we no longer have duplicates.

thanks again, have a good day

thomas

Le 12/10/2020 à 19:47, Thomas SIMON a écrit :
>
> Hi Magnus,
>
> thank you for you quick and relevant answer, you saved my day !
>
> Le 12/10/2020 à 17:53, Magnus Hagander a écrit :
>>
>>
>> On Mon, Oct 12, 2020 at 5:43 PM Thomas SIMON <tsimon(at)neteven(dot)com
>> <mailto:tsimon(at)neteven(dot)com>> wrote:
>>
>> Hi all,
>>
>> I encounter strange behavior since a few days, and the promote of a
>> recently installed server as master in my infrastructure (debian
>> 10, was
>> added as slave a few days ago)
>> I use postgresql 12.4 on master an slave.
>>
>>
>> Is the previous master also Debian 10?
> Yes old master was debian 9
>>
>> Specifically, when upgrading to Debian 10 you need to reindex all
>> indexes on text fields (see
>> https://wiki.postgresql.org/wiki/Locale_data_changes
>> <https://wiki.postgresql.org/wiki/Locale_data_changes>). This can in
>> particular cause problems in replication, whereby your primary and
>> standby nodes have to run the same version of Debian since you cannot
>> do a separate reindex on the standby.
>>
>> E.g. if your master is Debian 9, then you can expect some lookups to
>> be incorrect on the standby, and after you do a failover you may see
>> entries with invalid values in a unique index go in because of the
>> lack of reindex.
> I haven't found this note before, ans it seems indeed to describe the
> exact problem that we have...
> I just upgraded old master to avoid these kind of problems.
>>
>>
>> Since the promote, I find on database some duplicated entries ,
>> despite
>> the fact that the constraint should not allow this.
>> It seems to only happens with entries having "special" characters
>> (understand " ", "-", "+", ...)
>>
>>
>> As you can see from the locale page above, the changes are
>> specifically around special characters, so this is an indication that
>> it might be this problem.
> Exactly yes
>>
>> If this is the problem, the fix is a REINDEX and to make sure that
>> all nodes in the replication cluster use the same version of the
>> collections in the future. If the reindex fails because of existing
>> duplicate entries, you will have to find a way to clean those up
>> before reindexing. You may have to drop the indexes, then clean up,
>> and then recreate them.
>
> Yes, we are working on a script which will delete all duplicate
> values, and then we will use reindex with concurrently option on all
> listed lindexs
>
> We'll do these actions tomorrow morning, and I'll keep you updated
> about the result.
>
>>
>> --
>>  Magnus Hagander
>>  Me: https://www.hagander.net/ <http://www.hagander.net/>
>>  Work: https://www.redpill-linpro.com/ <http://www.redpill-linpro.com/>

--
Thomas SIMON
Responsable Infrastructures
Neteven

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message ramesh penumalli 2020-10-15 08:09:43 Regarding query on the postgresql upgrade
Previous Message Raul Kaubi 2020-10-14 17:34:57 Re: Pooling with npgsql does not seem to work