Jump to content

Are there downsides to running client-only installations of Plastic?


Recommended Posts

Hi,

I'm setting up a Jenkins build system. Both Linux and Windows agents are involved. I run all this within Docker containers.

For Linux, I install the `plasticscm-client-core` package (so only a client - no server). It _seems_ to work well for checkout & incremental updates - except for one odd thing: In order to do `cm workspace create`, the client.conf/WorkspaceServer setting needs to point to a valid server [for example, pointing to a cloud org works well]. If I don't do this, then workspace creation succeeds, but the `cm workspace create` command itself errors ("Connection refused", nonzero exit code). Subsequent Jenkins commands (`cm update` etc) work just fine though.

I don't know whether `cm` is intended to operate fine in such a "client-only" configuration (no local server). Is that the case? If so, you may want to investigate why the WorkspaceServer setting is important to `cm` when creating a workspace.

 

(Side note: for Windows containers, I am currently running the whole cloud edition installer, and configure a local server etc within the container there. I hope to move to a client-only configuration there as well, sometime in the future.)

Mikael

Link to comment
Share on other sites

Hi Mikael,

What linux distribution are you using?

Can you share with me the cm workspace create command you are using?

Do you specify the repository@server in the command like the following?

cm workspace create quakewk quake_path --repository=quake@localhost:6060

Regards,

Rafael

Link to comment
Share on other sites

I have seen this problem both on Ubuntu 20.04 (when run in WSL2), and on Debian Buster (when run within a Docker container).

I have been using cm version 10.0.16.5816 throughout all testing.

 

Here is the install script that the Docker container used: https://github.com/falldamagestudio/UE-Jenkins-Images/blob/aa13570e86edb7f31258f35c545b5475144cd457/ue-jenkins-agents/linux/ue-jenkins-ssh-agent/Dockerfile#L20-L25

And here is the (templated) client.conf used: https://github.com/falldamagestudio/UE-Jenkins-BuildSystem/blob/895eb9b2dfbb36772e17328a0cbf50c6e98abcd2/application/plastic/client.conf.template

------------------------------------------------------------------------------------------------------------------

When I reproduce this locally in Ubuntu 20.04, I notice that, with <WorkspaceServer>local</WorkspaceServer> in client.conf, a 'create workspace' command like this fails:

$ cm workspace create test1234 test1234 --repository=UE-Jenkins-Game@ue_jenkins_buildsystem@cloud
Error: Connection refused

... but, with <WorkspaceServer>ue_jenkins_buildsystem@cloud</WorkspaceServer> in client.conf, it works just fine:

$ cm workspace create test1234 test1234 --repository=UE-Jenkins-Game@ue_jenkins_buildsystem@cloud
Workspace test1234 has been correctly created

---------------------------------------------------------------------------------------------------------

From the above, I think that the repro steps are:

1) Install plasticscm-client-core only, not any of the full client+server packages

2) Create a client.conf that does not point WorkspaceServer to any existing server, and cryptedservers.conf + *.key in case you intend to talk to a server with content encryption on

3) try to create a workspace for a remote repository. This will fail with 'connection refused'

----------------------------------------------------------------------------------------------------------

The same thing can be simulated on a Windows machine with a full install. Just stop the "Plastic SCM Server" service. Then try to create a workspace:

PS C:\x> cm workspace create test1234 test1234 --repository=UE-Jenkins-Game@ue_jenkins_buildsystem@cloud
Error: No connection could be made because the target machine actively refused it 127.0.0.1:8084

... but, the workspace folder appears on disk, and it's perfectly possible to enter the folder and perform a 'cm update' to fetch the repo contents.

Link to comment
Share on other sites

  • 3 weeks later...
  • 4 weeks later...

Hi Mikael,

Sorry for the late response.

I can reproduce the behaviour you previously described.

The error that appears do not compromise the functionality of the command, right?

Is this message blocking you in some way? I will comment this with the dev Team, it should be a quick fix.

Regards,

Rafael.

PlasticSCM Support Team

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...