.. _release_notes_v2.1.x:

====================
v2.1.x Release Notes
====================

Platform Changes
----------------

Peek Worker
```````````

We've experienced issues with the Celery library that Peek uses for distributed
processing. The issue observed is Redis closing client connections due to a Pub/Sub
buffer overflow. This is believed to be due to Celery not unsubscribing from events
properly, however investigations showed that the result keys are being cleaned up
in Redis. We're not sure what the fix is, Hence the passive language of this paragraph.

What we have done is improved the txCelery-Py located at
    `<https://github.com/Synerty/txcelery-py3/commits/master>`_ :

*  Task create and result capture are performed in the same thread.

*  Tasks are automatically retried if they fail with a redis connection error.

*  Performance has been greatly reduced by staying in the thread and adding a timeout
    in the thread. There was a significant overhead in Twisted from entering and
    exiting threads.

These changes actually all applied to the Peek Server, but they were for distributed
tasks.


Plugin Changes
--------------

Nil

Deployment Changes
------------------

Linux Deployment
````````````````

Nil


macOS Deployment
````````````````

Nil

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
----------------

Follow the following migration steps to rebuild the data that has changed in this
update.

Stop Peek
`````````

Start the migration tasks with Peek stopped.

On Linux this can be done with ::


    # Stop Peek
    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


Clear Redis and RabbitMQ Queues
```````````````````````````````

Run the following commands to clear any queues ::

    # Purge any outstanding results from the redis task result store
    sudo redis-cli flushall

    # Purge the RabbitMQ Task Queue
    sudo rabbitmqctl purge_queue celery


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.1.7 Issues Log
-----------------

This release was used to test Synertys new CI-CD builds.

v2.1.6 Issues Log
-----------------

This release was used to test Synertys new CI-CD builds.

v2.1.5 Issues Log
-----------------

Bug
```

*    [PEEK-514] - Peek runs out of memory and celery connections die


*    [PEEK-525] - Peek Worker chews all ram and crashes


*    [PEEK-528] - Running the Peek Agent causing netservd
     errors on the connected PowerOn Server:


*    [PEEK-531] - Add settings for max XXX per child settings

Improvement
```````````

*    [PEEK-532] - Update deploy_platform_xxxx.sh/ps1 to deploy_release_xxxx.sh/ps
     and include installing the plugins

v2.1.4 Issues Log
-----------------

This release was used to test Synertys new CI-CD builds.

v2.1.3 Issues Log
-----------------

This release was used to test Synertys new CI-CD builds.

v2.1.2 Issues Log
-----------------

Bug
```

*    [PEEK-494] - PowerOn Diagram Loader - RpcForAgentDispImport.storeStateInfoTuple
        unique constraint violation

*    [PEEK-499] - Field crews using Peek have null token issues on iOS Safari

*    [PEEK-500] - TupleStorageIndexedDbService saveTuplesEncoded never resolves promise

*    [PEEK-503] - Allow auto enroll - remove device register

*    [PEEK-506] - Alphabetically order Symbol Selection

*    [PEEK-512] - txcelery local variable 'async_result' referenced before assignment

*    [PEEK-513] - VortexJS - IndexedDB OfflineTupleActonService
        throws an error every check

*    [PEEK-514] - Peek runs out of memory and celery connections die.

*    [PEEK-516] - NAR ID including user and date incorrect in E-mail.

Improvement
```````````

*    [PEEK-493] - Peek Platform - Add stop_peek.sh script

*    [PEEK-508] - Remove default text from placed symbols.

v2.1.1 Issues Log
-----------------

Bug
```

*    [PEEK-456] - Core User - Fix user title constraint for users logging in from two ADs
        with different username

*    [PEEK-482] - Diagram Edit - Order the edit branches list in descending order.

*    [PEEK-483] - Diagram Edit - Set a minimum width for the Ant.Design dropdowns
        in the shape properties.

*    [PEEK-488] - Queue Compilers - Fail to retry failing task, they wait indefinitely

*    [PEEK-489] - Peek Platform - Twisted thread count is far too small.

*    [PEEK-490] - Queue Compilers - Use too much CPU when not doing anything but waiting

*    [PEEK-491] - Peek server keeps crashing with redis pub/sub buffer overflows.

*    [PEEK-492] - PoN Diagram Loader - Too many concurrent SSH connections during load
        causes SSH rate limiting


v2.1.0 Issues Log
-----------------

New Feature
```````````

*    [PEEK-467] - Diagram Edit - Insert Edge components/templates/symbols

Improvement
```````````

*    [PEEK-466] - Diagram Edit - Edit placed component text


Bug
```

*    [PEEK-320] - ENMAC Graph DB Loader - Loader continually reimports trace configs

*    [PEEK-457] - Core User / Device - User login sticks on login screen

*    [PEEK-462] - Core Login - login screen hangs after selecting the login button

*    [PEEK-463] - ENMAC Switching - program details not shown sequentially

*    [PEEK-464] - Diagram Edit - Deleting existing display items doesn't work

*    [PEEK-465] - Diagram Edit - Creating text doesn't popup shape properties

*    [PEEK-468] - ENMAC SOAP - SOAP isn't compatible with PowerOn Advantage

*    [PEEK-469] - Field Switching - Field confirm for WEB doesn't work
            - Time date is out of range

*    [PEEK-470] - ENMAC SOAP - Datetimes now seem to be double localised

*    [PEEK-473] - All Loaders - Workers failing all their retries can
            end up with queue items in limbo

*    [PEEK-474] - Diagram - Locating on key only (no coord set), will fail

*    [PEEK-475] - ENMAC Equipment Loader - Loader no longer loads conductors

*    [PEEK-476] - Worker - Fix retry issues with redis connections

*    [PEEK-477] - Queue Compilers - Ensure a chunk isn't compiled twice in paralleled

*    [PEEK-478] - Loader Plugins - Fix worker retry/complete logging messages

*    [PEEK-479] - Diagram - Improve LiveDB item create / poll sequence

*    [PEEK-480] - Diagram - Force Lookup imports to be run sequentially

*    [PEEK-481] - VortexPY - Fix reporting of blocking endpoints
