31
Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 1 Pivotal GemFire XD 1.4.1 Release Notes Release Date 30 April 2015 Last Document Update 30 April 2015 Additional Documentation All GemFire XD 1.4.1 Documentation Note: GemFire XD 1.4 is certified only for stand alone use. It is not certified for installation or interoperability with Pivotal HD 2.1. Pivotal is working to certify GemFire XD 1.4 with an upcoming version of Pivotal HD for HDFS table support. If you are currently using GemFire XD 1.3.x with Pivotal HD for HDFS table support, continue to use your installed version of the product. Pivotal will provide maintenance releases for version 1.3.x until GemFire XD 1.4 is certified with an upcoming version of Pivotal HD. What's In the Release Notes The release notes cover the following topics: What's New in Pivotal GemFire XD 1.4.1 Installing GemFire XD 1.4.1 Upgrading to GemFire XD 1.4.1 Basic Features of GemFire XD Resolved Issues Known Issues What's New in Pivotal GemFire XD 1.4.1 Pivotal GemFire XD is a memory-optimized, distributed data store that is designed for applications that have demanding scalability and availability requirements. With GemFire XD you can manage data entirely using in-memory tables, or you can persist very large tables to local disk store files or to a Hadoop Distributed File System (HDFS) for big data deployments. Compared to GemFire XD version 1.4.0, GemFire XD version 1.4.1 adds the following new features and changes: New ODBC Driver GemFire XD 1.4.1 introduces support for the Progress DataDirect ODBC driver version 1.7. The new ODBC driver is supported for both 32-bit and 64-bit versions of Linux and Windows and is ODBC Level 1 compliant (supports all ODBC Core and Level 1 functions). It also supports a subset of Level 2 functions. The Progress DataDirect ODBC and ADO.NET drivers are provided as a combined download from the Pivotal Network. See Installing and Configuring the ODBC Driver for more information. New ADO.NET Driver GemFire XD 1.4.1 replaces the previous ADO.NET driver with the Progress DataDirect ADO.NET Client version 4.2. The new ADO.NET client is a native wire protocol data provider that uses no unmanaged code. Both 32-bit and 64-bit Windows runtimes are included. The ADO.NET client supports development with Visual Studio 2013 or Visual Studio 2012. The Progress DataDirect ADO.NET and ODBC drivers are provided as a combined download from the Pivotal Network. See Installing the ADO.NET Client Software for more information.

Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Embed Size (px)

Citation preview

Page 1: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

1

Pivotal GemFire XD 1.4.1 Release NotesRelease Date 30 April 2015

Last Document Update 30 April 2015

Additional Documentation All GemFire XD 1.4.1 Documentation

Note: GemFire XD 1.4 is certified only for stand alone use. It is not certified for installation orinteroperability with Pivotal HD 2.1. Pivotal is working to certify GemFire XD 1.4 with an upcomingversion of Pivotal HD for HDFS table support.

If you are currently using GemFire XD 1.3.x with Pivotal HD for HDFS table support, continue to useyour installed version of the product. Pivotal will provide maintenance releases for version 1.3.x untilGemFire XD 1.4 is certified with an upcoming version of Pivotal HD.

What's In the Release NotesThe release notes cover the following topics:

• What's New in Pivotal GemFire XD 1.4.1• Installing GemFire XD 1.4.1• Upgrading to GemFire XD 1.4.1• Basic Features of GemFire XD• Resolved Issues• Known Issues

What's New in Pivotal GemFire XD 1.4.1Pivotal GemFire XD is a memory-optimized, distributed data store that is designed for applications thathave demanding scalability and availability requirements. With GemFire XD you can manage data entirelyusing in-memory tables, or you can persist very large tables to local disk store files or to a HadoopDistributed File System (HDFS) for big data deployments.

Compared to GemFire XD version 1.4.0, GemFire XD version 1.4.1 adds the following new features andchanges:

• New ODBC DriverGemFire XD 1.4.1 introduces support for the Progress DataDirect ODBC driver version 1.7. The newODBC driver is supported for both 32-bit and 64-bit versions of Linux and Windows and is ODBCLevel 1 compliant (supports all ODBC Core and Level 1 functions). It also supports a subset of Level 2functions.

The Progress DataDirect ODBC and ADO.NET drivers are provided as a combined download from thePivotal Network. See Installing and Configuring the ODBC Driver for more information.

• New ADO.NET DriverGemFire XD 1.4.1 replaces the previous ADO.NET driver with the Progress DataDirect ADO.NETClient version 4.2. The new ADO.NET client is a native wire protocol data provider that uses nounmanaged code. Both 32-bit and 64-bit Windows runtimes are included. The ADO.NET client supportsdevelopment with Visual Studio 2013 or Visual Studio 2012.

The Progress DataDirect ADO.NET and ODBC drivers are provided as a combined download from thePivotal Network. See Installing the ADO.NET Client Software for more information.

Page 2: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

2

Note: The GemFire XD.Net Entity Framework plug-in is still provided as part of the GemFireXD software distribution. It automatically installs and uses the previous version of the ADO.NETdriver for internal connections. See Installing the GemFire XD ADO.NET Entity Framework Plug-in.

• Bug FixesSee Resolved Issues for more information.

See also What's New in Pivotal GemFire XD 1.4.1 in the GemFire XD 1.4.0 Release Notes.

Installing GemFire XD 1.4.1Note: Pivotal GemFire XD 1.4 no longer supports Java SE 6. See Supported Configurations andSystem Requirements.

GemFire XD 1.4.1 is provided only as a standalone product. It is not yet certified for installation orinteroperability with Pivotal HD.

To install GemFire XD on a Linux platform, use the instructions in RHEL: Install GemFire XD from an RPMor Ubuntu: Install GemFire XD from a Debian Package.

To install GemFire XD on a Windows platform, use the instructions in Windows/Linux: Install GemFire XDfrom a ZIP File.

Upgrading to GemFire XD 1.4.1Note: GemFire XD 1.4 is certified only for stand alone use. It is not certified for installation orinteroperability with Pivotal HD 2.1. Pivotal is working to certify GemFire XD 1.4 with an upcomingversion of Pivotal HD for HDFS table support.

If you are currently using GemFire XD 1.3.x with Pivotal HD for HDFS table support, continue to useyour installed version of the product. Pivotal will provide maintenance releases for version 1.3.x untilGemFire XD 1.4 is certified with an upcoming version of Pivotal HD.

Note: Pivotal GemFire XD 1.4 no longer supports Java SE 6. If your current GemFire XDinstallation uses Java SE 6, you will need to update to Java SE 7 before starting GemFire XD 1.4members.

Also keep in mind that applications that are ported from JDK 1.6 to JDK 1.7 may need to adjusttheir JVM configuration. Specifically, the default sizes for generations in the Java heap havechanged significantly between JDK 1.6 and JDK 1.7. For more information, see Java VirtualMachine Enhancements in JDK 7 in the Oracle Java documentation.

The standalone GemFire XD 1.4.1 product supports rolling upgrades from GemFire XD version 1.3.x or1.4.0. See the upgrade instructions in the Pivotal GemFire XD User's Guide for more information. Note thatafter you begin the rolling upgrade process by starting a locator with the version 1.4 software, you can nolonger start GemFire XD members that use the version 1.3 software.

Thoroughly test your systems with the new 1.4.1 version before moving into production. Downgrading from1.4.1 to a previous version of GemFire XD is not supported.

