[
https://issues.apache.org/jira/browse/IGNITE-20526?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Evgeny Stanilovsky updated IGNITE-20526:
----------------------------------------
Description:
Any sql query with non empty resultset will throw exception, if jdbc2 (thin) is
used and operates under REPLICATED caches:
{noformat}
Caused by: java.lang.IllegalMonitorStateException: attempt to unlock read lock,
not locked by current thread
at
java.base/java.util.concurrent.locks.ReentrantReadWriteLock$Sync.unmatchedUnlockException(ReentrantReadWriteLock.java:448)
at
java.base/java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryReleaseShared(ReentrantReadWriteLock.java:432)
at
java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.releaseShared(AbstractQueuedSynchronizer.java:1382)
at
java.base/java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.unlock(ReentrantReadWriteLock.java:897)
at
org.apache.ignite.internal.processors.query.h2.opt.GridH2Table.unlock(GridH2Table.java:566)
at
org.apache.ignite.internal.processors.query.h2.opt.GridH2Table.unlockReadInternal(GridH2Table.java:510)
at
org.apache.ignite.internal.processors.query.h2.opt.GridH2Table.unlockTables(GridH2Table.java:1293)
at
org.apache.ignite.internal.processors.query.h2.H2ResultSetIterator.unlockTables(H2ResultSetIterator.java:267)
{noformat}
Step to reproduce, take for example existing
JdbcComplexQuerySelfTest
change cache mode into :
cache.setCacheMode(REPLICATED);
and change implementation with:
{noformat}
@Override protected void beforeTest() throws Exception {
Properties cfg = new Properties();
cfg.setProperty(PROP_NODE_ID, grid(0).localNode().id().toString());
stmt = DriverManager.getConnection(BASE_URL, cfg).createStatement();
assert stmt != null;
assert !stmt.isClosed();
}
{noformat}
also, with *lazy=false* upper case is not reproduced.
was:
Any sql query with non empty resultset will throw exception, if jdbc2 (thin) is
used and operates under REPLICATED caches:
{noformat}
Caused by: java.lang.IllegalMonitorStateException: attempt to unlock read lock,
not locked by current thread
at
java.base/java.util.concurrent.locks.ReentrantReadWriteLock$Sync.unmatchedUnlockException(ReentrantReadWriteLock.java:448)
at
java.base/java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryReleaseShared(ReentrantReadWriteLock.java:432)
at
java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.releaseShared(AbstractQueuedSynchronizer.java:1382)
at
java.base/java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.unlock(ReentrantReadWriteLock.java:897)
at
org.apache.ignite.internal.processors.query.h2.opt.GridH2Table.unlock(GridH2Table.java:566)
at
org.apache.ignite.internal.processors.query.h2.opt.GridH2Table.unlockReadInternal(GridH2Table.java:510)
at
org.apache.ignite.internal.processors.query.h2.opt.GridH2Table.unlockTables(GridH2Table.java:1293)
at
org.apache.ignite.internal.processors.query.h2.H2ResultSetIterator.unlockTables(H2ResultSetIterator.java:267)
{noformat}
Step to reproduce, take for example existing
JdbcComplexQuerySelfTest
change cache mode into :
cache.setCacheMode(REPLICATED);
and change implementation with:
{noformat}
@Override protected void beforeTest() throws Exception {
Properties cfg = new Properties();
cfg.setProperty(PROP_NODE_ID, grid(0).localNode().id().toString());
stmt = DriverManager.getConnection(BASE_URL, cfg).createStatement();
assert stmt != null;
assert !stmt.isClosed();
}
{noformat}
> JDBC2 (thin client) throws IllegalMonitorStateException if property
> ignite.jdbc..nodeId is filled
> -------------------------------------------------------------------------------------------------
>
> Key: IGNITE-20526
> URL: https://issues.apache.org/jira/browse/IGNITE-20526
> Project: Ignite
> Issue Type: Improvement
> Components: sql
> Affects Versions: 2.15
> Reporter: Evgeny Stanilovsky
> Priority: Major
>
> Any sql query with non empty resultset will throw exception, if jdbc2 (thin)
> is used and operates under REPLICATED caches:
> {noformat}
> Caused by: java.lang.IllegalMonitorStateException: attempt to unlock read
> lock, not locked by current thread
> at
> java.base/java.util.concurrent.locks.ReentrantReadWriteLock$Sync.unmatchedUnlockException(ReentrantReadWriteLock.java:448)
> at
> java.base/java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryReleaseShared(ReentrantReadWriteLock.java:432)
> at
> java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.releaseShared(AbstractQueuedSynchronizer.java:1382)
> at
> java.base/java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.unlock(ReentrantReadWriteLock.java:897)
> at
> org.apache.ignite.internal.processors.query.h2.opt.GridH2Table.unlock(GridH2Table.java:566)
> at
> org.apache.ignite.internal.processors.query.h2.opt.GridH2Table.unlockReadInternal(GridH2Table.java:510)
> at
> org.apache.ignite.internal.processors.query.h2.opt.GridH2Table.unlockTables(GridH2Table.java:1293)
> at
> org.apache.ignite.internal.processors.query.h2.H2ResultSetIterator.unlockTables(H2ResultSetIterator.java:267)
> {noformat}
> Step to reproduce, take for example existing
> JdbcComplexQuerySelfTest
> change cache mode into :
> cache.setCacheMode(REPLICATED);
> and change implementation with:
> {noformat}
> @Override protected void beforeTest() throws Exception {
> Properties cfg = new Properties();
> cfg.setProperty(PROP_NODE_ID, grid(0).localNode().id().toString());
> stmt = DriverManager.getConnection(BASE_URL, cfg).createStatement();
> assert stmt != null;
> assert !stmt.isClosed();
> }
> {noformat}
> also, with *lazy=false* upper case is not reproduced.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)