Release Notes

Public

8.0.16.4017: Feb 27 2020

New

All platforms - .NET Core Server: Great news! We just published the Plastic SCM server built on .NET Core, the cross-platform, rock-solid, super-fast and officially supported framework.

The new servers are available for Linux, macOS and Windows since version 8.0.16.4017.

The new servers are fully compatible with your current installation but as of 8.0.16.4017 they still don't include WebAdmin, WebUI and mergebots. We'll release a new version packaging those soon.

The Linux servers are available as tar.gz and also regular packages.

Windows and macOS servers are only available as zip and tar.gz at this point. We'll make them full regular installers soon.

You can read more about the brand new .NET Core server in this blogpost.

Bug

All platforms - Plastic, Gluon (Cloud Edition): This release has a known bug that causes repositories to appear duplicated during the configuration steps. This bug is not critical, is just a graphical nuissance when selecting the repository you want to join. It will be fixed in the upcoming releases.

New

All platforms - Server: We introduced a buffer pool for the network buffering.

Now Plastic Protocol takes advantage of a buffer pool and larger buffers (2MB) when reading from and writing to the network, which speeds up operations when sending lots of metadata.

New

All platforms - Server: We added extra logs and a list of active connections.

Added a new log to Plastic Proto (only when it runs standalone without remoting) to track socket accepts:

conn 1231. port 8088. Connection accepted from [33.41.xx.xx]

Also, added a new command (conns) to plasticd --console shell and extra info to the ServerStats log that prints the active connections:

NETWORK CONNECTIONS
    id port                 from                 status   since    alive    requests
     3 127.0.0.1:8084       127.0.0.1            Active   00:00:01 00:00:04        2
     4 127.0.0.1:8084       127.0.0.1            Active   00:00:00 00:00:03        2
     5 127.0.0.1:8084       127.0.0.1            Active   00:00:02 00:00:02        1
     6 127.0.0.1:8084       127.0.0.1            Active   00:00:01 00:00:01        1
Total connections: 4

Total connections is redundant with the former:

ACTIVE CLIENT CONNECTIONS

In the log.

The counter shows all the open socket connections, whether they are waiting or actively used.

Also, added an extra security setting: If SSL stays being negotiated more than 10 secs, the conn will be aborted.

New

All platforms - Server: We added a new shell that lets you interact with locally running plasticd processes. Yes! This is particularly useful when the Plastic SCM Server is running as a daemon, in which case you couldn't interact with it.

Probably best explained with some examples:

To start the shell:

C:\path\bin\server>plasticd shell
Found 2 servers running:

1. MY_LAPTOP:8084
2. MY_LAPTOP:8085

Please choose a server [1-2]: 2
Connecting to MY_LAPTOP:8085
MY_LAPTOP:8085>

Of course, if there were only one, it would have connected to it directly.

To see the list of available commands:

MY_LAPTOP:8085> help
Shell commands:
    help        Shows this help
    connect     Connect to an active server
    exit        Exit the shell

Server commands:
        'gcinfo' shows info about garbage collection
        'procinfo' shows process info
        'gc' runs garbage collector
        'collect' runs GC.Collect
        'stats' shows network stats
        'cleancaches' cleans all caches
        'showcaches' shows info about all caches
        'perfcounters' shows the available perf counters
        'showmethodlist' shows active requests
        'netpause' pauses the network connections - current connections are broken and new ones rejected
        'netrestart' restarts the network connections
        'shutdown' performs a controlled stop, first stops accepting new requests, then waits for all requests to finish

MY_LAPTOP:8085>

For example:

MY_LAPTOP:8085> gcinfo

GARBAGE COLLECTOR USAGE
======= ================
GC-Gen0 1
GC-Gen1 0
GC-Gen2 0
GC total memory 05.19 Mb

MY_LAPTOP:8085>

Switch to my other server, and shut it down:

MY_LAPTOP:8085> connect
Found 2 servers running:

1. MY_LAPTOP:8084
2. MY_LAPTOP:8085

Please choose a server [1-2]: 1
Connecting to MY_LAPTOP:8084
MY_LAPTOP:8084> shutdown
Shutting down server...
OK

Connecting to MY_LAPTOP:8085
MY_LAPTOP:8085>

And end scene:

MY_LAPTOP:8085> exit

C:\path\bin\server>

Bug

Windows - Plastic: When editing the path permissions for a repository that is not the workspace active one, the dialog allowed to choose folders for the currently active repository instead of the one that was selected. That was wrong and now it's fixed.

Bug

Windows - Plastic: After refreshing the Repository browser view (the view that shows the files in a branch, label or changeset), the expanded and selected nodes were lost. Now it's fixed.