GigaSpaces 6.0 Fixed Issues

                                               

Summary: Fixed issues in GigaSpaces 6.0 GA (build 1855).

Overview

Below is a list of fixed bugs since GigaSpaces 5.2 (build 1708):

Core

  • GS-501 - The READ_COMMITED modifier has been added:
    • Support in the API and proxy level using modifiers.
    • Local View and GSIterator support.
    • A set of READ_COMMITED modifiers is supported in the entire space level.
  • GS-1373 - Fixed: An EntryVersionConflictException was thrown when using readMultiple from DCache.
  • GS-1330 - Fixed: The CacheLoader loaded all data, ignoring partitions in ALL_IN_CACHE, therefore all data was loaded to all members.
  • GS-1536 - Fixed: DestroySpace or a container shutdown didn't close the connection to the database (HSQL), until the JVM was terminated.
  • GS-1490 - Fixed: Reading stored data with compressed map cache in push mode failed.
  • GS-1365 - Fixed: A NullPointerException was thrown when using Map local cache with put-first=false.
  • GS-74 - Fixed: The default Hibernate CacheLoader implementation didn't close the SessionFactory when a shutdown operation was performed.
  • GS-109 - Fixed: When connection to the database (JDBC) is lost, the space did not reconnect or tried to shift to another available connection.
  • GS-1426 - Fixed: When a space in a cluster fails and is started again before any operation is performed on it, the clustered proxy used an old stub and failed.
  • GS-1808 - Fixed: When reading Externalizable objects from a cluster with any ReadModifier, the modifier was ignored.
  • GS-159 - Fixed: The ClusteredProxy failed to connect to restarted backup spaces.
  • GS-1994 - Fixed: When using a clustered space with read/take operations, BroadcastIfNull fields did not work with Externalizable.
  • GS-1721 - The GSIterator now supports Local View.
  • GS-2097 – Fixed: m_UID in Externalizable MetaDataEntry EntryInfo was null after writing to the space.
  • GS-2130 – Fixed: Asynchronous replication of a transient Entry arrives in the mirror space as non-transient.
  • GS-244 – All NotifyDelegators, and the unicast delegator now have the same functionality as the MulticastNotifyDelegator (batching, filtering, etc.).
  • GS-1720 – Fixed: A ClassCastException was thrown when registering for notifications using POJOs with a null Externalizable query.
  • GS-1799 – Fixed: The notification getObject() method didn't retrieve the EntryInfo.
  • GS-1847 – Fixed: A memory leak occured when <sequential_fifo_xtns>true</sequential_fifo_xtns> was used.
  • GS-1849 – Fixed: When replicating transient Entries, these Entries were persisted.
  • GS-1868 – Fixed: When performing writeMultiple without UIDs the Entry lease didn't expire.
  • GS-1972 – Fixed: SQLQuery with not-equals 18:18 caused a NullPointerException to be thrown.
  • GS-2112 – Fixed: writeMultiple with NoWriteLease returned null instead of an array of nulls.
  • GS-2116 – Fixed: A UID was set in Externalizable POJOs when Auto Generate was set to false.
  • GS-1783 – Fixed: In a persistent topology, it was not possible to get a count of Entries that are not [Persist(true)].
  • GS-1810 – IMap now supports ReadModifiers.
  • GS-1811 – IMap now supports explicit transactions.
  • GS-1988 – ActiveElectionManager configuration (connection-retry, yield-time) is now exposed in the cluster configuration.
  • GS-2032 – Fixed: The VersionID field was not updated properly in an embedded space.
  • GS-2191 – Fixed: The partition ID of backup members was always -1 when using the CacheLoader.
  • GS-1746 – Fixed: The External Data Source threw an exception on load when the DataProvider or SQLDataProvider were not implemented.
  • GS-1819 – Fixed: Entries read from the space did not contain all of the meta data.
  • GS-1853 – Fixed: HSQL types.properties had no defined type for boolean values.
  • GS-253 – The Admin interface has been moved from the Jini exporter to the StubHandlerJSpaceAdminImpl_Stub uses NIO and not the RMI stub.
  • GS-117 – Fixed: readMultiple with an array of UIDs (where some are null) threw a NullPointerException.
  • GS-1690 – Fixed: GSIterator threw a NullPointerException on EntryArrivedRemoteEvent.getExternalEntry().
  • GS-2258 – Fixed: Leaving static off when performing __getSpaceIndexedFields caused a NullPointerException. Support case ID: 3066.
  • GS-2550 – Fixed: A NullPointerException was thrown when performing a XA transaction commit/resume operation.
  • GS-2198 – Fixed: java.lang.NoClassDefFoundError: org/apache/log/format/Formatter was thrown when running generateGsXml.sh on Linux.
  • GS-1702 – Fixed: When the version field was not int, a NullPointerException was thrown.
  • GS-2184 – Fixed: Broadcast notify was performed, even when broadcast-disabled was set.
  • GS-95 – Fixed: com.gigaspaces.persistent log messages were used for query-related components, instead being used only for persistent spaces.
  • GS-2512 – Fixed: space.clean() did not clean persistent spaces.
  • GS-2250 – Fixed: A NullPointerException was thrown when trying to run a benchmark with an Entry object type in a cluster created by the HibernateCacheStore example.
  • GS-2196 – Fixed: Replication Matrix operations feature did not work. Support case ID: 3044.
  • GS-1883 – Fixed: Complex Entry serialization did not work with serialization mode 1 and 2. Support case ID: 2940.
  • GS-1685 – Fixed: Creating a local view after space.clean() failed.
  • GS-181 – Fixed: An OutOfMemory exception was thrown when performing the clear operation for a large quantity of Entries under a sync-replicated cluster.
  • GS-2265 – Fixed: Local view with FIFO template threw an exception. Support case ID: 3088.