GemFire XD 1.4.1 does not support upgrading from SQLFire version 1.1.1 or 1.1.2. SQLFire customersmust first upgrade to GemFire XD 1.3 before moving to GemFire XD 1.4.1. See Upgrading GemFire XD inthe GemFire XD 1.3 documentation for details about upgrading from SQLFire to GemFire XD.

Basic Features of GemFire XDIn addition to the new features highlighted above, GemFire XD provides these basic features:

• Tables that are replicated or partitioned across the GemFire XD distributed system• Redundancy for partitioned tables• Server groups to control the placement of database objects, such as table replicas and partitions

Page 3: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

3

• Data-aware stored procedures that can execute in parallel on multiple GemFire XD members• JDBC peer client and thin client drivers• Eviction with disk overflow for partitioned or replicated tables• Persistent data dictionary• Automatic rebalancing of data when GemFire XD servers are added• Transactions with isolation levels TRANSACTION_NONE, and TRANSACTION_READ_COMMITTED,

and REPEATABLE_READ• Loaders for read-through caching of a datastore• Listeners for responding to DML events on table data• Writers for write-through caching• AsyncEventListeners for asynchronous write-behind caching of a datastore• Tools for monitoring cluster membership and analyzing queries

Resolved IssuesThe following key issues from the Pivotal bug tracking system were resolved in Pivotal SQLFire 1.4 and nolonger require workarounds.

ID Bugnote Title Bugnote Description Workaround forPrevious Release

#51194 Table structure isnot reported whenits synonym nameis used

When an application tries to fetchmetadata information for a table using itssynonym name, the data returned has noinformation about the table.

Use the basetable name, ratherthan its synonym,to obtain tablemetadata.

#51718 Assertionfailure whenquery optimizergenerates negativecost

The query optimizer could sometimesgenerate negative values when costing aquery, resulting in the query failing with:

com.pivotal.gemfirexd.internal.shared.common.sanity.AssertFailure?: ASSERT FAILED No parameters expected to be < 0.0

n/a

#51732 write-schema-to-sqlutility fails with aNullPointerException

The write-schema-to-sql utility couldsometimes set the target data sourceto null, resulting a NullPointerExceptionfailure.

n/a

#51807 Hang whencreating indexon newly addedcolumns

If a table contained a large numberof rows and new columns were thenadded to the table, GemFire XD couldhang while creating an index on the newcolumns.

Create all columnsand indexes beforepopulating the tablewith data.

#51870 EXPLAIN querytakes a long time tocomplete

Using the EXPLAIN command to displaya query plan could sometimes take avery long time to complete.

n/a

Known IssuesOUT OF MEMORY ERROR WHEN STARTING SERVER MEMBER WITH JMX MANAGER

Page 4: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

4

An out of memory error can occur when using the PermGen heap if you attempt to start a JMX managerwith a GemFire XD server member. This occurs because of a mismatch in Java versions between GemFireXD and Hadoop nodes.

To avoid this problem, follow the best practice of starting a JMX manager only on GemFire XD locatormembers, rather than on server members.

GEMFIRE XD ISSUE SUMMARYThe following key issues have been registered as bugs in the Pivotal bug tracking system:

ID Bugnote Title Bugnote Description Workaround

#39408 The CREATETABLE statementdoes not supportnull columns inunique or primarykey multicolumnconstraints.

You cannot create a unique or primarykey constraint on a column that containsnull values.

n/a

#40656 GemFire XDdoes not supportsharing a singleconnection withmultiple threads.

Sharing a connection with multiplethreads can lead to different kinds ofproblems in GemFire XD. In particular ifan operation is performed by one threadand a commit or rollback operation isperformed by another thread, then a"LockNotHeldException" may be thrownduring commit/rollback.

n/a

#40919 Batch conflationcan cause datamismatch whensynchronizingto an externaldatabase or WANsite.

If batch conflation is turned on,operations may be overridden whilethey are being applied to an externaldatabase (with DBSynchronizer) orpropagated to a remote WAN site.

Disable BATCH_CONFLATION ifyou configure anAsyncEventListeneror a WAN gatewayqueue.

#41279 If a DDL isexecuted froma node and itgoes down whilesending the DDLcommit messageto other nodes inthe system, theDDL may havebeen executed onsome nodes butnot on others.

In rare scenarios, if the node firing aDDL fails while sending a DDL commitmessage to other nodes, the commitmay go to some nodes but not to others.DDL may execute successfully on somenodes but not on others.

You may need tomanually restartthe nodes thathave inconsistentdata. If thosenodes cannot beeasily determined,one option is toleave one locatorrunning and bringdown other nodes,so that on restartall nodes will syncthe DDLs againstthat locator.

Page 5: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

5

ID Bugnote Title Bugnote Description Workaround

#41706 HA feature ofDBSynchronizermay causeunderlying DBto go out ofsynch due to re-application of DMLoperations.

A ramification of high availability isthat a Data Manipulation Language(DML) operation may get reapplied tothe database in case of failover of thenode hosting primary DBSynchronizer.When a primary DBSynchronizer nodefails while applying the operations ofthe batch, some DMLs of the batch mayhave already been applied. On failover,the new primary DBSynchronizer nodewould apply the failed batch, in theprocess reapplying some of the DMLoperations. In such cases, the databasemay or may not get out of synch with theGemFire XD system, depending uponthe nature of the DML operation, how itmodifies the columns, and the presenceor absence of constraints.

To minimize theoccurrence of thisissue, have tableswith primary keyconstraint defined.

#41737 DBSynchronizerdoes not work for"SELECT ... FORUPDATE"

DBSynchronizer does not work for"SELECT ... FOR UPDATE" statementsbecause the update gets translated into"UPDATE ... WHERE CURRENT OF<cursor>."

n/a

#41738 WHERECURRENTOF clause notsupported.

GemFire XD does not support theWHERE CURRENT OF clause withan UPDATE or DELETE statementto perform positioned updates withupdateable cursors.

Construct anexplicit UPDATE orDELETE statementusing a primarykey filter. Or, useSELECT ... FORUPDATE with theGemFire XD peerdriver to obtain anupdateable resultset.

#42013 Parameterinference mightinterpret a bindvalue with differentprecision.

Parameter type inference in anexpression is based on the net possiblehighest value that can be returned fromthat expression instead of the type oftarget column value. This might resultin parameter value truncation. Forexample, consider the following query:update trade.portfolio set subTotal = ? * qty.If the qty column is of an Integer typeand subTotal is a decimal(30,20) type,then GemFire XD expects the parameterin the expression to be an integer.Performing stmtsetDecimal(1, 10.03)truncates the parameter value to 10.

Use explicit castoperator for theparameter (?) tohigher precision:update trade.portfolio set subTotal = Cast(?) as decimal(30,20) * qty

Page 6: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

6

ID Bugnote Title Bugnote Description Workaround

#42019 GemFire XDdoes not supportsetting or gettingprocedureparametersby name toCallableStatement.

Trying to get or set parametersusing the parameter name throws anunimplemented exception in GemFireXD (SQLState 0A000).

Get or setparameters bynumber ratherthan by parametername.

#42035 On a Windowssystem, if thehome directory of auser is on a share,in some cases thesqlf tool may fail tostart and cannotcreate .sqlf.historyin user's home.

This issue has been observed inWindows environments where thesqlf tool is running inside VMwareFusion and using a share as user homedirectory. When sqlf tries to createthe .sqlf.history file in the user homedirectory, it fails and the sqlf tool fails tostart.

Disable the sqlfhistory by setting ".sqlf.history" Javasystem propertyto empty string, orchange the homedirectory to notpoint to a share.

#42075 DBSynchronizerand WAN sitesmay go outof synch dueto foreign keyconstraint violation.

