Details
-
Type:
Bug
-
Status: Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 2.1.2
-
Fix Version/s: None
-
Component/s: Core
-
Labels:None
-
Environment:
DSE 2.0.9
Description
When changing key spaces after a prepare the C* server cannot "find" the previous prepare and issues an error which the driver tries to re-issue the prepare which causes a recursive error pattern. When this occurs the application is blocked waiting for the Execute to complete which it cannot.
This seems to only occur on DSE 2.0.9 (this issue does not seem to occur on 2.0.7 or 2.0.8 of C*). I have included a demo project and some screen shots of the driver trace and breakpoints within the driver to show the recursive exception.
The workaround is to remove the prepare and use SimpleStatement or move the prepare after the change keyspace.
-
Hide
- DataStaxHangIssue.zip
- 2.53 MB
- Richard Andersen
-
- DataStaxHangIssue/.../App.config 0.5 kB
- DataStaxHangIssue/.../Cassandra.Data.dll 20 kB
- DataStaxHangIssue/.../Cassandra.Data.Linq.dll 57 kB
- DataStaxHangIssue/.../Cassandra.Data.Linq.xml 13 kB
- DataStaxHangIssue/.../Cassandra.Data.xml 26 kB
- DataStaxHangIssue/.../Cassandra.dll 202 kB
- DataStaxHangIssue/.../Cassandra.xml 210 kB
- DataStaxHangIssue/.../Crc32C.NET.dll 269 kB
- DataStaxHangIssue/.../Crc32C.NET.xml 4 kB
- DataStaxHangIssue/.../DataStaxHangIssue.exe 7 kB
- DataStaxHangIssue/.../DataStaxHangIssue.exe.config 0.5 kB
- DataStaxHangIssue/.../DataStaxHangIssue.pdb 14 kB
- DataStaxHangIssue/.../DataStaxHangIssue.vshost.exe 22 kB
- DataStaxHangIssue/.../DataStaxHangIssue.vshost.exe.config 0.5 kB
- DataStaxHangIssue/.../DataStaxHangIssue.vshost.exe.manifest 0.5 kB
- DataStaxHangIssue/.../LZ4.dll 124 kB
- DataStaxHangIssue/.../Snappy.NET.dll 519 kB
- DataStaxHangIssue/.../Snappy.NET.xml 28 kB
- DataStaxHangIssue/.../DataStaxHangIssue.csproj 3 kB
- DataStaxHangIssue/.../DataStaxHangIssue.sln 0.9 kB
- DataStaxHangIssue/.../CassandraCSharpDriver.2.1.2.nupkg 161 kB
- DataStaxHangIssue/.../Cassandra.Data.dll 20 kB
- DataStaxHangIssue/.../Cassandra.Data.Linq.dll 57 kB
- DataStaxHangIssue/.../Cassandra.Data.Linq.xml 13 kB
- DataStaxHangIssue/.../Cassandra.Data.xml 26 kB
- DataStaxHangIssue/.../Cassandra.dll 202 kB
- DataStaxHangIssue/.../Cassandra.xml 210 kB
- DataStaxHangIssue/.../Crc32C.NET.1.0.5.0.nupkg 166 kB
- DataStaxHangIssue/.../Crc32C.NET.dll 269 kB
- DataStaxHangIssue/.../Crc32C.NET.xml 4 kB
-
- Driver Trace.jpg
- 332 kB
Activity
Definitely, one Session instance per keyspace is the right approach.
Show
Jorge Bay Gondra
added a comment - Definitely, one Session instance per keyspace is the right approach.
with the Java driver, we often times recommend instantiating different session objects at a keyspace grain. We persist these session objects in a map and call the right session object as needed, for keyspace specific operations. Is this pattern applicable to the C# dirver?