recording utilities not supporting infinite runs of multiple populations
Discovered the following error message when connecting two populations (one with a live output). The addition of the non-live output population seemed to generate the error:

```
Generating sPyNNaker data specifications
|0                           50%                         100%|
 Exception "TypeError"
unsupported operand type(s) for *: 'NoneType' and 'int'
File: /home/rjames/SpiNNaker_devel/SpiNNFrontEndCommon/spinn_front_end_common/interface/buffer_management/recording_utilities.py, Line: 194
```

adding the following 'Alan Hack' to recording_utilities.py has prevented the error from occurring:

```python
# The size of each buffer is the actual size needed for the number of
    # timesteps, or the maximum for buffering if a maximum is specified
    if n_machine_time_steps is None:
        data = list()
        for n in buffered_sdram_per_timestep:
            data.append(0)
        return data
    else:
        return [
            n_machine_time_steps * sdram
            if (maximum_sdram_for_buffering is None or
                maximum_sdram_for_buffering[i] == 0 or
                (n_machine_time_steps * sdram) > maximum_sdram_for_buffering[i])
            else maximum_sdram_for_buffering
            for i, sdram in enumerate(buffered_sdram_per_timestep)
        ]
```

diff --git a/spinn_front_end_common/interface/buffer_management/recording_utilities.py b/spinn_front_end_common/interface/buffer_management/recording_utilities.py
index 880114fd6..7fbfb84d5 100644
--- a/spinn_front_end_common/interface/buffer_management/recording_utilities.py
+++ b/spinn_front_end_common/interface/buffer_management/recording_utilities.py
@@ -17,7 +17,7 @@ _LAST_SEQUENCE_NUMBER_OFFSET = 4 * 6
 _FIRST_REGION_ADDRESS_OFFSET = 4 * 7
 
 # the number of data elements inside the recording region before
-# recording regions iszes are stored.
+# recording regions sizes are stored.
 _RECORDING_ELEMENTS_BEFORE_REGION_SIZES = 7
 
 # The Buffer traffic type
@@ -189,6 +189,9 @@ def get_recorded_region_sizes(
 
     # The size of each buffer is the actual size needed for the number of
     # timesteps, or the maximum for buffering if a maximum is specified
+    if n_machine_time_steps is None:
+        data = [0 for _ in buffered_sdram_per_timestep]
+        return data
     return [
         n_machine_time_steps * sdram
         if (maximum_sdram_for_buffering is None or
['spinn_front_end_common/interface/buffer_management/recording_utilities.py']