Discussion:
Next steps in debugging database storage problems?
Jacob Bunk Nielsen
2014-07-01 13:35:19 UTC
Permalink
Hi

We have a PostgreSQL 9.3.4 running in an LXC container on Debian
Wheezy on a Linux 3.10.43 kernel on a Dell R620 server. Data are
stored on a XFS file system. We are seeing problems such as:

unexpected data beyond EOF in block 2 of relation base/805208133/1238511128

and

could not read block 5 in file "base/805208348/1259338118": read only 0 of 8192 bytes

This seems to occur every few days after the server has been up for
30-40 days. If we reboot the server it'll be another 30-40 days before
we see any problems again.

The server has been running fine on a Dell R710 for a long time, and was
upgraded to a Dell R620 last year, when the problems started. We have
tried switching to a different Dell R620, but that did not make a
difference. We've seen this with kernels 3.2, 3.4 and 3.10.

The two tables that run into these problems are very simple, but
rather busy. They are defined like:

CREATE TABLE jms_messages (
messageid integer NOT NULL,
destination text NOT NULL,
txid integer,
txop character(1),
messageblob bytea
);

and

CREATE TABLE jms_transactions (
txid integer
);

PostgreSQL does complain that it's likely due to a buggy kernel, but
then I would have expected to see problems with some of our other
machines running this kernel on similar hardware as well. We don't have
any systematic way of reproducing the problem at this point, except
leaving our database server running for a month and seeing it fail, so
I'm hoping that someone here can help me with some next steps in
debugging this.

We have multiple other PostgreSQL servers running in a similar setup
without causing any problems, but this server is probably the busiest of
our PostgreSQL servers.

I've tried writing a program to simulate a workload that resembles the
workload on the problematic tables, but I can't get that to fail. So
what should be my next step in debugging this?

Best regards