When a child table has a foreign keyrelationship with the parent table, itis possible that a sequence of insertsinto the parent and child tables in theGemFire XD system may reach theDBSynchronizer or WAN site in reverseorder. This results in the child tablerecord being inserted before the parentrecord in the WAN site or external DB,which causes a foreign key constraintviolation. This situation can occur ifinsertion into parent and child tables isexecuted by separate threads. Thereis a window in which a DML operationexecuted on the GemFire XD systemhas not yet been placed into the internalqueue of the WAN or DBSynchronizer.The record is guaranteed to be putinto the internal queue of the WAN orDBSynchronizer only after the DMLoperation is complete.

To avoid thissituation, theinsertion into theparent and childtables should bedone by the samethread.

#42307 DDLs do not getrelayed to theDBSynchronizer.

DDLs like a truncate table statementare not relayed to DBSynchronizer. Truncate table removes all the rows inthe table. When executing a truncatetable statement, AsyncEventListenercallback will not be invoked.

n/a

Page 7: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

7

ID Bugnote Title Bugnote Description Workaround

#42400 No total orderingguarantee forDML in separatethreads.

GemFire XD preserves the orderof DML statements applied to thedistributed system (and queuedto AsyncEventListeners or remoteWAN sites) only for a single threadof execution. Updates from multiplethreads are preserved in first-in, first-out(FIFO) order. Otherwise, GemFire XDprovides no "total ordering" guarantees.This means that if two separate threadsconcurrently update rows on a parenttable and child table, respectively, theorder in which GemFire XD queuesthose updates to an AsyncEventListeneror WAN gateway may not matchthe order in which the tables wereupdated in the main distributed system.This mismatch can cause a foreignkey constraint violation in a backenddatabase (for example, when usingDBSynchronizer) or in a remote WANsystem that does not occur when thetables are initially updated. These typesof "out of order" updates do not occurwhen multiple threads concurrentlyupdate the same key of a partitionedtable.

An applicationshould always usea transaction forany operation thatupdates multiplerows.

#42531 GemFire XD doesnot prevent asubsequent nodewith a differentsetting of sqlfire.sql-authorizationfrom joining thecluster.

A locator booted with sqlfire.sql-authorization property set to true couldallow a new node to join the cluster eventhough its sqlfire.sql-authorization is setto false.

sqlfire.sql-authorizationproperty should beset consistently inthe application.

#42538 Presence oftriggers thatmanipulate rowscan cause datainconsistencyacross WAN sites.

If triggers are defined on tablesconfigured for WA N, the DMLgenerated as part of trigger action isalso propagated to the remote WAN site.Thus the receiving WAN site will receiveDML triggers twice. First the trigger isexecuted by the incoming user-initiatedDML operation. The second trigger isthe implicit trigger DML ( caused by thetrigger on WAN site1) getting executed.An example of a trigger action that cancause a problem is of the form , Col1 =Col1 +1. This will cause the Cl1 value tobe incremented twice on the receivingWAN site.

Do not createtriggers on tablesconfigured forWAN propagation.Avoid trigger actionthat modifies thecolumn valuerelative to itsexistent value.

Page 8: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

8

ID Bugnote Title Bugnote Description Workaround

#42564 If a user'saccess right to adatabase objectis continuouslygranted andrevoked, the usermay not havethe last assignedprivilege.

It is possible in some cases a user maynot have the last assigned privilege, ifthe user's access right to a databaseobject is continuously granted andrevoked.

Limit the frequencyof granting andrevoking a user'sprivilege to adatabase object.

#42672 Inconsistentbehavior ofconflict exception(SQLState: X0Z02)thrown by productin transactionsfor parent andchild row updateshaving foreign keyrelationship

SQLFire may throw a conflict exception(SQLState: X0Z02) when a parenttable entry is being UPDATED in atransaction and a child table is insertinga row having a foreign key referenceto that parent row. However, for caseswhen the primary key is not the same asthe partitioning key in the parent table,GemFire XD may not throw a conflictexception.

Applications shouldnot treat conflictsas unexpectedduring transactionswhen a parenttable is beingupdated whileinserts are inprogress on thechild table havinga foreign keyreference to theparent.

#42718 Transactionsnot closedwith CLOSE_CURSORS_AT_COMMIT

GemFire XD does not support closinga transaction when the connectionholdability is set to CLOSE_CURSORS_AT_COMMIT.

n/a

#42803 GemFire XDdoes not supportResultSetswith holdabilityas HOLD_CURSORS_ OVER_COMMIT .

Creating a JDBC Statement withResultSet holdability as ResultSet. HOLD_CURSORS_OVER_COMMIT isnot supported in GemFire XD althoughthe product does not throw an exceptionduring creation of such a statement.

n/a

#42814 GemFire XD doesnot support theESCAPE keywordin the LIKE clause.

The ESCAPE keyword in the LIKEclause is currently unsupported inGemFire XD although it does not throwan exception.

n/a

#43096 GemFire XDprimary memberfailures can lead todata inconsistencyissues.

During primary to secondary eventpropagation, the failure of the primaryGemFire XD member can cause tableand global index data inconsistencyissues.

n/a

Page 9: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

9

ID Bugnote Title Bugnote Description Workaround

#43097 A DML operationthat gets OfflineException X0Z09may not havefailed.

In a system with a persistent partitionedtable, if the system's nodes arebeing brought down (or a node fails)and DML operations are occurringconcurrently, the DML operation maythrow SQLException with SQLStateX0Z09. In such cases there will beuncertainty about the outcome ofthe operation. The operation may ormay not have persisted the data. Anapplication should not assume thatthe DML operation failed, because it ispossible that the operation was persistedbefore the exception was thrown. In thiscase, the data would be recovered fromthe persistent table after the datastore isrebooted.

In the event ofgraceful shutdown,stop the nodes onlywhen all the DMLoperations haveterminated. In caseof SQLExceptionwith state X0Z09with node failures,verify whether thedata got persistedsuccessfully, andaccordingly theapplication canre-execute theoperation or not.

#43188 Updateable resultsets not supportedJDBC client driver.

You cannot use updateable resultsets when you are connected withthe GemFire XD JDBC client driver.Updateable result sets are supportedonly when using SELECT ... FORUPDATE with the GemFire XD JDBCpeer driver.

n/a

#43214 UnexpectedNoDataStoresAvailableexception.

In rare cases, an operation receivesa NoDataStoreAvailableExceptionwhile recovering a failed member withpersistent tables, even though theoperation should succeed with otherrunning data stores.

n/a

#43232 DDLUtils cannotimport tableshaving circularforeign keydependencies.

Circular foreign key dependencies arenot yet supported in GemFire XD.

n/a

#43261 Inconsistencybetween clientdriver and peerdriver whendisplaying booleancolumn values.

The peer driver displays boolean columnvalues as true or false while the clientdriver shows them as 1 or 0.

n/a

#43863 Query plansometimes omitspeer client memberid.

Query plans for statements executedfrom peer clients can sometimessubstitute the statement id for the peerclient member id in the portion of thequery plan that was executed on thepeer client itself.

n/a

Page 10: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

10

ID Bugnote Title Bugnote Description Workaround

#43991 CAST may notbe honored inaggregates.

In queries having aggregates, the CASToperator on the aggregated value maynot be honored by GemFire XD in somecases. For example:select cid, cast(max(price) as decimal(30,1))from trade.txhistory where tid =? GROUP BY cid, typeagainst table txhistory with datatype ofprice decimal(30,20) gives the secondvalue as decimal(30,20) instead ofdecimal (30,1).

n/a

