View Issue Details

IDProjectCategoryView StatusLast Update
0002708SymmetricDSBugpublic2016-08-16 14:57
ReporternadavyakarAssigned Toelong 
PrioritynormalSeveritymajorReproducibilityunable to reproduce
Status closedResolutionfixed 
Product Version3.6.11 
Target Version3.8.1Fixed in Version3.8.1 
Summary0002708: symmetric-ds high cpu usage
Descriptionrouter reader threads consume high CPU:
after starting to read a transaction's data from the DB in the fillPeekAheadQueue method, the 'reading' boolean is set to false, which prevents this method from ever completing to read the latest transaction's data, causing the calling loop of execute (while (dataCount < maxDataToRoute || (lastTransactionId != null && transactional)) to call this method for ever.
On our heap-dump we have seen this method has been called for about 61 billion times per thread.
TagsNo tags attached.

Relationships

has duplicate 0002707 closed symmetric-ds high cpu usage 

Activities

nadavyakar

2016-08-14 05:16

reporter   ~0000837

Attached please find our symmetric-ds postgres tables initialization file we run upon installation.
In addition, following is the contect of our engine properties file:

# 1=cloudband instance id, ncos=cloudband db, 10.166.158.72=root server ip, 10.166.158.72=this instance ip, 32123=instance port

engine.name=ncos-cloudband-001

# The class name for the JncosC Driver
db.driver=org.postgresql.Driver

# The JncosC URL used to connect to the database
db.url=jdbc:postgresql://localhost:5432/ncos

i# The user to login as who can create and update tables
db.user=###

# The password for the user to login as
db.password=###

# The HTTP URL of the root node to contact for registration
registration.url=http://10.166.158.72:32123/sync/ncos-cloudband-001
sync.url=http://10.166.158.72:32123/sync/ncos-cloudband-001

group.id=cloudband1
external.id=cloudband-001

# This is how often the routing job will be run in milliseconds
job.routing.period.time.ms=5000
# This is how often the push job will be run.
job.push.period.time.ms=1000
# This is how often the pull job will be run.
job.pull.period.time.ms=1000
#clear all data on tables on initial load

nadavyakar

2016-08-14 05:16

reporter  

ncos_root_server_setup.sql (7,091 bytes)

chenson

2016-08-16 09:43

administrator   ~0000840

There have been a lot of bug fixed since 3.6.11. Have you tried new versions?

chenson

2016-08-16 09:46

administrator   ~0000841

If you want minimal impact, I'd suggest trying 3.6.17 first. You will probably get the best support for 3.7.37 or 3.8.0. If you go 3.8.0, I'd recommend you do a lot of testing.

nadavyakar

2016-08-16 10:37

reporter   ~0000843

We couldn't identify any code changes between symmetric-ds versions which should have altered this problematic behavior.
Are there any particular bugs which have been resolved between these versions which justifies this kind of an upgrade?

chenson

2016-08-16 11:16

administrator   ~0000844

I was specifically thinking of 2111 and 2112. We do see what you are saying, and will add some defensive code.

elong

2016-08-16 12:38

developer   ~0000845

Checking in defensive code fix to fillPeekAheadQueue() for version 3.8.1, which should release soon.

Related Changesets

SymmetricDS: 3.8 abc2867e

2016-08-16 12:36:52

admin

Details Diff
0002708: symmetric-ds high cpu usage
0002708
mod - symmetric-core/src/main/java/org/jumpmind/symmetric/route/DataGapRouteReader.java Diff File

Issue History

Date Modified Username Field Change
2016-08-08 07:43 nadavyakar New Issue
2016-08-12 13:31 elong Relationship added related to 0002707
2016-08-12 13:31 elong Relationship deleted related to 0002707
2016-08-12 13:32 elong Relationship added has duplicate 0002707
2016-08-14 05:16 nadavyakar Note Added: 0000837
2016-08-14 05:16 nadavyakar File Added: ncos_root_server_setup.sql
2016-08-16 09:43 chenson Note Added: 0000840
2016-08-16 09:46 chenson Note Added: 0000841
2016-08-16 10:37 nadavyakar Note Added: 0000843
2016-08-16 11:16 chenson Note Added: 0000844
2016-08-16 12:38 elong Note Added: 0000845
2016-08-16 12:38 elong Assigned To => elong
2016-08-16 12:38 elong Status new => resolved
2016-08-16 12:38 elong Resolution open => fixed
2016-08-16 12:38 elong Fixed in Version => 3.8.1
2016-08-16 12:38 elong Target Version => 3.8.1
2016-08-16 13:00 admin Changeset attached => SymmetricDS 3.8 abc2867e
2016-08-16 14:57 elong Status resolved => closed