Hi,
we experience a crash of MonetDB 5 server during tests of a multi-threaded client access via JDBC-Driver and MapiSocket:
The application is already optimized to avoid “concurrency conflicts” because of the “Optimistic Concurrency Control” concept.
The test simulates client access via two threads.
All update operations (INSERT, UPDATE, DELETE, DROP TABLE, CREATE TABLE) are done in serial.
All read operations are done in parallel to other read operations or to update operations.
The test causes a crash of mserver5.exe after a few minutes.
If the test uses just one thread, all read and update operations are done in serial and the server does not crash.
What is the rule of thumb to avoid crashes when using several client threads?
Crash details:
Problem signature:
Problem Event Name: APPCRASH
Application Name: mserver5.exe
Application Version: 0.0.0.0
Application Timestamp: 55389f58
Fault Module Name: StackHash_8ec6
Fault Module Version: 6.1.7601.18247
Fault Module Timestamp: 521eaf24
Exception Code: c0000374
Exception Offset: 00000000000c4102
OS Version: 6.1.7601.2.1.0.144.8
Locale ID: 1031
Additional Information 1: 8ec6
Additional Information 2: 8ec62499039d1d8234b025a62c725eb7
Additional Information 3: f8f3
Additional Information 4: f8f3e520847c0684b15d4080171779ef
# MonetDB 5 server v11.19.9 "Oct2014-SP2"
# Serving database 'uniserv', using 4 threads
# Compiled for x86_64-pc-winnt/64bit with 64bit OIDs dynamically linked
# Found 10.000 GiB available main-memory.
..
# MonetDB/SQL module loaded
Michael Witt