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