#44074 When usingDBSynchronizer, ifmultiple potentiallyoverlapping DMLsare executedin differenttransactionsexecutingconcurrently,then they mayresult in potentiallydifferent rowsbeing affected inGemFire XD andbackend DB.

In a situation where multiple DMLs areexecuting concurrently that potentiallyoverlap in GemFire XD but do notactually conflict, then replay of thoseDMLs using DBSynchronizer may leadto different rows being affected in thebackend DB as compared to GemFireXD. As an example consider a bulkdelete that uses some criteria on columnand an update that changes the samecolumn:update foo set col1=val1 where col1=val0;delete from foo where col1=val1;

n/a

#44110 DBSynchronizerand automaticgeneration ofidentity columnsin third partydatabase

If cached tables require automaticgeneration of identity column values,then you should use GemFire XD toautomatically generate the key valuesbut disable generated keys in thebackend database. If the backenddatabase also generates key values,then inserts can fail if GemFire XD hasalready generated the key.

Disable autogenerated keysin the backenddatabase.

#44199 SECMEC_USRSSBPWD isnot supported withthe GemFire XDthin client driver.

While connecting via a thin driver,GemFire XD currently does notwork properly with Strong PasswordSubstitute DRDA security mechanism.

n/a

#44207 Non-preparedstored proceduresperform slowerthan preparedstatements.

Only insert, update, delete, andselect statements with constants areconsidered for pattern matching, andavoid complete compilation. Storedprocedures with constant parameters(without a prepare call) may be slow dueto complete compilation (parsing andoptimization).

Configure thestored procedurewith dynamicparameter and bindconstant valuesacross multipleexecutions.

Page 11: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

11

ID Bugnote Title Bugnote Description Workaround

#44261 If a DML operationis cancelled due tolow memory withSQLState XCL54,the DML operationmay have beensuccessful beforethe low memorycondition is hit.

In some cases it is possible that DMLoperations fail with low memory condition(SQLState: XCL54), but the operationmay still have completed when theexception is thrown. Users should notassume that a low memory exceptionalways implies that the operation wasunsuccessful. Check for the changesexplicitly, if required.

Use transactionswhen it is expectedthat DMLs maytake substantialmemory and canget cancelled dueto low memoryconditions.

#44414 UnexpectedConflictingPersistentDataExceptionafter recoveringfrom multiplefailures

If multiple members crash duringthe initial bucket creation or afterrecovering from a "gfxd shut downall" command, there is a possibilitythat those members will throw aConflictingPersistentDataException onrestart.

n/a

#44534 Index Creation withConcurrent DMLon WAN CausesIncorrect ResultSets

In a WAN configuration, if you attemptto create an index on a table whileperforming concurrent DML statements,queries against the table return incorrectresult sets.

n/a

#44657 Some MBeans notavailable in JMXAgent.

Certain GemFire XD MBeans are notserved from the GemFire XD JMX Agentin this release. These MBeans include:

• JDBCMBean for monitoring the JDBCdriver version information.

• ManagementMBean for monitoringthe management status.

• NetworkServerMBean for monitoringstatistics associated with a GemFireXD member's Network Server (client)connections.

• VersionMBean for monitoring theGemFire XD member version andproduct information.

To access any ofthe listed GemFireXD MBeans, youmust connectdirectly to thelocal GemFire XDprocess rather thanto the GemFireXD Agent. Forexample, withjconsole you wouldneed to connectdirectly to thelocal process idof the GemFireXD member(such as com.vmware.sqlfire.tools.internal .SqlfServerLauncher)rather thanconnecting to theAgent as a remoteprocess.

#44711 Double byte(DBCS) charactersin the gfxdcommand linedisplay as ??? inWindows

Double byte characters are currentlynot supported in the gfxd command-linefor Windows platforms. Many doublebyte characters do not work correctlywhen used in diskstore paths, dependingon the OS filename or directory namelimitations.

n/a

Page 12: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

12

ID Bugnote Title Bugnote Description Workaround

#44793 Carriage return notrecognized in gfxd

A carriage return/line feed character(\n\r) is not recognized in the gfxdcommand line utility. For example, acomment line is terminated by a newline. But a \n won't be recognized inthe prompt. SELECT TABLENAMEfrom -- GEMFIREXD-PROPERTIESstatementAlias=My_QUERY \n SYS.SYSTABLES;

n/a

#44804 TotalExecutionTimestatistics mightshow incorrectvalues.

TotalExecutionTime statistics mightshow a large value sometimes.

n/a

#44814 java.lang.ClassCastException:FormatableBitSetcannot be castto com.vmware.sqlfire. internal.catalog.types.ReferencedColumnsDescriptorImpl

A very rare ClassCastExceptionsaying FormatableBitSet orGenericPreparedStatementcannot be cast to com.vmware.sqlfire.internal.catalog.types.ReferencedColumnsDescriptorImpl isseen when preparing a query on remotenode. Users will need to re-execute thestatement when this exception occurs.

n/a

#44872 No query plans forbulk insert/update/delete with orwithout subqueriesaffecting multiplerows.

Query plan may not be returned fora bulk insert/update/delete operationthat gets distributed to one or moremembers.

n/a

#44878 A system user'scredentials mayfail to start a newGemFire XD node.

When the first locator is booted, a list ofusername/password credentials couldbe set. These credentials could be usedto boot new GemFire XD nodes to joinin the cluster. When booting new nodesusing these credentials, sometimes theymay be rejected by GemFire XD.

Applicationcould set onlyone username/password pair tostart all locatorsand nodes in thecluster.

#44953 HA failover cancause falseduplicate keyexception withpeer driver

If a GemFire XD member fails whenthe peer driver is inserting data to thatmember, the peer driver connectionretries the operation with anothermember. In some cases, GemFire XDthrows a duplicate key exception whenretrying the operation, even though thekey has not been inserted. This problemhas been observed with the peerclient driver when performing INSERTstatements that use a subselect.

n/a

Page 13: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

13

ID Bugnote Title Bugnote Description Workaround

#45071 Scroll Insensitivenot supported for'select for update'statements

Scroll Insensitive result sets shouldnot be used with 'select for update'statements as it is not supported.

n/a

#45401 Transitiveuniquenessconstraints canthrow constraintviolations

Transitive uniqueness constraints canthrow constraint violations in GemFireXD, as with:CREATE TABLE T1 (COL1 INTEGER, COL2 INTEGER); CREATE UNIQUE INDEX I1 ON T1(COL1,COL2); INSERT INTO T1 VALUES (1, 2); INSERT INTO T1 VALUES (2,1); UPDATE T1 SET COL1 = COL2, COL2 = COL1;

n/a

#45544 Insert fromthin client intotable with autogenerated primarykey column mayinsert multiple rows

An insert that is executed from a thinclient can result in multiple rows beinginserted if member failures occur, and ifthe table has a primary key defined withGENERATED BY DEFAULT identity.This problem can occur if the insertwas successful in the first attempt, butthe member fails before respondingto the thin client. In this case, the thinclient retries the operation with a newserver, and since the primary key isautogenerated it results in a new idgenerated for the new insert.

n/a

#45696 Insert operationreapplied to tablehaving no primarykey or uniqueconstraint

During DBSynchronizer/WAN failover,an insert operation may be reapplied toa table that has no primary key or uniqueconstraint defined.

n/a

#45864 NullPointerExceptionwhen calculatingaverage of BIGINTvalues

GemFire XD throws aNullPointerFunction if you use the AVG()function to compute the average ofvalues for a column of BIGINT datatype.

n/a

#45942 Complex join/view queries notsupported