Query Engine

  • GS-1314 - Fixed: A ConcurrentModificationException was thrown when running the following query in 10 threads:
    SQLQuery rangeQuery = new SQLQuery(new Message(),"id>3 and id<5");
    


  • GS-1158 - Fixed: SQLQuery falsely identified fields that start with GROUP as the GROUP BY parameter.
  • GS-1340 - Fixed: takeMultiple always returned null when using SQL Queries.
  • GS-1339 - Fixed: Failed to execute SQL Queries when the template had more information then the query - a RemoteException was thrown.
  • GS-1687 - Fixed: Wrong query result when using orderBy and rownum for simple queries - instead of ordering the results and then limiting the result set, the data was first limited and then ordered.
  • GS-2040 – Fixed: Embedded Query Processor (or any embedded worker) changed data serialization during a SELECT query. Support case ID: 3005.

POJO and Spring

  • GS-1323 - Fixed: When using the gs.xml file in order to map POJOs, the fifo, replicate, and persist flags are not required any more (these were required in previous versions).
  • GS-1326 - Fixed: The Spring Framework jar has been updated from version 2.0 RC3 to version 2.0.4.
  • GS-489 - The JSpaceClusteredProxy now supports POJO objects which implement Externalizable.
  • GS-1552 - Fixed: A NullPointerException was occasionally thrown when reading a POJO from the space under load.

Configuration, Jini Services and Tools

  • GS-1510 - Fixed: Spaces unregistering from LUS - Clustered spaces disappeared (e.g. from the GUI) approximately 5 minutes after the benchmark began writing Entries. Such behavior occurred when a large amount of memory was consumed in the process, causing extensive JVM GC spikes. This caused high CPU usage and distracted the LeaseRenewManager (a long GC/CPU clock caused the LeaseRenewManager to miss the default 4 seconds, or a lease renew attempt which caused a space service un-registering event to be fired).

If the LUS fired an event to unregister a space, the UI spaces tree nodes will represent it using special icon. A special logging in UI will be printed as well.

The current solution to avoid spaces unregistering is to add resources (memory, CPU) or spaces, or to tune the LeaseRenewal maxLeaseDuration and roundTripTime. These two values can be configured using the new <GigaSpaces Root>\config\services\advanced-space.config:

//Default value for net.jini.lease.LeaseRenewalManager.roundTripTime default value 4 seconds
roundTripTime=4000;
//Default value for net.jini.lookup.JoinManager.maxLeaseDuration default value 8 seconds.
maxLeaseDuration=8000;

