GemFire66 - Bug Notes

Context Navigation


Created ID Summary Ver Status Bugnote Title Bugnote Description Workaround
08/01/11 #43760 FileNotFoundException while starting agent 6.5 assigned JMX Admin Agent Launcher script fails with 'log-file' set to empty string JMX Admin Agent Launcher script fails to launch JMX Admin Agent if the property 'log-file' is set to empty string. A FileNotFoundException is logged in start_agent.log file. Set the property 'log-file' to a valid log file name
07/29/11 #43757 Need new gemfire property: license-server-timeout assigned GemFire startup may pause up to 30 seconds if using "dynamic" for license-data-management or license-application-cache If "dynamic" is specified for either license-data-management or license-application-cache, but a vFabric License Server is not found or is not configured with the expected license, then startup of the GemFire instance may be delayed by 30 seconds. When GemFire attempts to acquire a license from a vFabric License Server it must go into a polling loop which terminates either when a license is attained or a timeout is reached. This timeout is currently hardcoded to 30000 milliseconds and can only be overridden by a System property: gemfire.licensing.licenseServerTimeout This polling loop is only entered if the keyword "dynamic" is specified instead of a serial number for either license-data-management or license-application-cache. Specify a serial number instead of "dynamic" unless a vFabric License Server is correctly installed and configured.
07/25/11 #43731 Cannot start locator due to SSL configuration problem 6.5 assigned System properties specified at command line while starting locator are ignored when an option '-properties' is used. Locator launcher utility 'gemfire/gemfire.bat', provides an option to specify (1) a configuration properties file using command line option '-properties=' and (2) System properties using '-D' prefix. When properties file is specified using '-properties', System Properties specified at command line get skipped. Add the required configuration properties in a file with name gemfire.properties kept in the working directory and do not use the option '-properties' while launching Locator using 'gemfire start-locator' .
07/21/11 #43717 PdxWriter writeDate accepts subclasses of Date but PdxReader readDate always returns Date assigned PdxWriter writeData allows subclasses of Data to be serialized PdxWriter writeDate will serialize subclasses of Date even though PdxReader readDate will always create an instance of Date and not the subclass. writeDate should throw an exception of given a subclass of Date. PdxWriter writeField has the same problem. Do not use writeData for subclasses of Date. Instead use writeObject.
07/20/11 #43713 JRockit: Illegal memory access. [54] related to checkLazyLocked() 6.5 assigned JRockit may crash with an Illegal memory access JRockit may crash with an illegal memory access. The specific version we say this with during testing was: BEA JRockit(R) R27.6.5-32_o-121899-1.6.0_14-20091001-2107-windows-ia32. The call stack looked like this: Thread Stack Trace: at findNext+288()@0xffffffff7ddbc9f4 at findNextToReturn+32()@0xffffffff7ddbca94 at refIterFillFromFrame+248()@0xffffffff7ddbcd2c at trProcessLocksForThread+52()@0xffffffff7ddcb1c0 at get_all_locks+88()@0xffffffff7dcee638 at javaLockConvertLazyToThin+88()@0xffffffff7dcee730 at RJNI_jrockit_vm_Locks_checkLazyLocked+584()@0xffffffff7dcf01d8 In this case following things might work - Turn off the optimizations with -Xnoopt option. This option turns off adaptive optimization. While optimized code generally runs faster than code that hasn’t been optimized, occasionally, the time required to optimize code results in undesirable delays processing. -XnoOpt lets you avoid these delays by turning off optimization. This option is also helpful when you suspect that a JVM or application problem, such as a system crash or poor startup performance, might be related to optimization. You can turn optimization off and retry your application. If it then runs successfully, you can safely assume that the problem lies with code optimization For more information check out the below link Topic: -XnoOpt http://download.oracle.com/docs/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html#wp1020479 - Try to upgrade to the latest JRockit version as most of the problems are be fixed just by upgrading. - Last option would be get in touch with the Oracle Weblogic Support team.
07/19/11 #43706 Unexpected ClassCastException encountered during CQ createCQfetchInitialResult 6.5 assigned ClassCastException when CQ is executed with executeWithInitialResult This happens when the CQ query executed with executeInitialResults command that tries to use the PRIMARY_KEY type index. Remove the PRIMARY_KEY type index thats getting used by CQ. It can be added later once CQ is created.
07/19/11 #43705 The CPU usage for the agent can be high assigned The CPU usage for the agent can be high In certain situations, the agent uses too much CPU for a sustained period of time when GFMon is connected to it. The workaround is to set the agent's refreshInterval to 60 seconds, and GFMon's Refresh Interval to 60000 ms. This will cause periods of agent inactivity followed by a period of CPU usage rather than constant high CPU usage.
07/11/11 #43673 select * from /region_name.entries r where <where clause> throws NonSerializableException when queried on PartitionedRegion or queried from client to server. assigned "select *" query on region.entrySet Using query "select * from /exampleRegion.entrySet" fails for client-server topology and/or on PartitionedRegion. Following exception is thrown, Exception in thread "main" com.gemstone.gemfire.cache.client.ServerOperationException?: com.gemstone.gemfire.SerializationException?: failed serializing object at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl?.handleException(OpExecutorImpl?.java:530) at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl?.handleException(OpExecutorImpl?.java:627) at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl?.handleException(OpExecutorImpl?.java:465) at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl?.execute(OpExecutorImpl?.java:138) at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl?.execute(OpExecutorImpl?.java:95) at com.gemstone.gemfire.cache.client.internal.PoolImpl?.execute(PoolImpl?.java:620) at com.gemstone.gemfire.cache.client.internal.QueryOp?.execute(QueryOp?.java:47) at com.gemstone.gemfire.cache.client.internal.ServerProxy?.query(ServerProxy?.java:69) at com.gemstone.gemfire.cache.query.internal.DefaultQuery?.executeOnServer(DefaultQuery?.java:272) at com.gemstone.gemfire.cache.query.internal.DefaultQuery?.execute(DefaultQuery?.java:159) at com.gemstone.gemfire.cache.query.internal.DefaultQuery?.execute(DefaultQuery?.java:141) at CqClient?.main(CqClient?.java:124) Caused by: com.gemstone.gemfire.SerializationException?: failed serializing object at com.gemstone.gemfire.internal.cache.tier.sockets.Message.serializeAndAddPart(Message.java:292) at com.gemstone.gemfire.internal.cache.tier.sockets.Message.addObjPart(Message.java:271) at com.gemstone.gemfire.internal.cache.tier.sockets.BaseCommand?.writeQueryResponseChunk(BaseCommand?.java:750) at com.gemstone.gemfire.internal.cache.tier.sockets.BaseCommand?.processQueryUsingParams(BaseCommand?.java:1489) at com.gemstone.gemfire.internal.cache.tier.sockets.BaseCommand?.processQuery(BaseCommand?.java:1252) at com.gemstone.gemfire.internal.cache.tier.sockets.command.Query.cmdExecute(Query.java:76) at com.gemstone.gemfire.internal.cache.tier.sockets.BaseCommand?.execute(BaseCommand?.java:160) at com.gemstone.gemfire.internal.cache.tier.sockets.ServerConnection?.doNormalMsg(ServerConnection?.java:765) at com.gemstone.gemfire.internal.cache.tier.sockets.ServerConnection?.doOneMessage(ServerConnection?.java:892) at com.gemstone.gemfire.internal.cache.tier.sockets.ServerConnection?.run(ServerConnection?.java:1126) at java.util.concurrent.ThreadPoolExecutor?$Worker.runTask(ThreadPoolExecutor?.java:886) at java.util.concurrent.ThreadPoolExecutor?$Worker.run(ThreadPoolExecutor?.java:908) at com.gemstone.gemfire.internal.cache.tier.sockets.AcceptorImpl?$1$1.run(AcceptorImpl?.java:510) at java.lang.Thread.run(Thread.java:662) Caused by: java.io.NotSerializableException?: com.gemstone.gemfire.internal.cache.LocalRegion?$NonTXEntry at java.io.ObjectOutputStream?.writeObject0(ObjectOutputStream?.java:1164) at java.io.ObjectOutputStream?.writeObject(ObjectOutputStream?.java:330) at com.gemstone.gemfire.internal.InternalDataSerializer?.writeSerializableObject(InternalDataSerializer?.java:2032) at com.gemstone.gemfire.internal.InternalDataSerializer?.basicWriteObject(InternalDataSerializer?.java:1990) at com.gemstone.gemfire.DataSerializer?.writeObject(DataSerializer?.java:3104) at com.gemstone.gemfire.DataSerializer?.writeObjectArray(DataSerializer?.java:1991) at com.gemstone.gemfire.internal.InternalDataSerializer?.writeWellKnownObject(InternalDataSerializer?.java:1339) at com.gemstone.gemfire.internal.InternalDataSerializer?.basicWriteObject(InternalDataSerializer?.java:1965) at com.gemstone.gemfire.DataSerializer?.writeObject(DataSerializer?.java:3104) at com.gemstone.gemfire.internal.util.BlobHelper?.serializeTo(BlobHelper?.java:51) Use "select e.key, e.value from /exampleRegion.entrySet e" and construct the entry object in the application developed using Gemfire.
06/29/11 #43632 quickstart.SecurityTest fails intermittently with SocketException assigned Security quickstart example may log a warning at server when the client is killed. A warning, stating an IOException, could be seen in the server's console when the client cache is closed immediately after completing the example steps. This could be avoided by running the example with subscription-enabled="false" in the client's xml.
06/23/11 #43607 Destroying Dynamic Regions During Register Interest 6.5 assigned DynamicRegionFactory with registerInterest on a client may cause dynamic subregions to be lost DynamicRegionFactory with registerInterest on a client may cause dynamic subregions to be lost. If the client loses redundancy registerInterest will destroy any of the dynamic subregions. To avoid this problem set subscription-redundancy to a non-zero value or disable registerInterest on DynamicRegionFactory.
06/08/11 #43545 Client close waits for in progress ops assigned Cache close on client will wait until all operations in progress have been completed Cache close on client will wait until all operations in progress have been completed. This is because operations like putAll take the timeout value as an input parameter and may not close the sockets if operations are in progress. This is a corner case and if the user encounters this, they should ensure that their putAll operations are small or allow for a longer wait time to shut down the client If the user encounters this, they should ensure that their putAll operations are small or allow for a longer wait time to shut down the client
04/21/11 #43193 Clients can't update server data with serverside value constraint 6.5 assigned GemFire clients fail when valueConstraint is set on server and client update violates it. When a client updates a server with a value which violates the valueConstraint set for the region's value on the server, it causes the client to shut down the pool and no longer use the server (even though the server is just fine) Remove the value constraint on the server if your clients cannot honor it
12/09/10 #42510 GatewyHub with 'primary' StartupPolicy can start as secondary if other GatewayHub is started with 'none' StartupPolicy 6.5 assigned GatewyHub with 'primary' StartupPolicy can start as secondary if other GatewayHub is started with 'none' StartupPolicy GatewyHub with 'primary' StartupPolicy can start as secondary if other GatewayHub is started with 'none' StartupPolicy. If 'none' GatewayHub comes first it becomes primary and does not relinquishes primary status to 'primary' GatewayHub Workaround for this bug is start 'primary' GatewayHub first, so that it can grab the primary lock.
10/25/10 #42432 gemfire.bat does not accept java arguments assigned Arguments to the gemfire.bat script that are intended for Java VM process are not passed to Java VM. The arguments passed with prefix '-J' to the gemfire script are expected to be passed to the Java VM process. This works on Unix/Linux systems when using the bin/gemfire shell script. However, on Windows systems using the gemfire.bat it does not work and is not supported. The workaround is to set you Java Arguments in the environment via the JAVA_ARGS environment variable and then run the gemfire.bat script and command. The script will then pick up the environments at run time. There could be two types of arguments (1) Java VM switches (like -Xmx512m) : Use the environment variable JAVA_ARGS (2) GemFire properties that are to be set as System Properties to the Java VM: Use gemfire.properties or use the environment variable JAVA_ARGS without using '-J'. e.g. To set gemfire.mcast-port use -Dgemfire.mcast-port=15001
10/25/10 #42431 expiration can get behind assigned Region expiration may take longer than expected GemFire only uses a single thread to process expired region entries. This can cause expiration to take longer than expected as the schedule expiration queue up waiting for this single thread to process them. This bug is even worse if the expiration needs to remove the entry from disk or do a network hop. If you are not using GemFire transactions or are willing for a transaction to fail because of a conflict caused by a concurrent expiration then in GemFire 6.6 you can set -Dgemfire.EXPIRATIONS_CAUSE_CONFLICTS=true. This allows expirations to take advantage of multiple threads. If you then set -Dgemfire.EXPIRY_THREADS=XXX where XXX is the number of threads to use for expiration then you will have multiple threads doing concurrent expirations.
10/01/10 #42381 Cache creation does not fail if an index configured in cache.xml can not be created assigned Cache creation does not fail if an index configured in cache.xml can not be created If there is any failure with index creation during cache creation (gemfire startup using xml file), the cache creation was continued. One way to make sure is to look into the stat file to see if all the indexes are created. Or if a query takes a long time than expected, it needs to be analyzed to see if its using the expected index.
08/05/10 #42245 primary queues leak thread identifiers assigned clients that cycle many threads can cause server memory leak Long-lived subscription-enabled clients that cycle many threads cause a memory leak on the server that contains their primary queue. Reuse threads on the client if possible.
05/25/10 #42009 member fails to connect to DS with SystemConnectException (locator reports missing ACKs from member + member already present) 6.0 assigned SystemConnectException thrown during connect after coordinator reports missing view acknowledgements Under highly volatile membership conditions we have seen cases where a new member was unable to join the distributed system when it ought to have been able to. The membership coordinator reports missing view acknowledgements from one or more processes, including the new member. If the coordinator accepted the new member and sent out a new membership view, it is reasonable to expect that the new member would recognize that it had joined. It is also reasonable to expect that the new member would acknowledge the new membership view. Reattempt connecting to the distributed system.
07/21/09 #40894 Getting java.lang.NoClassDefFoundError: javax/activation/DataSource in the agent.log file. 6.0 assigned For Java 1.5, Email alerts in GemFire Agent requires activation.jar from JavaBeans Activation Framework The GemFire Agent requires activation.jar to be in its classpath to send email alerts. This happens only with JRE version 1.5 and older. The jar is distributed by SUN as part of the JavaBeans Activation Framework. It can downloaded from the SUN website at http://java.sun.com/javase/technologies/desktop/javabeans/jaf/downloads/index.html The JavaBeans Activation Framework is distributed as part of Java SE 6 release. For Java 1.5, add JavaBeans Activation Framework jars in classpath before starting the GemFire Agent.
04/21/09 #40624 Unable to allocate an available vm to host a bucket when enforcing unique hosts 6.0 assigned The EnforceUniqueHostStorageAllocation feature requires no two systems share IpAddresses Using the EnforceUniqueHostStorageAllocation feature requires that no two systems hosting members in a DistributedSystem share the same IpAddress. This is true even if the network adapter is in a "DOWN" state. The exceptions to this rule are the loopback address and the "is any" address (aka 127.0.0.1 and 0.0.0.0 respectively). The symptom when two members do share an IpAddress and the EnforceUniqueHostStorageAllocation system property is set to "true" is a message in the logs similar to the following: system.log: [warning 2009/04/21 10:00:41.290 PDT gemfire1_10503 <thread 1> tid=0x79] Unable to find sufficient members to host a bucket in the partitioned region. Region name = /partitionedRegion Current number of available data stores: 10 number successfully allocated = 3 number needed = 4 Data stores available: [ptestg(13629):58399/50210, lewis(10584):42395/52373, ptestg(13632):58401/50211, ptesth(8852):57714/32881, king(10497):37041/62411, lewis(10582):42398/52374, king(10501):37037/62412, ptesth(8850):57715/32882, king(10499):37039/62407, king(10503):37044/62414] Data stores successfully allocated: [king(10497):37041/62411, lewis(10582):42398/52374, ptesth(8850):57715/32882] Consider starting another member Remove duplicate IP addresses.
03/20/09 #40436 GemFire clients on disconnected system hang instead of being forcefully disconnected as expected 6.0 assigned Network Partition detection may fail with physical network disruption Network Partition detection may fail when the network cable is pulled. Enabling loopback causes messages sent by a GemFire process to itself to be delivered through a queue so that they are not lost if network hardware fails. This allows GemFire to detect the loss of connectivity and react accordingly. In versions prior to GemFire 6.0, run with the property p2p.ENABLE_LOOPBACK=true. In GemFire 6.0 and later, this property is enabled automatically. In all cases, the GemFire JAR and the JRE must be available to the VMs running on each host for network partition detection to function properly.
12/25/08 #39977 NoSubscriptionServersAvailableException: Could not initialize a primary queue on startup. No queue servers available. 6.0 assigned NoSubscriptionServersAvailableException while creating a client with security One some platforms calling getCredentials on the provided PKCSAuthInit template can be slow the first time it is called. This can cause a timeout on the server while creating a connection, resulting in a NoSubscriptionServersAvailableException on the client. Set the system property BridgeServer.acceptTimeout to something higher. The default is 9900 milliseconds.
09/03/08 #39541 hangs with JRockit 1.6.0_3 with threads waiting for locks that don't appear to be held assigned Threads hang while blocking for synchronization in JRockit On Java SE 6 versions of JRockit JVM, one or more threads appear to hang while blocking for a synchronization that is not held by any other thread. We have found that this problem can be avoided by disabling lazyUnlocking using: -XXlazyUnlocking:enable=false According to the JRockit documentation: "In R27.5 lazy unlocking is enabled by default in Java SE 6 versions of JRockit JVM on all platforms except IA64 and with all garbage collection modes except the deterministic garbage collection mode." Disabling JRockit's lazyUnlocking seems to prevent these hangs.
08/07/08 #39407 Admin API connection shows up as a non-Admin member 3.5 assigned Admin API connection shows up as a non-Admin member When a dedicated Admin connection is created using AdminDistributedSystemFactory, the member will appear as a non-Admin member to all members of the distributed system. Calls to AdminDistributedSystem.getSystemMemberApplications will include the local Admin member itself. AdminDistributedSystemFactory.setEnableAdministrationOnly(boolean) can be used to set it for Administration only which will ensure that AdminDistributedSystem.getSystemMemberApplications does not return the dedicated Admin connection.
06/24/08 #39139 Hydra timeout using global regions with vm waiting for dlock assigned Lease expiration causes locking to hang Lease expiration can cause all other lock requests on the DistributedLockService to hang. Global Region operations may hang for the same reasons. Use -1 for lock-lease to prevent lease expiration
04/16/08 #38793 Heap LRU EvictionAttributes EvictorThread uses early escape Region reference 5.5 assigned Heap LRU EvictionAttributes EvictorThread may cause severe errors in logs When configuring a Region using one of the EvictionAttributes.createLRUHeapAttributes methods (aka Heap LRU Eviction), it may create one or more severe errors in the logs for the "Evictor Thread" The issue is that the Evictor Thread uses the Region before it is fully constructed (see http://www.ibm.com/developerworks/java/library/j-jtp0618.html ). If this occurs the Heap LRU will never evict entries for the Region when there is no activity in the Region, yet it has data that could be evicted from the heap (essentially pinning data in the Region... again when there is no activity on the Region). Destroy the Region and then re-create it. Another option is to make sure the Region always has some entry activity which will ensures LRU eviction.
01/21/08 #38250 NotSerializableException can block cache access with global or d-ack scope 5.1 assigned NotSerializableException can block cache access with if occurring in a region with global or d-ack scope If the application tries to put a instance that isn't serializable into the cache it will block/hang the application and not recover if the region scope is global or d-ack. Add checks before any put or create operations that the object in question is an instance of java.io.Serializable.
07/13/07 #37158 DLockService is not completely Interrupt safe 5.1 assigned Interrupting threads using DistributedLockService causes other members to hang or generate large log files Some indications that this problem has occurred include statements in the log such as: "Grantor is still initializing" "Grantor creation was aborted but grantor was not destroyed" If these appear in the log, then a thread was interrupted while using the DistributedLockService and the member must be disconnected from the DistributedSystem. Other members may actually hang and possibly produce very large log files. Disconnecting this member from the DistributedSystem will allow other members to continue working without any further problems. Do not interrupt any thread that may be using the DistributedLockService API. Use waitTimeMillis to specify how long the lock request will wait. The thread will not continue to wait after the request times out. Disconnecting from the DistributedSystem will cause any waiting threads to return.