GemFire XD does not support complexjoin queries that involve views. Forexample, a query with view and an outerjoin may fail.

n/a

Page 14: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

14

ID Bugnote Title Bugnote Description Workaround

#46179 Insert with sub-select from SYS.MEMBERSdistributes to onlyone node in thesystem

When using insert with sub-selectfrom distributed virtual tables like SYS.MEMBERS, the insert runs only on theconnected node, and selects memberinformation only for that node instead offor all members in the distributed system. For example: insert into m select kindfrom sys.members; inserts only the KINDcolumn for the current server on whichthe insert executes.

Use custom codeto iterate over theresult of distributedvirtual tables likeSYS.MEMBERSand insert rowsfrom the result. Forexample:select * from sys.membersthen iterate overthe results andinsert individuallyor in batch into thetable as required.

#46311 Incorrect columnname in DAP whenexecuting a Queryto populate a resultset

GemFire XD does not provide the correctcolumn name in a data-aware procedurewhen executing a Query to populate aresult set. Instead, the column namesare auto-generated (for example, C1,C2,and so forth).

n/a

#46398 A listener eventmay have adifferent "last"value than thetable's last updatedvalue

Listeners can receive events in adifferent order than the order in whichthey were applied to a table. Forexample, events that come from remotemembers may be dispatched to listenersbefore a concurrent local update eventis dispatched. This is the expectedbehavior for listeners in GemFire XD.

n/a

#46485 Executing queriesafter a low memoryevent may stillcause out ofmemory exception

After a low memory event occurs, queryexecution is canceled and all queriesare rejected from executing. However,incoming queries continue to createquery objects before being rejected.These query objects can cause an out-of-memory exception.

Tune the criticalheap percentageand/or throttle thenumber of queries,especially after aquery has beencanceled due toa low memorycondition.

#46519 No statementmatching forprocedureinvocations

GemFire XD does not perform statementmatching for procedures. Eachunprepared statement that is invokedin a procedure creates a separateexecution plan, which can potentiallyslow performance and consume memoryin the statement cache.

n/a

#46541 EXPLAINexception for insertwith subselect fromsame table

The EXPLAIN command does not workfor queries such as 'INSERT INTO T1SELECT * FROM T1' in the case ofpartitioned tables.

n/a

Page 15: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

15

ID Bugnote Title Bugnote Description Workaround

#46792 BucketMovedExceptionwith select MAX()over empty,partitioned table

Certain queries that perform a table scanof an empty, partitioned table can faildue to GemFire XD scanning buckets ona related partitioned table in the query. For example, consider the followingtables and queries:gfxd> create table t1 (c1 int, c2 int) > partition by column(c1);gfxd> create table empty (c1 int, c2 int) > partition by column(c1); gfxd> insert into t1 values > (null,null),(1,1),(null,null),(2,1),(3,1),(10,10); gfxd> select max((select c1 from empty)) > from t1;The query should return null. Instead,GemFire XD hangs and logs thefollowing exception:[info 2013/09/11 11:20:32.525 EDT SQLF: tid=0x44] (XID=154(UserTransaction)@463505cb;txState=null;supportsTX=true), (SESSIONID = 3), (DATABASE = sqlfire), (DRDAID = null), Failed Statement is: select max((select c1 from empty)) from t1com.gemstone.gemfire.internal.cache.execute.BucketMovedException: Bucket migrated to another node. Please retry.[buckedId=1,region=/APP/EMPTY] [...]

This type of queryis not supported forpartitioned tables.The problem doesnot occur withreplicated tables.

#46796 SUM(...) onpartitioned regionin multi-node canthrow exceptionif one server hasonly a row ofNULLs

A SUM(...) function on a partitioned tablein a multinode cluster may throw anexception if one of the members has onlynull rows.

n/a

Page 16: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

16

ID Bugnote Title Bugnote Description Workaround

#46802 Dropping apartitionedtrigger tableon a multinodecluster can throw arollback exceptionand disconnect ifthe target triggertable is droppedbefore the trigger

If the trigger and target trigger tables arepartitioned and hosted on a multinodecluster and the target trigger table isdropped before dropping the triggeron trigger table, then subsequent DMLoperations on the trigger table followedby a drop of trigger table may cause aRollback exception and disconnectionfrom the system.

Always droptriggers beforedropping the targettrigger tables.

#46804 Delete on a defaultpartitioned tablewith a subselecton a partitionedtable throwsAssertionException

For a case with tables such as:create table t1(c1 int) partition by column(c1);create table insert_test(c1 int, c2 int, c3 int);If a delete is fired such as:delete from insert_test where c1 = (select 9 from t1 a join t1 b on a.c1 = b.c1 where a.c1 = 1);The delete statement throws Exception.

If you want a tablesuch as insert_testto be partitioned,provide an explicitpartitioning column.For example theinsert_test tableshould be createdas:create table insert_test(c1 int, c2 int, c3 int) partition by primary key;

#46811 select sum(distinct)may throw aClassCastExceptionwhen used in asubquery

A query of the following format throws aClassCastException:select col1 from z where col1 in (select sum(distinct col2) from x group by col2);The error is:java.lang.ClassCastException: com.pivotal.gemfirexd.internal.iapi.types.SQLInteger cannot be cast to com.pivotal.gemfirexd.internal.iapi.types.UserDataValue

Cast thesum(distinct)expression tothe appropriatedatatype. Forexample:select col1 from z where col1 in (select cast(sum(distinct col2) as int) from x group by col2);

#46816 Dropping a globaltemporary tablethrows rollbackexception in multinode cluster

When more than one datastore isconfigured, then dropping a globaltemporary table throws a rollbackexception. This problem does not occurwith a single datastore.

n/a

Page 17: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

17

ID Bugnote Title Bugnote Description Workaround

#46818 Subselects inprojection andFROM clausethrow exception

A query such as:select (select i from t where i = 2) * (select s from t where i = 2) from s where i > (select i from t where i = 0) - (select i from t where i = 0);throws an exception, because thesubselect in a projection is notsupported.

Do not use sub-selects in aprojection or FROMclause, as this isan unsupportedfeature.

#46865 Error with left outerjoins and views

Left outer joins with views are notsupported in GemFire XD, and will throwunsupported or assertion errors.

n/a

#46890 Error with create_user and NULLpassword

A NULL password passed to create_usercauses exception but also disconnectsthe existing connection.

n/a

#46981 Aggregate queriescan grow out of thevalid range of theLong datatype

During the calculation of average valuein a query, the sum aggregate of allvalues in the column may go out of thevalid range of the Long datatype. Thiscauses the exception:22003:The resulting value is outside the range for the data type <datatypeName>

If you experiencethis problem,explicitly cast theLong field.

#47199 Server failsto start withSQLException(x0768)

When multiple add/drop operationsare performed on the same index,procedure, or function, a server mayfail to start with the error "Causedby: java.sql.SQLException(X0Y68):PROCEDURE 'procedure_name' alreadyexists".

Restart the server.

#47289 ALTER TABLElimitation forforeign keyconstraint

If a table has already contained datavalues, GemFire XD does not supportadding a foreign key constraint withALTER TABLE in cases where thereference key has a unique column andis a superset of the partitioning column.

Add foreign keyconstraints to atable in the originalDDL, or before youpopulate the tablewith data.

#47387 Unable to executeSYSIBM or internalprocedure

GemFire XD restricts access to certaininternal procedures and SYSIBMschema procedures that are fullypermitted by Apache Derby.

n/a

Page 18: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

18

ID Bugnote Title Bugnote Description Workaround

