Changes in 22.1.22
The following changes were made in Oracle NoSQL Database Release 22.1.22 Enterprise Edition.
Topics
Bug and Performance Fixes
-  Fixed an issue that if KVStore handles were repeatedly created
                    under UnknownHostException or UnresolvedAddressException, sock type file
                    descriptors would be leaked. 
                        [KVSTORE-1515] 
-  Fixed a problem that could cause a thread deadlock in the direct
                    Java driver for applications that perform queries. The problem was seen in the
                    httpproxy, which uses the direct Java driver for queries, but is not specific to
                    it. The result was that the application would hang. 
                        Using thejstackutility to create a thread dump for the application showed two characteristic stack traces, which represent the two sides of the deadlock:"nioEventLoopGroup-3-11" #70 prio=10 os_prio=0 cpu=66.97ms elapsed=5790.89s tid=0x00007f6fdc017800 nid=0x9e in Object.wait() [0x00007f6fecbf3000] java.lang.Thread.State: RUNNABLE at oracle.kv.impl.api.table.FieldDefImpl.<clinit>(FieldDefImpl.java:90) at oracle.kv.impl.query.types.TypeManager.<clinit>(TypeManager.java:378) at oracle.kv.impl.query.compiler.FuncAndOr.<init>(FuncAndOr.java:38) at oracle.kv.impl.query.compiler.FunctionLib.<init>(FunctionLib.java:169) at oracle.kv.impl.query.compiler.CompilerAPI.<clinit>(CompilerAPI.java:41) at oracle.nosql.proxy.sc.TableUtils.getCallbackInfo(TableUtils.java:567) at oracle.nosql.proxy.DataService.handlePrepare(DataService.java:2032) at oracle.nosql.proxy.DataService$$Lambda$354/0x0000000800551840.handle(Unknown Source) at oracle.nosql.proxy.DataService.handleRequestWithContext(DataService.java:664) at oracle.nosql.proxy.DataService.handleRequestInternal(DataService.java:451) at oracle.nosql.proxy.DataService.handleRequest(DataService.java:424) at oracle.nosql.proxy.DataService.handleRequest(DataService.java:399) at oracle.nosql.proxy.DataService.handleRequest(DataService.java:355)And:
 [KVSTORE-1484]"nioEventLoopGroup-3-9" #66 prio=10 os_prio=0 cpu=124.03ms elapsed=5791.14s tid=0x00007f6fdc015800 nid=0x98 in Object.wait() [0x00007f7163aef000] java.lang.Thread.State: RUNNABLE at oracle.kv.impl.api.table.FieldDefSerialization.readTimestamp(FieldDefSerialization.java:433) at oracle.kv.impl.api.table.FieldDefSerialization.readFieldDef(FieldDefSerialization.java:346) at oracle.kv.impl.api.table.FieldDefSerialization.readFieldDef(FieldDefSerialization.java:261) at oracle.kv.impl.api.table.FieldDefSerialization.readRecord(FieldDefSerialization.java:380) at oracle.kv.impl.api.table.FieldDefSerialization.readFieldDef(FieldDefSerialization.java:348) at oracle.kv.impl.api.table.FieldDefSerialization.readFieldDef(FieldDefSerialization.java:261) at oracle.kv.impl.query.runtime.PlanIter.deserializeFieldDef(PlanIter.java:1184) at oracle.kv.impl.query.runtime.ReceiveIter.<init>(ReceiveIter.java:367) at oracle.kv.impl.query.runtime.PlanIter.deserializeIter(PlanIter.java:876) at oracle.kv.impl.api.query.PreparedStatementImpl.<init>(PreparedStatementImpl.java:550) at oracle.nosql.proxy.DataServiceHandler.deserializePreparedQuery(DataServiceHandler.java:810) at oracle.nosql.proxy.DataService.deserializePreparedQuery(DataService.java:2181) at oracle.nosql.proxy.DataService.handleQuery(DataService.java:1661) at oracle.nosql.proxy.DataService$$Lambda$353/0x0000000800552440.handle(Unknown Source) at oracle.nosql.proxy.DataService.handleRequestWithContext(DataService.java:664) at oracle.nosql.proxy.DataService.handleRequestInternal(DataService.java:451) at oracle.nosql.proxy.DataService.handleRequest(DataService.java:424)
-  Discovered that a bug fixed as of the initial 21.1 release can have
                    user-visible consequences. The checkpointing of a multi-region table might cause
                    some data to be lost during replication. In other words, some writes from one
                    region might not be able to replicate to remote regions. 
                        [KVSTORE-772] 
-  Discovered that a bug fixed as of the initial 21.1 release can
                    have user-visible consequences. The checkpointing of a multi-region table might
                    cause deadlock in data replication. If multi-region table runs into the bug, the
                    writes made to one region may stop replication to remote regions, and network
                    connections from remote regions might drop due to inactivity. 
                        [KVSTORE-1525]