too may LWLocks
Hi all
I am building an extension using shared memory hash table and for locking
hash table i am using LWLocks, but the thing was when i try to run some 1k
queries one after other, for each query i am getting one LWLock but on
executing 200th query i am getting the error *ERROR: too many LWLocks
taken*.
But in each query i acquire and release that block. So that lock has to be
flushed after executing query, but why am i getting this error.?
Is this due to *held_lwlocks *in LWLock.c is fixed only to some number 200
here.
Or am i missing something here.?
thanks
harry
On Wed, Mar 08, 2017 at 03:34:56PM +0530, hariprasath nallasamy wrote:
Hi all
I am building an extension using shared memory hash table and for locking
hash table i am using LWLocks, but the thing was when i try to run some 1k
queries one after other, for each query i am getting one LWLock but on
executing 200th query i am getting the error *ERROR: too many LWLocks
taken*.But in each query i acquire and release that block. So that lock has to be
flushed after executing query, but why am i getting this error.?Is this due to *held_lwlocks *in LWLock.c is fixed only to some number 200
here.
Or am i missing something here.?
The most likely reason is that you have some code path in your extension where
you don't release the LWLock. Without access to the code we can't do much more
to help you I'm afraid. You could also try on a postgres build having
LWLOCK_STATS defined.
--
Julien Rouhaud
http://dalibo.com - http://dalibo.org
--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
oops its my bad implementation.. I was leaking locks and its fixed now.
Thanks for the help!
-harry
On Thu, Mar 9, 2017 at 1:07 AM, Julien Rouhaud <julien.rouhaud@dalibo.com>
wrote:
Show quoted text
On Wed, Mar 08, 2017 at 03:34:56PM +0530, hariprasath nallasamy wrote:
Hi all
I am building an extension using shared memory hash table and for locking
hash table i am using LWLocks, but the thing was when i try to run some1k
queries one after other, for each query i am getting one LWLock but on
executing 200th query i am getting the error *ERROR: too many LWLocks
taken*.But in each query i acquire and release that block. So that lock has to
be
flushed after executing query, but why am i getting this error.?
Is this due to *held_lwlocks *in LWLock.c is fixed only to some number
200
here.
Or am i missing something here.?The most likely reason is that you have some code path in your extension
where
you don't release the LWLock. Without access to the code we can't do much
more
to help you I'm afraid. You could also try on a postgres build having
LWLOCK_STATS defined.--
Julien Rouhaud
http://dalibo.com - http://dalibo.org