#47389 Update countincorrect after HAretry

If an update operation is retried dueto a member failure, then the updatecount may return a number that is lessthan the actual number of updated rows.This occurs because GemFire XD onlyreturns the update count of the second,retried operation; updated rows thatcompleted before the member failure arenot included in the update count.

n/a

#47419 Issues withGENERATED BYDEFAULT identitycolumns

If a generated column value reaches itsmax value, then by default GemFire XDautomatically rolls over and begins usingthe initial (minimum) value for columnvalues. However, this rollover behavioris not supported for BIGINT columns.Also, if GemFire XD retries an operationdue to a member failure, then the identitycolumn may be incremented more thanonce for the same operation.

n/a

#47435 DBSynchronizermay be slow todrain

Connectivity issues with the underlyingdatabase can cause DBSynchronizer tobe very slow in applying events.

Check connectivitywith the underlyingdatabase.

#47449 Single-hop querymay hang in WANenvironment

When a server goes down, a GemFireXD client read operation may be unableto detect the failure, which results in ahang.

Use the "read-timeout" connectionproperty to failthe connectionafter the specifiedamount of time.This enablesGemFire XDto retry theconnection ona new serverautomatically.

#47687 A JDBCRowLoader maynot be invokedif a query usesa CAST in theprojected columns

If a query contains a CAST operator inthe projection, then GemFire XD invokesthe query as a generic scan rather thanas a point lookup, and in this case anyconfigured RowLoader is not invoked.

If a RowLoadermust be invoked forthe query, performexplicit conversionin the Java codethat invokes thequery, rather thanusing CAST in theSQL statement.

#47809 Batch inserts mayfail during HAfailover

GemFire XD member failures that occurduring a batch insert may cause a java.sql.BatchUpdateException to be thrown.In this case, the insert operation(s) failand it is not possible to determine whichinserts completed and which did not.

Apply insertswithin the scopeof a transactionto ensure thateither all rows areinserted or noneare inserted.

Page 19: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

19

ID Bugnote Title Bugnote Description Workaround

#47947 Sub-select inINSERT may fail toinsert all records

Testing has shown that INSERTs withsub-select statements sometimes fail toinsert all records.

Retry the insertoperation orexecute the insertwithin the scope ofa transaction.

#48166 ClassCastExceptionwith com.vmware.sqlfire.internal.catalog.types.ReferencedColumnsDescriptorImpl

In rare circumstances, executing a querymay cause: ClassCastException: com.vmware.sqlfire.internal.catalog.types.ReferencedColumnsDescriptorImplcannot be cast to com.vmware.sqlfire.internal.iapi.store.access.StaticCompiledOpenConglomInfo.

Re-execute thequery.

#48701 Procedures maynot honor invokerpermissions

GemFire XD stored procedures may nothonor the permission lists of a user whoinvokes the procedure.

n/a

#48769 Procedure,triggers, functionsdon't inherit therights of user thatcreated them

Procedures, triggers, and functionsare executed using the rights of theinvoker rather than the rights of the userwho defined the procedure, function, ortrigger. In other words, the CURRENT_USER permissions list is checkedinstead of the permission list of the userwho defined the object being executed.This can lead to unexpected problemssuch as when a USER1 creates a table,"sample," and then USER2 creates anafter update trigger of USER1.samplethat selects a new column value (col1)from USER1.sample and places it intoa new table. In this case, a USER3 mayhave read access to the trigger itself,but executing the trigger would causea permission violation if USER3 had noread access to USER1.sample (col1),which the trigger selects after an update.

Grant explicit read/write access toinvoking user(s)for any dependentobjects usedin the body ofa procedure,function, or trigger.

#48824 Import tableperformance withoff-heap tables

Performance testing has shown adegradation in performance for SYSCS_UTIL.IMPORT_TABLE operations ontables that are configured for off-heapstorage.

n/a

#48904 ClassCastException:PARTITIONBY RANGE(SYMBOL):Cannot haveoverlapping ranges

When creating a table that is partitionedby range, if the ranges are not welldefined then GemFire XD throws theerror ClassCastException: PARTITIONBY RANGE (SYMBOL): Cannot haveoverlapping ranges. This error mayappear as an internal issue, but itindicates a failure in the providedpartitioning range.

Review and correctthe partition rangeprovided in theCREATE TABLEstatement.

Page 20: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

20

ID Bugnote Title Bugnote Description Workaround

#49195 PXF Driverperformance withmultiple HDFShome directories

The GemFire XD loner system thatis started by the PXF driver is notoptimized to access multiple HDFSstore home directories. In HAWQ,performance is negatively impactedwhen accessing a second HDFS homedirectory, because the PXF driverrestarts the loner instance.

n/a

#49295 TransactionDataNodeHasDepartedException duringtransactional insert

During member initialization inHA scenarios, a transactionalinsert operation on a tablewith HDFS store may throwTransactionDataNodeHasDepartedException.This occurs when the HDFS queue isnot fully initialized before the operation isredirected to the GemFire XD member.

Catch thisexception and retrythe operation.

#49325 Multiple DELETEFROM TABLEstatements causeASSERT FAILEDerror

Executing multiple, concurrent DELETEFROM TABLE statements to deleteall content from a table can causean ASSERT FAILED error with themessage: Delete did not happen onindex index-name.

Use TRUNCATETABLE to deleteall content froma table instead ofusing DELETEFROM TABLE.

#49399 Bulk insert totable with a largedataset hangs

Sometimes a bulk insert to a large tablehaving a global index may hang due toan internal deadlock.

Set conserve-sockets=false andre-try the insert. Donot use conserve-sockets=true.

#49611 Offline exceptionX0Z09 duringinsert

Inserting a row to a table that has foreignkeys (which involve a remote index) andunique constraints may cause offlineexception X0Z09.

Use atransaction withREPEATABLE_READ isolationlevel to perform theoperation

#49667 Exception duringrollback

An exception may occur during rollbackfor a failed delete operation from a thinclient connection. This problem has beenobserved during HA failover scenarios.

This exception maybe ignored. Retrythe failed operation

#49681 Delete operationsmay fail to deletedata on anmember that isstarting up

If a GemFire XD member is in theprocess of starting up in the distributedsystem, then data may not be deletedif member recover has not begun atthe time when the delete operationreaches the member. This issue is onlyapplicable to non-persistent tables.

Bring newmembers onlineat a time whenthe system isnot expected toperform deleteoperations.

Page 21: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

21

ID Bugnote Title Bugnote Description Workaround

#49716 If a commit failsdue to a GemFireXD memberfailure (SQLStates40XD0 and40XD2), closingthe connectionmay also fail

If a commit fails due to a GemFire XDmember failure (SQLState error 40XD0or 40XD2), then closing the connectionmay also fail.

