diff --git a/AppDB/appscale/datastore/cassandra_env/templates/cassandra-env.sh b/AppDB/appscale/datastore/cassandra_env/templates/cassandra-env.sh index bef272b481..14166730e2 100644 --- a/AppDB/appscale/datastore/cassandra_env/templates/cassandra-env.sh +++ b/AppDB/appscale/datastore/cassandra_env/templates/cassandra-env.sh @@ -227,6 +227,18 @@ if [ "x$CASSANDRA_HEAPDUMP_DIR" != "x" ]; then JVM_OPTS="$JVM_OPTS -XX:HeapDumpPath=$CASSANDRA_HEAPDUMP_DIR/cassandra-`date +%s`-pid$$.hprof" fi +# stop the jvm on OutOfMemoryError as it can result in some data corruption +# uncomment the preferred option +# ExitOnOutOfMemoryError and CrashOnOutOfMemoryError require a JRE greater or equals to 1.7 update 101 or 1.8 update 92 +# For OnOutOfMemoryError we cannot use the JVM_OPTS variables because bash commands split words +# on white spaces without taking quotes into account +# JVM_OPTS="$JVM_OPTS -XX:+ExitOnOutOfMemoryError" +# JVM_OPTS="$JVM_OPTS -XX:+CrashOnOutOfMemoryError" +JVM_ON_OUT_OF_MEMORY_ERROR_OPT="-XX:OnOutOfMemoryError=kill -9 %p" + +# print an heap histogram on OutOfMemoryError +# JVM_OPTS="$JVM_OPTS -Dcassandra.printHeapHistogramOnOutOfMemoryError=true" + # jmx: metrics and administration interface # # add this if you're having trouble connecting: diff --git a/AppDB/appscale/datastore/cassandra_env/templates/cassandra.yaml b/AppDB/appscale/datastore/cassandra_env/templates/cassandra.yaml index ac3582582b..7dde74740a 100644 --- a/AppDB/appscale/datastore/cassandra_env/templates/cassandra.yaml +++ b/AppDB/appscale/datastore/cassandra_env/templates/cassandra.yaml @@ -381,7 +381,7 @@ saved_caches_directory: /opt/appscale/cassandra/saved_caches # # the other option is "periodic" where writes may be acked immediately # and the CommitLog is simply synced every commitlog_sync_period_in_ms -# milliseconds. +# milliseconds. commitlog_sync: periodic commitlog_sync_period_in_ms: 10000 @@ -396,6 +396,7 @@ commitlog_sync_period_in_ms: 10000 # is reasonable. # Max mutation size is also configurable via max_mutation_size_in_kb setting in # cassandra.yaml. The default is half the size commitlog_segment_size_in_mb * 1024. +# This should be positive and less than 2048. # # NOTE: If max_mutation_size_in_kb is set explicitly then commitlog_segment_size_in_mb must # be set to at least twice the size of max_mutation_size_in_kb / 1024 @@ -646,7 +647,7 @@ native_transport_port: 9042 # # The maximum size of allowed frame. Frame (requests) larger than this will # be rejected as invalid. The default is 256MB. If you're changing this parameter, -# you may want to adjust max_value_size_in_mb accordingly. +# you may want to adjust max_value_size_in_mb accordingly. This should be positive and less than 2048. # native_transport_max_frame_size_in_mb: 256 # The maximum number of concurrent client connections. @@ -1098,6 +1099,10 @@ enable_user_defined_functions: false # This option has no effect, if enable_user_defined_functions is false. enable_scripted_user_defined_functions: false +# Enables materialized view creation on this node. +# Materialized views are considered experimental and are not recommended for production use. +enable_materialized_views: true + # The default Windows kernel timer and scheduling resolution is 15.6ms for power conservation. # Lowering this value on Windows can provide much tighter latency and better throughput, however # some virtualized environments may see a negative performance impact from changing this setting @@ -1170,7 +1175,7 @@ gc_warn_threshold_in_ms: 1000 # Maximum size of any value in SSTables. Safety measure to detect SSTable corruption # early. Any value size larger than this threshold will result into marking an SSTable -# as corrupted. +# as corrupted. This should be positive and less than 2048. # max_value_size_in_mb: 256 # Back-pressure settings # diff --git a/AppDB/appscale/datastore/datastore_distributed.py b/AppDB/appscale/datastore/datastore_distributed.py index fdd039fa0b..5983a8a8dc 100644 --- a/AppDB/appscale/datastore/datastore_distributed.py +++ b/AppDB/appscale/datastore/datastore_distributed.py @@ -3224,7 +3224,7 @@ def apply_txn_changes(self, app, txn): composite_indices = [entity_pb.CompositeIndex(index) for index in self.datastore_batch.get_indices(app)] - decoded_groups = (entity_pb.Reference(group) for group in tx_groups) + decoded_groups = [entity_pb.Reference(group) for group in tx_groups] self.transaction_manager.set_groups(app, txn, decoded_groups) # Allow the lock to stick around if there is an issue applying the batch. diff --git a/RELEASE b/RELEASE index 8d30230742..ffe8d8b963 100644 --- a/RELEASE +++ b/RELEASE @@ -5,6 +5,29 @@ /_/ |_/ .___/ .___//____/\___/\__,_/_/ \___/ /_/ /_/ +AppScale version 3.5.3, released June 2018 +Highlights of features/bugs in this release: + - Issue-2813 - Controller won't start with latest version of soap4r-ng (2.0.4) + +Known Issues: + + +AppScale version 3.5.2, released May 2018 +Highlights of features/bugs in this release: + + - Issue-2770 - Groups are not locked during commit + +Known Issues: + + +AppScale version 3.5.1, released April 2018 +Highlights of features/bugs in this release: + - Upgrade to Cassandra 3.11.2 + - Handle Docker as a provider + +Known Issues: + + AppScale version 3.5.0, released March 2018 Highlights of features/bugs in this release: diff --git a/VERSION b/VERSION index cac7d16653..2d451f4be9 100644 --- a/VERSION +++ b/VERSION @@ -4,4 +4,4 @@ / ___ |/ /_/ / /_/ /___/ / /__/ /_/ / // __/ /_/ |_/ .___/ .___//____/\___/\__,_/_/ \___/ /_/ /_/ -AppScale version 3.5.0 +AppScale version 3.5.3 diff --git a/debian/appscale_install_functions.sh b/debian/appscale_install_functions.sh index d342a6af33..0b2703b6b1 100644 --- a/debian/appscale_install_functions.sh +++ b/debian/appscale_install_functions.sh @@ -303,7 +303,7 @@ installgems() sleep 1 gem install json ${GEMOPT} -v 1.8.3 sleep 1 - gem install soap4r-ng ${GEMOPT} + gem install soap4r-ng ${GEMOPT} -v 2.0.3 gem install httparty ${GEMOPT} -v 0.14.0 gem install httpclient ${GEMOPT} gem install posixpsutil ${GEMOPT} @@ -333,10 +333,10 @@ installsolr() installcassandra() { - CASSANDRA_VER=3.11.0 + CASSANDRA_VER=3.11.2 CASSANDRA_PACKAGE="apache-cassandra-${CASSANDRA_VER}-bin.tar.gz" - CASSANDRA_PACKAGE_MD5="96c72922df1170b4b5dec81b27d451fa" + CASSANDRA_PACKAGE_MD5="1c1bc0b216f308500e219968acbd625e" cachepackage ${CASSANDRA_PACKAGE} ${CASSANDRA_PACKAGE_MD5} # Remove old Cassandra environment directory. diff --git a/scripts/fast-start.sh b/scripts/fast-start.sh index 5bb93b9176..5de53853e9 100755 --- a/scripts/fast-start.sh +++ b/scripts/fast-start.sh @@ -196,7 +196,7 @@ case "$PROVIDER" in ADMIN_EMAIL="a@a.com" ADMIN_PASSWD="$(cat /etc/hostname)" ;; -"CLUSTER") +"CLUSTER"|"Docker") ADMIN_EMAIL="a@a.com" ADMIN_PASSWD="appscale" # Let's discover the device used for external communication.