The recommendation is to increase these values to 40000/80000 respectively in case a large cluster is used.
Note it will cause a delay in when the spaces recognizing a failover since the Active Election infrastructure is based on the space un-registration.

  • GS-1644 - Fixed: Configuration of 2 containers (with a different name) running in the same JVM, was the same. For example, a JNDI URL container property.
  • GS-1525 - Fixed: The service discovery mechanism with a large cluster had extremely high memory consumption. The proprietary lookup cache created by the LookupFinder couldn't provide the requested services. Therefore, each thread blocked a ServiceDiscoveryManager.lookup() call, that created its own LookupCache instance.
  • GS-1582 - The default ClassLoader used is the RMI ClassLoader and not the Jini ClassLoader. java.rmi.server.RMIClassLoaderSpi now uses the default implementation and not the preferable Jini ClassLoader. In GigaSpaces 5.2, the JSpaces-dl.jar was downloaded with all its dependencies from every space in the cluster, causing dozens of MBs of jar files to pass through the wires and overload the HTTPD, Reggie, and space.
    Note this change means thats code is first loaded from the classpath (while previously the first attempt using the preferable Jini ClassLoader was using the rmi codebase and only then using the classpath) and then if not found in the classpath the system attempts to load it using the RMI codebase if set.
  • GS-1374 - Fixed: Unable to override GS_LOGGING_CONFIG_FILE_PROP – the following support has been added:
    if [ "${GS_LOGGING_CONFIG_FILE}" = "" ] ; then GS_LOGGING_CONFIG_FILE="${JSHOMEDIR}/config/gs_logging.properties";
    export GS_LOGGING_CONFIG_FILE if GS_LOGGING_CONFIG_FILE_PROP=
    -Djava.util.logging.config.file=${GS_LOGGING_CONFIG_FILE}; export GS_LOGGING_CONFIG_FILE_PROP
    

    Specific logging settings can be obtained by setting the following before calling gs.sh:

    export GS_LOGGING_CONFIG_FILE=$PSG_HOME/bin/my_logging.properties
    


  • GS-1318 - Jini service registration lease timeout has been extended. The com.sun.jini.reggie.minMaxServiceLease is now set to 15 minutes in the Service Grid config\services\service.config file.
  • GS-322 - A flat file structure is now supported – configuration files, (properties files, schema files, POJO mapping files, etc.) can be organized directly under the <GigaSpaces Root> folder, or under their main folder without having sub-folders.

    If you want to move certain libraries (jar files), you must edit the Class-Path entry in the <GigaSpaces Root>\lib\JSpaces.jar\MANIFEST.MF file to match the desired structure. You do not need to update the MANIFEST when moving any other types of configuration files.
  • GS-1432 - Running CLI commands without entering the CLI shell scope is now supported.
  • GS-1250 - Injecting values into cluster configuration using the Properties object is now supported. Note you can inject only using a system property which was predefined in the cluster configuration. XPath injection in cluster configuration is not supported