Jacob
--
Sent via pgsql-general mailing list (pgsql-***@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
Jacob Bunk Nielsen
2014-07-03 08:26:02 UTC
Permalink
Hi
Post by Jacob Bunk Nielsen
We have a PostgreSQL 9.3.4 running in an LXC container on Debian
Wheezy on a Linux 3.10.43 kernel on a Dell R620 server. Data are
unexpected data beyond EOF in block 2 of relation base/805208133/1238511128
and
could not read block 5 in file "base/805208348/1259338118": read only 0 of 8192 bytes
We use streaming replication to a different server on different
hardware. That server had been up for 300+ days and just had an incident
of:

LOG: consistent recovery state reached at 226/E7DE1680
WARNING: page 0 of relation base/805208133/1274861078 does not exist
CONTEXT: xlog redo insert: rel 1663/805208133/1274861078; tid 0/1
PANIC: WAL contains references to invalid pages
LOG: database system is ready to accept read only connections
CONTEXT: xlog redo insert: rel 1663/805208133/1274861078; tid 0/1
LOG: startup process (PID 2308) was terminated by signal 6: Aborted
LOG: terminating any other active server processes

We've rebooted that server now and restarted the replication. We'll see
how it goes in a few hours.

I'm still very interested in hearing any hints you guys may have to how
I should debug these problems.
Post by Jacob Bunk Nielsen
I've tried writing a program to simulate a workload that resembles the
workload on the problematic tables, but I can't get that to fail. So
what should be my next step in debugging this?
That program has been running for 24+ hours now, and everything just
works as expected, so still no luck in reproducing this problem.

Best regards

Jacob

P.S. Sorry about the double post with different subject - my initial
post was held up for several hours due to putting "Help" in the subject,
so I thought I had been discarded by a list admin.
--
Sent via pgsql-general mailing list (pgsql-***@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
Jacob Bunk Nielsen
2014-08-15 07:23:23 UTC
Permalink
Hi
Post by Jacob Bunk Nielsen
We have a PostgreSQL 9.3.4 running in an LXC container on Debian
Wheezy on a Linux 3.10.43 kernel on a Dell R620 server. Data are
unexpected data beyond EOF in block 2 of relation base/805208133/1238511128
and
could not read block 5 in file "base/805208348/1259338118": read only 0 of 8192 bytes
This seems to occur every few days after the server has been up for
30-40 days. If we reboot the server it'll be another 30-40 days before
we see any problems again.
The server has been running fine on a Dell R710 for a long time, and was
upgraded to a Dell R620 last year, when the problems started. We have
tried switching to a different Dell R620, but that did not make a
difference. We've seen this with kernels 3.2, 3.4 and 3.10.
This time it took 45 days before this happened:

LOG: unexpected EOF on standby connection
ERROR: unexpected data beyond EOF in block 140 of relation base/805208885/805209852
HINT: This has been seen to occur with buggy kernels; consider updating your system.

It always happens with small tables with lots of inserts and deletes.
From previous experience we know that it's now going to happen again in
a few days, so we'll probably try to schedule a reboot to give us
another 30-40 days.

Is anyone else seeing problems with PostgreSQL on XFS filesystems?

Any hints on how to debug what goes wrong here would be still be greatly
appreciated.
Post by Jacob Bunk Nielsen
We have multiple other PostgreSQL servers running in a similar setup
without causing any problems, but this server is probably the busiest of
our PostgreSQL servers.
This is still the case.

Best regards

Jacob
--
Sent via pgsql-general mailing list (pgsql-***@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
Terry Schmitt
2014-08-15 17:00:51 UTC
Permalink
I can't offer a whole lot of detail at this point, but I experienced a
pretty bad caching issue about 2 years ago using XFS.

We were migrating a 1TB+ Oracle database to EDB's Advanced server 9.1
(Close enough for this discussion). I normally use ext4, but decided to try
XFS for this build-out.
This was a Redhat 6.x system using NetApp SAN for storage. We extensively
leverage FlexClones for creating production "read-only" instances as well
as our development and testing environments. We take the snapshots of the
running database storage and create FlexClones. The newly cloned database
does a quick recovery on startup and away it goes. This has worked
perfectly when using ext4 for years.

The problem I experienced with XFS, was when I started up the new clone for
the first time. We would start getting various block read errors when
accessing tables and indexes and knew the database was totally unreliable
at this point.It was super painful troubleshooting as I could recreate the
problem consistently, but it took a couple days of loading data and some
creative scripts to recreate.

NetApp snapshots are consistent and reliable. It was clearly obvious that
the data on disk did not match the data cached by the OS and/or XFS. We
worked with Redhat, but never arrived at a solution. I finally gave up and
switched back to ext4 and the problem went away.

T
Post by Jacob Bunk Nielsen
Hi
Post by Jacob Bunk Nielsen
We have a PostgreSQL 9.3.4 running in an LXC container on Debian
Wheezy on a Linux 3.10.43 kernel on a Dell R620 server. Data are
unexpected data beyond EOF in block 2 of relation
base/805208133/1238511128
Post by Jacob Bunk Nielsen
and
could not read block 5 in file "base/805208348/1259338118": read only 0 of 8192 bytes
This seems to occur every few days after the server has been up for
30-40 days. If we reboot the server it'll be another 30-40 days before
we see any problems again.
The server has been running fine on a Dell R710 for a long time, and was
upgraded to a Dell R620 last year, when the problems started. We have
tried switching to a different Dell R620, but that did not make a
difference. We've seen this with kernels 3.2, 3.4 and 3.10.
LOG: unexpected EOF on standby connection
ERROR: unexpected data beyond EOF in block 140 of relation
base/805208885/805209852
HINT: This has been seen to occur with buggy kernels; consider updating your system.
It always happens with small tables with lots of inserts and deletes.
From previous experience we know that it's now going to happen again in
a few days, so we'll probably try to schedule a reboot to give us
another 30-40 days.
Is anyone else seeing problems with PostgreSQL on XFS filesystems?
Any hints on how to debug what goes wrong here would be still be greatly
appreciated.
Post by Jacob Bunk Nielsen
We have multiple other PostgreSQL servers running in a similar setup
without causing any problems, but this server is probably the busiest of
our PostgreSQL servers.
This is still the case.
Best regards
Jacob
--
http://www.postgresql.org/mailpref/pgsql-general
Loading...