Uh oh. This is a first (for me). I got this error on a transaction, it
did not crash the server but did abort the transaction (of course).
ERROR: lock AccessShareLock on object 16385/16467/0 is already held
What was I doing? A large transaction where I was pushing about 20
million rows into two tables using prepared transactions. I have been
doing this for some time (over a year) on 8.2.6 without any problems.
I may be able to reproduce, but the transaction takes a long time to
complete... about a day. I'm running it again now.
There was no information in the log. What else can I do to get debug
information for you, provided it's reproducable...
Some db details:
db=> select version();
version
-------------------------------------------------------------------------------------------------
PostgreSQL 8.3.3 on amd64-portbld-freebsd6.3, compiled by GCC cc (GCC)
3.4.6 [FreeBSD] 20060305
(1 row)
This instance was also compiled with the following changes
(pg_config_manual.h):
diff --git a/src/include/pg_config_manual.h b/src/include/pg_config_manual.h
index 354a3d3..20c40c4 100644
--- a/src/include/pg_config_manual.h
+++ b/src/include/pg_config_manual.h
@@ -23,7 +23,7 @@
*
* Changing BLCKSZ requires an initdb.
*/
-#define BLCKSZ 8192
+#define BLCKSZ 32768
/*
* RELSEG_SIZE is the maximum number of blocks allowed in one disk
@@ -69,7 +69,7 @@
*
* Changing this requires an initdb.
*/
-#define NAMEDATALEN 64
+#define NAMEDATALEN 128
/*
* Maximum number of arguments to a function.
This goes along with a UFS block size of 32768.
Regards,
Mike
--
Michael Milligan -> milli@acmeps.com