To close aconnection thathas failed dueto node failurein a transaction(SQLStates40XD0, 40XD2),roll the transactionback and thenignore anyexception in close,because theimmediate servermay have failed.For example:try { conn.rollback(); conn.close(); } catch (SQLException sqle) { // log failure if required }

#49727 Client may receivenode failureexception evenif transactioncommits

If the connection between a GemFireXD client and server is broken, it ispossible that the client may receive anode failure exception even thought theclient's transaction successfully commitson the server. There is currently no wayfor the client to determine the state of thetransaction after such a failure.

n/a

#49747 "Delete did nothappen on index"or "An indexmaintenanceexception wasthrown" duringmember recovery

Testing has shown that "Deletedid not happen on index" or "Anindex maintenance exception wasthrown" errors can sometimes occurwhile performing index maintenanceoperations in certain HA failoversituations.

n/a

Page 22: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

22

ID Bugnote Title Bugnote Description Workaround

#49748 Query of WAN-replicated tableon a receiving sitehangs

In a WAN configuration, any WAN-replicated table on a receiving sitemust have the same schema asthe associated table on the sendingsite. There can be several problemscenarios if two sites attempt to useWAN replication to replicate tableshaving different schemas. One problemscenario is as follows:

1. Site-2 has a table with one extracolumn, compared to an associatedtable in site-1.

2. A row is inserted on site-1 which isthen replicated to site-2.

3. A select query of the table on site-2will hang.

All tables which areenabled for WANreplication musthave same schemaon all GemFire XDsites.

#49760 Assertion failurefor ListOfDeltasduring indexrecovery

The following error can occurs duringindex recovery: AssertionError:getIndexKey: Unhandled row com.gemstone.gemfire.internal.cache.ListOfDeltas. This error indicates thatfailures occurred during node memberinitialization.

This error can beignored.

#49904 Evicted datacould temporarilyreappear aftermember recovery

For HDFS tables that use the EVICTBY CRITERIA clause, it is possible thatan evicted table value could temporarilyreappear in the distributed system if thefollowing sequence of events occurred:

1. The member hosting secondarybuckets for the table goes offline.

2. The member hosting primary bucketsevicts a table entry.

3. The secondary member returnsonline, and recovers the older entry.

4. The primary member goes offline.

In this case, a query against the tablewould use the secondary member'sdata, which contains the entry thatwas previously evicted by the primarymember.

This problemhas negligibleimpact, becausethe recurring valuewould be evictedduring the nextconfigured evictioncycle.

Page 23: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

23

ID Bugnote Title Bugnote Description Workaround

#49936 Row eviction isnot performedfor 'EVICTINCOMING' eventhough the rowmatches evictioncriteria

Custom eviction in an HDFS table takesplace after indexes are updated and theDML event is replicated to secondaries.If a GemFire XD member after theseoperations but before eviction takesplace, then the entry is not evicted evenif the event is automatically retried. (Thishappens because the secondary wouldhave already seen the event and so itwould not put it into its local Map, whichis necessary to trigger the eviction.)

Use EVICTIONBY CRITERIAwith an EVICTIONFREQUENCYinstead of usingEVICT INCOMINGif you mustensure thatcustom evictionoccurs during HAscenarios.

#49963 SQLIntegrityConstraintViolationExceptionmay observed fora unique constrainton partitioningcolumn

If a unique constraint containsa column on which table ispartitioned, then an unexpectedSQLIntegrityConstraintViolationExceptionmay occur for that constraint.

Choose apartitioning columnthat is not usedin the uniqueconstraint.

#49974 Errors attemptingto use slf4jpackages

This version of GemFire XD cannotbe used with external slf4j packages.If you attempt to use these packagesyou receive errors such as: java.lang.SecurityException: sealing violation:can't seal package org.slf4j: alreadyloaded.

n/a

Page 24: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

24

ID Bugnote Title Bugnote Description Workaround

#49984 When usingtransactions,UNIQUE constraintviolation may bethrown when aunique column isupdated or deletedmultiple times

The following is an example whereupdating unique columns multipletimes in a transaction causes constraintviolations:gfxd> create table a (symbol varchar(10), > exchange varchar(10), constraint sec_uq> unique (symbol, exchange)); 0 rows inserted/updated/deleted gfxd> set ISOLATION READ COMMITTED; 0 rows inserted/updated/deleted gfxd> insert into a (symbol, exchange) > values('a', 'a'); 1 row inserted/updated/deleted gfxd> commit; gfxd> AUTOCOMMIT off; gfxd> update a set symbol = 'b' where > symbol='a' and exchange = 'a'; 1 row inserted/updated/deleted gfxd> select * from a; SYMBOL |EXCHANGE------------------- b |a 1 row selected gfxd> update a set symbol = 'a' where symbol ='b' and exchange = 'a'; ERROR 23505: SQLSTATE=23505,SEVERITY=-1: [...]

n/a

#49994 UnexpectedSQLIntegrityConstraintViolationExceptionafter server failover

In a server failover scenario, it ispossible that an update to a table with aUNIQUE constraint succeeds in updatingthe table data, but does not updateassociated index data. This results in aSQLIntegrityConstraintViolationExceptionfor subsequent operations.

n/a

#50048 EXPLAIN outputdoes not display

It is common for GemFire XD to omitthe output from an EXPLAIN commandbecause such output frequently exceedsthe default maximum display width of thegfxd utility.

In gfxd, enterthe command"maximumdisplaywidth10000;" or higherto increase themaximum displaywidth before usingthe EXPLAINcommand.

Page 25: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

25

ID Bugnote Title Bugnote Description Workaround

#50173 Assertion errorwhen innerprojection columnsare missingin outer queryprojection list

A SELECT statement that includes aninner query and an outer query withthe ORDER BY clause fails with anassertion error if the outer query omitsany columns that are projected in theinner query. For example, the followingquery fails with an assertion:select innerQuery.nl, innerQuery.valid_until> from (select b.valid_until, b.nl from A a > LEFT JOIN B b ON a.cell_id=b.cell_id)> innerQuery group by innerQuery.nl;Re-writing the query to add the missingcolumn from the inner query (valid_until)to the outer query succeeds:select innerQuery.nl, innerQuery.valid_until> from (select b.valid_until, b.nl from A a > LEFT JOIN B b ON a.cell_id=b.cell_id)> innerQuery group by innerQuery.nl,> innerQuery.valid_until;

If you cannot re-write the queryto include allcolumns in theouter query, thenyou can insteadadd the systemproperty gemfirexd.no-column-elimination=truewhen you startGemFire XDmembers.

#50252 UPDATEand DELETEstatementsmissing from SYS.SESSIONS

The SYS.SESSIONS table does notdisplay statement details for unpreparedUPDATE and DELETE statements.Details are displayed for unpreparedSELECT statements as well as for allprepared statements.

n/a

#50286 Index entries notcleaned up afterdropping a globalindex

Disk store recovery files (.if files) maynot be cleaned up in all cases when aglobal index is dropped. This problemcan occur when a GemFire XD memberis stopped after a global index is createdand new entries were added, and theglobal index is then dropped. In thiscase, the .if file may never record thedrop index operation, and the stoppedGemFire XD member recovers the indexentries at startup, holding them in aplaceholder region.

n/a

Page 26: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

26

ID Bugnote Title Bugnote Description Workaround

#50418 Transactional DMLoperations fail withincorrect exception

If a DML operation in a transaction failsdue to a GemFire XD member failure,GemFire XD throws "SQLException08006: Database 'gemfirexd' shutdown"instead of the expected SQLStateX0Z05, X0Z16, 40XD2, or 40XD0exception.

Applications shouldcheck for the08006 exceptionto guard againstpotential memberfailures whileexecuting DML in atransaction.

#50526 INSERT into atable fails whenthe table name is areserved word

If you create a table that is named usinga reserved word, the failure occurs whenyou try to insert data into the table:CREATE TABLE APP."Order" ( Id int NOT NULL );INSERT INTO APP."Order"(id) values (1);In this example, the CREATE statementsucceeds but the INSERT throws anexception.

Avoid reservedwords whencreating databaseobjects.

#50538 ArrayIndexOutOfBoundExceptionwith concurrentSELECT andALTER TABLE

A select query that is concurrentlyexecuted on the same table as anALTER TABLE statement may receivean ArrayIndexOutOfBoundException

Retry the failedquery.

#50548 Boolean functionsnot supported

GemFire XD does not support creatingfunctions that return a Boolean value.

n/a

#50595 Transactional DMLnot supported witheviction/expiration

GemFire XD does not support executingDML operations in a transactionfor tables that are configured withEVICTION or EXPIRE. Attempting sucha transaction fails with: ERROR X0Z16:Transaction state is illegal.

n/a

#50778 dsid() functiondoes not workwhen used with *to retrieve all tablecolumns

The dsid() function does not work when* is used to retrieve columns of a table.For example, the following statementdoes not work as expected:select dsid() as "Member", * from emp;

As a workarounduse table aliaseswhen referencingall columnswith dsid(). Forexample:select dsid() as "member", e.* from emp e;

#50926 Authenticationfailures canleak credentialinformation

When security is enabled (for examplewith auth-provider=BUILTIN)information about user IDs can beinferred from error messages that arereturned during authentication. By usingbrute force authentication attempts,it may be possible to infer valid usernames in the system.

Require the useof passwordsthat are at least8 characters inlength.

Page 27: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

27

ID Bugnote Title Bugnote Description Workaround

#50977, #50978 Exceptions whenusing single hopwith connectionpooling

GemFire XD does not support singlehop connections (single-hop-enabled=true property) when usedin combination with JDBC connectionpooling options such dbcp and c3po.

n/a

Page 28: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

28

ID Bugnote Title Bugnote Description Workaround

#51039 Query cancellationlimitations canlead to longperiods of systemunavailability

The GemFire XD query cancellationfeature cannot be used to cancel DDLstatements (see Cancelling Long-Running Statements for a full list oflimitations.) This can result in longperiods of system unavailability whenDDL statements obtain a data dictionarylock.

For example, consider the casewhere a long-running query is beingexecuted and a DDL operation such asTRUNCATE TABLE is executed on thesame table. The DDL operation obtainsa data dictionary lock and then waits forthe table lock that was obtained by thequery. The data dictionary lock preventsnew connections to the system, so youcannot create a new connection in orderto cancel the long-running query. In thiscase you would need to wait until theDDL statement times out (5 minutesby default) before you could connect tothe system and cancel the long-runningquery.

Consider loweringgemfirexd.max-lock-wait to lowerthe DDL timeoutduration. Or,use the skip-locks connectionproperty to forcea connection tothe system withoutwaiting for theDataDictionary lockto be release, andcancel the long-running query.

Warning: skip-locks isprovidedonly for thepurpose ofcancellinga long-runningquery incaseswherethe querycausesa DDLoperationto hold aDataDictionarylock,preventingnew loginsto thesystem.Using thispropertyoutside ofits intendedpurposecan leadto datacorruption,especiallyif DDL isperformedwhile theproperty isenabled.

Page 29: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

29

ID Bugnote Title Bugnote Description Workaround

#51072 CustomAsyncEventListenerimplementationscannot receiveevents for DMLsexecuted withexecuteBatch()

Custom implementations of theAsyncEventListener interfacecannot receive events for DMLsthat are executed using theexecuteBatch() method of aJDBC PreparedStatement; theprocessEvents() method ofAsyncEventListener cannot receivethe event that is generated for such DMLstatements.

To ensure thatprocessEvents()receives suchevents, implementthe customAsyncEventListenerby extendingDBSynchronizerinstead of directlyimplementing theAsyncEventListenerinterface.

#51132 Insert as subselectfails if schemadiffers in nullability

An INSERT operation with a subselectfails if one or more columns of the tableshave different restrictions with regardto nullability. For example, if one tablehas a column defined as "int not null"while the corresponding Int column ina second table allows nullability, thenan INSERT with subselect from the twotables results in incorrect data for thediffering columns.

n/a

#51134 Some queriesthat do notsatisfy colocationrequirements failwith NPE

Certain join queries that use ORclauses or equijoin conditions fail witha NullPointerException (instead of aSQLState error) if the joined tables donot satisfy colocation requirements.

n/a

#51195 DML operationscan hang whenGemFire XDcannot reach theHDFS NameNode

Due to a problem in the Hadoop DFSclient (HDFS-7005), DML operationsmay hang with version 2.4.1 or 2.5.0 ifthe NameNode is not reachable. Thisproblem was introduced in 2.4.1, andwas not observed in version 2.2.0.

n/a

#51218 Thin client driverfailures with CHARcolumns that havespecial characters

When using the client driver, queryinga CHAR column that contains specialcharacters can result in errors such as"Exception in thread thread-name java.lang.StringIndexOutOfBoundsException:String index out of range" or "ERROR0A000: The DRDA commandparseSQLDIAGSTT is not currentlyimplemented. The connection has beenterminated." This problem does nothappen with VARCHAR columns, orwhen using the peer client driver.

Use the peer clientdriver to avoid thisproblem.

Page 30: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

30

ID Bugnote Title Bugnote Description Workaround

#51246 Thin client driverfails to executeCASE expressionwith CHAR returnexpressions

This issue is related to #51218. Ifyou use the CASE expression froma thin client connection and theexpression defines return expressionsof different character lengths, thenthe statement can fail with errorssuch as such "JAVA ERROR:StringIndexOutOfBoundsException:String index out of range" or "ERROR0A000: The DRDA commandparseSQLDIAGSTT is not currentlyimplemented. The connection has beenterminated."

To avoid this problem, either use apeer client connection or use the CASTfunction to explicitly cast the returnedexpression into the VARCHAR datatype.For example:

SELECT CAST ( CASE WHEN customer.id_str = '41658296553177088' then 'matched' ELSE 'other' END AS VARCHAR(10)) FROM customer WHERE customer.id > 41658296553177086 AND customer.id < 41658296553177090

Either execute thestatement from apeer client or usethe CAST functionto cast the returnedexpression toVARCHAR.

#51532 Thedataextractorutility does notsupport extractingJSON data

The dataextractor utility does not supportextracting JSON data from operationallogs. If JSON data is available in agiven oplog file, the dataextractorutility outputs only the placeholder string{"JSON":"JSON"} for those values.

n/a

#51540 An INSERTstatement witha large numberof tuples in theVALUES clausecan fail witha java.lang.StackOverflowError

An INSERT statement that has alarge number of tuples in the VALUESclause (for example, INSERT INTOtablename VALUES (...), (...), (...), ...) can fail with aStackOverflowError.

Split thesingle INSERTstatement intomultiple INSERTstatements, eachhaving smallernumber of tuples inthe values clause(for example, 10tuples or fewer).

Page 31: Pivotal GemFire XD 1.4.1 Release Notesgemfirexd.docs.pivotal.io/.../1.4.1/pdf/pivotal-gemfirexd-rn-1.4.1.pdf · Pivotal GemFire XD 1.4.1 Release Notes OpenTopic 2 Note: The GemFire

Pivotal GemFire XD 1.4.1 Release Notes OpenTopic

31

ID Bugnote Title Bugnote Description Workaround

#51623 Entity Frameworkstored proceduremapping fails forparent/child tablesusing model firstapproach

This problem occurs when you use the"model first" approach (described inGenerating a New GemFire XD Schemafrom Model Objects) to create tableswith a parent/child relationship, and thengenerate the schema for those objects inGemFire XD. If you later create a storedprocedure to perform DML operationsagainst one of the related tables andthen refresh the model from GemFireXD, the Entity Framework fails with amapping error when you try to map thestored procedure to either of the tables.

This problem does not occur whenmapping stored procedures to a modelobjects that were generated fromexisting GemFire XD objects (the"database first" approach describedin Generating a New Model from aGemFire XD Schema).

n/a