SOME_PROP_KEY=someValue
or
${SOME_PROP_KEY}=someValue
  • GS-1236 - The import org.jini.rio.log.LoggerConfig and
    import org.jini.rio.log.LoggerConfig.LogHandlerConfig imports have been removed from the services.config file. java.util.logging.* imports have been removed as well.
  • GS-57 - The GigaSpaces-Mule integration package has been added, including examples.
  • GS-1289 - Fixed: LookupFinder bug - client sometimes connected to a space with the same name in a different Jini group: This occurred with two spaces that have the same name (different container), each a member of one shared Jini group and one unique one, and only three lookup services up, each registered for only one Jini group of the three (the two unique and the shared). If you used SpaceFinder.find() for the space with the shared group, and then looked for the space with one of the unique groups, while less than a minute passed between the finds - in the second find, you could have received a proxy to the wrong space.
  • GS-1620 - Fixed: The GigaSpaces Management Center (GigaSpaces Browser) deployment Details tab didn't open by default.
  • GS-66 - Information regarding all connected/disconnected space proxies is now exposed in all management components (GigaSpaces Browser, JMX, CLI):
    • Client IP/ports.
    • Queue loading (slow consumer indication).
    • Connection time and status.
    • Disconnection time, an indication and description of its cause.
    • Which remote methods are executed.
    • Which exporter is used.
    • Statistics per each client.
  • GS-706 - Fixed: MBean server couldn't be initialized.
  • GS-1471 - Fixed: Configuration resources aren't loaded only using the classpath – the file system is now scanned under a home base as a fall back.
  • GS-1560 - If the -Djava.util.logging.config.file is set, it is used as the logging configuration file. In previous versions, even if this standard logging configuration file was set, it was ignored, and the gs_logging.properties file was always used.
  • GS-505 - A ConfigurationException is now thrown when a user-defined resource is not found. In previous versions, an INFO message was received, stating only that the resource was not found.
  • GS-1481 - SpaceFinder.find is now supported with the SpaceURL object and the master space proxy.
  • GS-1717 - Fixed: The security/default-users is now loaded from the classpath – a hard coded path to <GigaSpaces Root>/security/default-users is not required.
  • GS-1480 - Fixed: The CLI deploy command couldn't be used with the full path to the Deployment Descriptor file.
  • GS-2161 - Configuring custom log handlers is now supported.
  • GS-2085 - Using the Object Inspector with objects that are written to the space using light serialization throws a java.lang.ClassCastException. Workaround: Use object snapshot instead.
  • GS-1412 – Fixed: When a secured space was loaded, registration of its JMX space MBean failed, and as a result it reset the SecurityContext.
  • GS-2020 – Fixed: Logs from different processes overwrote each other. Support case ID: 2997.
  • GS-2176 – Fixed: Windows script failed when setting the LOOKUPGROUPS variable with a comma-separated list of locators in the setenv script. Support case ID: 3042.
  • GS-2186 – Fixed: startJiniTX_Mahalo standalone Mahalo started with the wrong codebase.
  • GS-1201 – Fixed: JMS Message IDs were duplicated. Support case ID: 2700.
  • GS-2166 – Fixed: JMS did not support XA transactions.
  • GS-2224 – Missing keystore and truststore have been added to support SSL space communication.
  • GS-2402 – Fixed: When locators were set while the embedded Lookup Service was disabled, the JoinManager did not pass the locators.
  • GS-2404 – Fixed: SpaceFinder.find(String[] urls) did not support locators or other features that require custom properties. Support case ID: 3082.

GigaSpaces Management Center

