Обсуждение: BUG #10095: primary key corruption
The following bug has been logged on the website: Bug reference: 10095 Logged by: Luke Coldiron Email address: lukecoldiron@hotmail.com PostgreSQL version: 9.3.3 Operating system: Ubuntu Linux 12.04 "Precise Pangolin" 32bit Description: I am seeing a problem where different primary keys in my database are being corrupted. ERROR: could not read block 0 in file "base/16407/41243": read only 0 of 8192 bytes When I look on the filesystem the "base/16407/41243" file is zero bytes. When I lookup the object name that is currupt via select relname from pg_class where relfilenode = 41243; it is always a primary key and not always on the same table. The system was previously upgraded from pg 8.3.7 and these issues did not occur. I haven't tried upgrading to 9.3.4 since it didn't look like any of the bug fixes where targeted at the issue I am seeing. Unfortunately, I have not yet be able to create a reproducible test case or find a log where the issue first appeared. Any ideas would be much appreciated.
On Mon, Apr 21, 2014 at 5:08 PM, <lukecoldiron@hotmail.com> wrote: > ERROR: could not read block 0 in file "base/16407/41243": read only 0 of > 8192 bytes > > Is this server a slave? Or has it been at some point (and now promoted to master)? > When I look on the filesystem the "base/16407/41243" file is zero bytes. > When I lookup the object name that is currupt via select relname from > pg_class where relfilenode =3D 41243; it is always a primary key and not > always on the same table. > > For now, you can fix the corrupted indexes by simple issuing REINDEX. Although I strongly recommend you doing a dump of all your databases, remove it all and execute initdb again, and then restore the dumps. > The system was previously upgraded from pg 8.3.7 and these issues did not > occur. > How have you managed the upgrade? Also, has been any hardware issue recently? I also recommend you checking for disk and memory corruption. Best regards, --=20 Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br n=C3=ADvel F! www.dextra.com.br/postgres
On Mon=2C Apr 21=2C 2014 at 5:08 PM=2C <lukecoldiron@hotmail.com> wrote:
=0A=
=0A=
=0A=
ERROR: could not read block 0 in file "base/16407/41243": read only 0 of
=0A=
8192 bytes
=0A=
Is this server a slave? Or has it been at some point (and now promoted to m=
aster)?
It is not a slave server nor has it been at any point in time. =0A=
=0A=
=0A=
When I look on the filesystem the "base/16407/41243" file is zero bytes.
=0A=
When I lookup the object name that is currupt via select relname from
=0A=
pg_class where relfilenode =3D 41243=3B it is always a primary key and not
=0A=
always on the same table.
=0A=
For now=2C you can fix the corrupted indexes by simple issuing REINDEX. Alt=
hough I strongly recommend you doing a dump of all your databases=2C remove=
it all and execute initdb again=2C and then restore the dumps.
=0A=
=0A=
=0A=
The system was previously upgraded from pg 8.3.7 and these issues did not
=0A=
occur.
How have you managed the upgrade? Also=2C has been any hardware issue recen=
tly? I also recommend you checking for disk and memory corruption.
I need to give a little more background on this. The database is installed =
standalone on many different hardware instances that are exactly the same. =
The database is used for configuration in a closed software appliance much =
like a consumer router. Acceptance testing of a fresh (no upgrade) pg 9.3.3=
database instance has yielded a number of units with the primary key corru=
ption issue after running for a short period of time (within a week of test=
ing operation). As shown from the error message above the file that should =
hold the primary key is truncated. The table corresponding to this also con=
tains zero rows but is not corrupt and is expected to have zero rows. I am =
suspecting a change in some behavior between pg 8.3.7 and 9.3.3 as the caus=
e everything else being equal. At the moment I don't have much to go on as =
I have not been able to reproduce the issue on demand however I am still wo=
rking at trying to be a reproducible test case.=0A=
=0A=
Best regards=2C
--=20
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br n=EDvel F!
www.dextra.com.br/postgres
=0A=
=0A=
=0A=
=