.. _release_notes_v2.2.x: ==================== v2.2.x Release Notes ==================== Platform Changes ---------------- #. PostgreSQL upgrade from v10 to v12 #. The peek platform now requires the posgresql-plpython3 package installed. (See Migration Steps) #. A new peek service has been added "peek-storage-service". This currently doesn't run as its own process but it will in the future. Plugin Changes -------------- There has been no functional changes to Peek in this release. There are a lot of performance improvements in this release of peek, the following plugins have changed quite significantly. * peek-plugin-diagram * peek-core-search * peek-core-docdb * peek-plugin-graphdb * peek-plugin-livedb * peek-plugin-index-blueprint Deployment Changes ------------------ Windows Deployment `````````````````` .. note:: This release is not supported on Windows. Linux Deployment ```````````````` - Upgrade Postgresql-10 to Postgresql-12 - Installing PlPython3u Postgresql extension As this is the typical production install, there are migration notes below. macOS Deployment ```````````````` - Upgrade Postgresql-10 to Postgresql-12 - Installing PlPython3u Postgresql extension See the :ref:`setup_os_requirements_macos` documentation for the updates, the following sections need to be completed again. "Install PostgreSQL" and "Install Python 3.6". iOS Deployment `````````````` .. note:: Peek v2.0.x does not have support for iOS, this will be updated in a future release. We're going to Ionics Capacitor framework to create a full hybrid app. Windows Deployment `````````````````` Nil. .. note:: The windows deployment will change to use Windows Subsystem for Linux in a future release. Migration Steps --------------- Redhat 7.5+ ``````````` Follow the migration steps to complete the upgrade of Postgresql-10 to Postgresql-12 and install the plpython3 package. Stop Peek """"""""" Start the migration tasks with Peek stopped. ---- Stop peek with the following commands :: sudo true sudo systemctl stop peek_agent_service sudo systemctl stop peek_office_service sudo systemctl stop peek_worker_service sudo systemctl stop peek_logic_service Upgrade to PostgreSQL-12 """""""""""""""""""""""" Install PostgreSQL 12 :: URL="https://download.postgresql.org/pub/repos/yum" URL=$URL/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm" sudo yum install -y $URL PKG="postgresql12" PKG="$PKG postgresql12-server" PKG="$PKG postgresql12-contrib" PKG="$PKG postgresql12-devel" PKG="$PKG postgresql12-plpython3" sudo yum install -y $PKG Alternatively, the RPMs can be downloaded from here and manually installed. ``_ ``_ ``_ ``_ ``_ ``_ These can then be installed with :: cd where_you_put_the_rpms yum install -u *.rpm ---- The existing postgresql10 server needs to be present, if it's not reinstall it with the following command :: sudo yum install postgresql10-server ---- Vacuum the DB so it's smaller for the migration :: sudo systemctl start postgresql-10 sudo -u peek time echo "VACUUM FULL FREEZE;" | psql ---- Ensure the services are stopped :: sudo systemctl stop postgresql-10 || true sudo systemctl stop postgresql-12 || true ---- Initialise the new v12 cluster :: sudo /usr/pgsql-12/bin/postgresql-12-setup initdb ---- Migrate old cluster to the new cluster :: sudo su - postgres export PGDATAOLD=/var/lib/pgsql/10/data export PGDATANEW=/var/lib/pgsql/12/data export PGBINOLD=/usr/pgsql-10/bin export PGBINNEW=/usr/pgsql-12/bin cd /var/lib/pgsql ${PGBINNEW}/pg_upgrade exit ---- Remove the v10 software :: sudo yum remove postgresql10* ---- Ensure the pg_hba is setup :: F="/var/lib/pgsql/12/data/pg_hba.conf" if ! sudo grep -q 'peek' $F; then echo "host peek peek 127.0.0.1/32 trust" | sudo tee $F -a sudo sed -i 's,127.0.0.1/32 ident,127.0.0.1/32 md5,g' $F fi ---- Enable and start postgresql 12 :: sudo systemctl enable postgresql-12 sudo systemctl start postgresql-12 ---- Analyse the new cluster, the migration doesn't bring across planning statistics. :: sudo su - postgres -c time /var/lib/pgsql/analyze_new_cluster.sh ---- Delete the old cluster :: sudo su - postgres -c time /var/lib/pgsql/delete_old_cluster.sh Grant PostgreSQL Peek Permissions """"""""""""""""""""""""""""""""" The PostgreSQL server now runs parts of peeks python code inside the postgres/postmaster processes. To do this the postgres user needs access to peeks home directory where the peek software is installed. ---- Grant permissions :: sudo chmod g+rx ~peek sudo usermod -G peek postgres Restart Peek """""""""""" Restart all Peek services :: sudo true sudo systemctl start peek_logic_service sudo systemctl start peek_worker_service sudo systemctl start peek_agent_service sudo systemctl start peek_office_service v2.2.2 Issues Log ----------------- Bug ``` * [PEEK-602] - ENMAC Diagram Loader - Agent no longer reloads all pages on restart. v2.2.1 Issues Log ----------------- This release was required to resolve a tag and publish release issue PEEK-539 v2.2.0 Issues Log ----------------- Bug ``` * [PEEK-541] - SequenceGeneratorLimitExceeded "DispCompilerQueue_id_seq" (2147483647) * [PEEK-550] - Peek LiveDB updates accumulate in memory and crashes * [PEEK-552] - Python base64.py bug causes memory leak * [PEEK-555] - Peek server doesn't shutdown while celery is waiting for a task result * [PEEK-556] - Queue processors chew a lot of CPU when it's paused for duplicates * [PEEK-557] - Queue Compilers skip some queue items and never compile them * [PEEK-560] - Chunked Indexes are slow because they use the ORM to query and send to client * [PEEK-571] - Implement Agent Sequential Loading * [PEEK-572] - Agent loaders fail to requeue failed items * [PEEK-578] - ENMAC Event - Loader fails to load if DB isn't initialised * [PEEK-588] - VortexPayloadProtocol has concurrent calls to _processData * [PEEK-593] - ujson crashes peek when decoding doubles from realtime loader * [PEEK-595] - Redis connection interruptions cause memory leak * [PEEK-567] - VortexPY - Add PushProducer to VortexServerConnection * [PEEK-568] - VortexPY - Add support for sendVortexMsg priority New Feature ``````````` * [PEEK-179] - Storage Service Improvement ``````````` * [PEEK-589] - Add code to queue compiler to periodically vacuum the queue, index and encoded data tables. * [PEEK-531] - Add config.json settings for max XXX per child settings * [PEEK-377] - Add config.json settings for sending service logs to syslog * [PEEK-581] - Add config.json settings for logs kept and log size * [PEEK-527] - Add config.json settings for memory debug dumping * [PEEK-554] - Add config.json settings for twisted celery max connection times * [PEEK-553] - Upgrade Twisted to latest version (remove pin from <19.0.0) * [PEEK-559] - Refactor queue compilers and client handlers to use Abstract Chunked Index * [PEEK-561] - Platform - Restart services without the unbuffered flag (performance) * [PEEK-590] - Create peek_abstract_chunked_data_loader plugin * [PEEK-574] - Refactor queue compiler client CacheController to inherit Abstract Chunked Index * [PEEK-575] - Update LiveDB Realtime value loader to use the plpython3u Tuple load methods * [PEEK-576] - Update the Abstract Chunk Index client loader to use plython3u Tuple load methods * [PEEK-577] - Update the Abstract Chunked Index Queue controllers to use plpython3u to load their blocks. * [PEEK-563] - Add plpython3u support to PostgreSQL to documentation * [PEEK-583] - Peek Storage - Create runPyInPg method to run any function in PostgreSQL * [PEEK-586] - Add TcpVortex memory leak unit tests to VortexPY * [PEEK-596] - User Plugin : Add option for accepting invalid LDAP SSL certificate * [PEEK-599] - ENMAC Realtime Loader - Add settings for background polling in admin UI CI/CD Tasks ``````````` In this release, Synerty has rebuilt our CI/CD build servers to use gitlab and gitlab pipelines. * [PEEK-538] - Make pipeline builds work with merge commits. * [PEEK-539] - Tutorial Documentation and Example plugin: Peek Versioning inconsistency * [PEEK-566] - Branch builds of a peek-release now checkout all plugins on the same branch.