The new GigaSpaces Management Center includes the Space View tab, formerly known as the GigaSpaces Browser, and the Deployments tab, formerly known as the Service Grid UI.
  • GS-1645 - Fixed: After deploying a space, a javax.naming.NameNotFoundException: jmxrmi exception was thrown after the Connections View was selected – the JMX connector wasn't created per each container, methods of the JMXProvider class were static.
  • GS-1347 - Fixed: Objects were not partitioned using the Benchmark View with POJOs and a partitioned cluster.
  • GS-1561 - Fixed: Some spaces did not appear in the Space View after a large cluster was started. The container node was added without the spaces.
  • GS-1305 - Fixed: Security roles were not loaded properly or did not appear even though they were already set.
  • GS-1240 - Fixed: A NullPointerException was thrown in the Query View, caused by authorization issues.
  • GS-1168 - Fixed: The Query, Delete, and Clean buttons weren't disabled when they should have been.
  • GS-685 - UI Changes:
    • Using new look and feel – JGoodies.
    • Three big icons on the left side of the Space View have been replaced by new docking windows.
    • Four tabs at the bottom are created with the regular Swing JTabbedPane class, close option has been removed.
    • Filter panel has been moved from the top to the new Details panel.
    • New Details panel has filter options and four details tabs, as well as docking options.
    • Deployment status data has been moved from the top to a separate docking window inside the Service Grid tree component.
    • The build process has been changed according to the new UI jars.
    • gs-ui scripts have been changed accordingly.
    • The Window menu has been changed, a new Reset option has been added, and some redundant options have been removed.
  • GS-500 - Fixed: A NullPointerException was thrown when destroying a space. That happened when two clustered spaces with same name were created within two different containers in the same JVM.
  • GS-1456 - An object count is now exposed for each cluster node in the Cluster View.
  • GS-1564 - The Launch Service UI menu item has been removed from the Deployments tab of the GigaSpaces Management Center.
  • GS-1619 - Container tree loading has been improved, a database connection is now created on-demand only for each space node.
  • GS-1678 - The Help button opens the online product documentation page.
  • GS-1733 - Fixed: A NullPointerException was thrown when running the ping command without a URL and with a Lookup Finder timeout.
  • GS-1735 - Fixed: A NullPointerException was thrown when running the space start command with the -cluster option.
  • GS-1766 - Fixed: After relocating a space, the relevant space node disappeared from its container in the tree, but still appeared in the Deployment tab.
  • GS-1939 - Fixed: Constant calls to SpaceFinder.find() caused High CPU utilization and a scheduled thread storm in the Cluster View.
  • GS-614 (SF2751) - Fixed: Space View did not display roles\users.
  • GS-690 - Fixed: Very slow performance of Deployment during management (monitoring) of a large cluster
  • GS-1410 - Fixed: A redundant call to space.ping() took place when a secured space tree node was displayed, causing an overhead on the space.
  • GS-2011 - A Space counter has been added to the Spaces Network View.
  • GS-2062 - Fixed: A SpaceSecurityException was thrown in the space when the GigaSpaces Management Center was started, and even login to a secured clustered space was performed successfully.
  • GS-1417 - Fixed: All calls (except the first one) to the getAdmin() method of a secured space proxy within the same JVM did not throw a SpaceSecurityException.
  • GS-635 - Fixed: An exception was thrown when viewing a member in a partitioned space.
  • GS-1226 - Fixed: A NullPointerException was thrown when trying to save a secured space configuration (even without making any changes).
  • GS-80 - UI look and feel upgrade:
    • New 3D-style look and feel - enhanced look and feel of dialogs, messages, and tabs.
    • Docking options added to the UI - the ability to drag different areas of the screen outside the screen, or to undock them - the specified area becomes a separate window that can be maximized, minimized, and dragged.
  • GS-771 - Fixed: Thread lock during gs-ui startup.
  • GS-393 - Fixed: Spaces with different JDK versions were not added as space nodes to the tree, only container nodes were visible.
  • GS-38 - Primary-backup indication for each cluster member has been added to the Cluster View and Space Network View.
  • GS-1492 - Fixed: Read using SQL queries threw an Insufficient field-type information exception.
  • GS-1619 - The UI now creates most components on demand, to reduce load time (database connection is created on demand when a space node is selected).
  • GS-624 - Fixed: The Space Network View didn't show secured spaces.
  • GS-1339 - Fixed: The GigaSpaces Management Center got stuck while initiating on Windows XP machines, because of a JFileChooser creation problem in Sun.
  • GS-605 - Fixed: The Space Network View, Classes View, Connections View, and Transactions View were refreshed even if they weren't selected by the user.
  • GS-2057 – Fixed: Running a benchmark on a secured space in a cluster threw a SpaceSecurityException (for a working clustered proxy). The same exception was thrown in a secured space, when attempting to inspect an object in the Query view.
  • GS-2260 – Fixed: NullPointerException was thrown in the Space Runtime Panel. Support case ID: 3074.

Service Grid

  • GS-1515 - Fixed: Wrong CPU calculation on multi-core Linux machines - the org.jini.rio.qos.measurable.cpu.LinuxHandler used the /proc file system to calculate CPU utilization, only for a 0 processor ID. The LinuxHandler now uses the first line that starts with cpu, which represents an aggregation of all CPUs in the system.
  • GS-1247 - Fixed: Failover didn't work while the GSC was shut down.
  • GS-1516 - Fixed: The RelocationPolicyHandler didn't initialize correctly. When using RelocationPolicyHandler.initilaize(), checking if the utility has been initialized immediately after calling its superclass initlaize() method, results in an immediate return. The result was that no declared configuration properties are applied to the RelocationPolicyHandler.
  • GS-1234 - The Appliance Info tab label produced by the com.gigaspaces.admin.ui.serviceui.ApplianceInfoPanel ha been changed from Appliance Info to Host Info.
  • GS-1537 - Fixed: The GSC was killed using kill -9, so the GSC was unable to clean up with the GSM. As a result, the GSM needed to wait for the Lookup Service lease timeout to actually know that the GSC died. These exceptions stopped after about 5 minutes and the GSM was able to proceed.
  • GS-1187 - Fixed: Unable to use addPlatformJARS multiple times.
  • GS-1166 - Fixed: In some cases, workers in the Service Grid scaled back to twice their original number specified by maintain. In the UI the maintain number increased.
  • GS-1230 - Fixed: Wehn com.gigaspaces.grid.worker.TaskWorker was used with a transaction, the transaction object created was never used when taking the Entry from the space.
  • GS-1366 - Fixed: Deadlock in the ServiceElementManager.
  • GS-1532 - Fixed: Partial deployment - when deploying one space partition and multiple instances of a collocated service, starting another GSC, and killing the first GSC, all deployed instances of the collocated service should have been be recreated in a secondary GSC, but actually not all of the instances were recreated.
  • GS-1762 - The instance ID is now shown in the UI GSC panel and in the administration screen.
  • GS-1737 - It is now possible to specify the SLA monitor ID dynamically during service initialization.
  • GS-1642 - Fixed: Wrong cluster deployment - when deploying a primary_backup cluster, the SLA was configured to 1,1, while total_members was defined as {{total_member=2,1.
  • GS-1631 - Fixed: Specifying cluster information (total members, cluster schema) during deployment was not supported.
  • GS-1632 - Fixed: All *.xml files under META-INF/spring were not loaded when deploying to the Service Grid.
  • Service Grid enhancements:
    • Improved stability and large deployment.
    • Native Spring support has been removed. Please use Open Spaces instead.
    • The Spring platform override when starting a GSC has been removed, Spring support is now built into the Service Grid.
    • Added the ability to deploy an Open Spaces Processing Unit.
    • Added the instance number to the Service Grid UI per deployment in square brackets, for example: service.1 [1].
    • Fixed: Selection of available GSCs for redeployment of a service was flawed and caused memory leaks and wrong allocation.
  • GS-2511 – Fixed: Instantiation of services within GSC/cybernode failed due to concurrency issues.
  • GS-2427 – Fixed: One redundant space was added/remained in the cluster after terminating one of the GSCs.

.NET

  • GS-1953 – The GSIterator now supports Local View.
  • GS-105 – Fixed: A ClassNotFound exception was thrown when using PONOs with a SqlQuery null WHERE expression.
  • GS-1388 – Fixed: An object containing an inner object that is inherited from an object with generics could not be read from the space.
  • GS-1389 – Fixed: Writing an object that is inherited from an object with generics to one proxy, and taking it from another proxy threw an exception.
  • GS-1555 – Fixed: In a remote space, when writing an object from one proxy and deleting it from another, the .NET proxy received insufficient field-type information.
  • GS-1665 – Fixed: When performing take in Direct mode in a partitioned environment using the default schema, a wrong serialization type error occurred.
  • GS-1683 – Fixed: The NotifyDelegator did not work when using a PONO with a user-defined object member.
  • GS-1714 – Fixed: An empty log was created in the .NET client.
  • GS-1728 – Fixed: PONOs with an object type field were not read properly from the space.
  • GS-1750 – Fixed: DateTime conversion was difference in Standard and Direct mode.
  • GS-1785 – Fixed: In case of inheritance, when the field defined as key was different from the inherited one, the returned key-defined field was wrong.
  • GS-1844 – Fixed: Local View was created with more then one template.
  • GS-1912 – Fixed: Performing SQL queries with generic PONOs in the GigaSpaces Management Center failed.
  • GS-1986 – Fixed: Enum values could not be used as Nullvalue.
  • GS-2022 – Fixed: Writing a PONO with Fifo=true failed in a partitioned space.
  • GS-1938 – Fixed: .Net-Java interoperability limitation: When mapping a .NET array to a Java array, an Incompatible Class Change Error exception might have been thrown.

Labels

 
(None)