Jump to content

Workspace Selector/Server Address Mis-Match


jdyeager

Recommended Posts

I'm running into some strange behavior when trying to execute certain commands from the Plastic GUI. It seems that some commands try to access the repository/server defined by the workspace selector, while others try to use another server address and fail.

 

The addresses I'm seeing are as follows (basically):

 

repo.server.public   (public address of repository server, and what is used by my workspace selector)

 

repo-server.local     (local address of the repository server on its LAN, may have been used by some workspace on my machine at some point)

 

What I'm seeing (using WireShark) is that refreshing pending changes accesses the server by its public address, while trying to undo unchanged items or commit a changeset will try to access the server using the local server address. This fails when I am off the server's LAN, and I get the 'No such host is known' error.

 

Is there someplace else I should be looking for this phantom local address besides in the workspace selector? I've tried removing the workspace and re-creating it, but it doesn't change the result. The version of Plastic I'm using is 5.0.43.487 if that helps.

 

Also, this is a Unity3D project, and I have been using the editor plugin occasionally. When I initially started getting the 'No such host is known' error, it seemed that it would start happening a little while after opening the project in Unity, but I can't confirm that that is the case now.

 

Thanks,

 

- Josh

Link to comment
Share on other sites

No, no profiles defined there. Should I try creating one?

 

After experimenting some more, it seems like deleting plastic.wktree and re-opening the workspace in the GUI fixes the issue at least temporarily. I'm waiting on Unity to finish importing now so I can tell if the issue starts again after opening the project with Unity. Which I'm guessing would mean that the editor plugin is doing something in plastic.wktree to cause what I'm seeing.

 

Thanks,

 

- Josh

Link to comment
Share on other sites

From a thread about changing the server IP: http://www.plasticscm.net/index.php?/topic/736-change-server-ip/?p=8467

 

Hi,

 

I sitll have this problem with the latest version of Plastic SCM, and cm update does not fix it (the error "no such host" appears when running cm update on the workspace, as well).

I've changed all the releveant settings and it should be pointing to the new address, but everything after the GUI (including cm update) only tries to connect to the old address. The GUI will connect to the correct one, and I can see the branches and chageset in the repository, but I cannot merge or update the changeset in any way (the "no such host" error occurs with the old address appearing still).

 

I think the address is somehow actually tied to the repository itself on the server side. If I make a new repository on the server from the client, the new repository will work fine. But I can't connect to the old one.

 

I even added <ServerName>(current address)</ServerName> to the server.conf but that doesn't help.

 

 

I think this may be what I am seeing as well. If I look at the repository, it is defined using the local address of the server. So maybe nothing to do with the Unity plugin, but instead how I originally defined the repository?

 

I think I did try the solution mentioned in that thread at one point as well, but I'm not sure. I am away from my laptop at the moment, but I will try it again tonight and let you know.

 

Thanks,

 

- Josh

 

Link to comment
Share on other sites

I just tried to create a new repository using the public address of the repository server, but once it was created it shows that it's using the local address anyway. Is this the expected behavior?

 

If it matters, I created the repository from a Mac desktop on the repository server's LAN.

 

- Josh

Link to comment
Share on other sites

Ok, maybe getting somewhere... it appears that my server is configured using the local domain name instead of the public one. Which I'm guessing is somehow the cause of the issues I'm having.

 

I tried changing the name of the server (using <ServerName> tag in server.conf), but that just seems to make all my clients time out when trying to connect. I also updated the clients using the client configuration tool to point to the new server name, but that didn't help. Not sure what I might be doing wrong at this point since it seems like it must be related to my server using it's local domain name but I'm not sure how to change it without screwing up client connections.

 

Is there a step-by-step guide somewhere on how to change the configured server name?

 

Thanks,

 

- Josh

Link to comment
Share on other sites

Hi,  to change the configured server name and client configuration:

 

- To reconfigure the server name or IP, you can run "configureserver.exe" (server folder). This tool will edit the "server.conf" file with the new values. Then restart the Plastic server service.

 

- To reconfigure the clients, you can open a console and run "plastic --configure". The "client.conf" will be updated. Before reconfiguring the clients, try to use "ping" to check if the server name or IP is reachable from the clients. If it is, you should be able to open the GUI and create a workspace.  You can also run the command "cm lrep" to check if the repositories are listed at the client side. Then you can then create a new workspace linked to one those repositories.

 

Best regards,

Carlos

Link to comment
Share on other sites

Well, after changing the server name and getting client connections to work correctly I am still seeing the local address of the server being used after opening the project with Unity. If there's anything else you recommend trying or anything I can do to help reproduce this issue on your end, please just let me know.

 

Thanks,

 

- Josh

Link to comment
Share on other sites

Things seem to be working correctly now after creating a new repository. The steps I followed were:

 

1. Rename the server using its public domain name.

          - Clients could connect, but the old name seemed to be used after opening the project with Unity

 

2. Create a new repository, making sure to use the server's public domain name

 

3. Replicate all branches from my old repository to the new one (using Plastic GUI)

 

4. Create a new workspace pointing to the new repository and the server's public domain name

 

And now I don't seem to have any problems with Plastic using the server's local name. So it seems like something was caching a reference to the old server name somewhere. I'm still not sure if it's the repository or something with Unity though. It seems like it would have to be the repository, but several times I would not see the local server name used until I opened the project with Unity.

 

Thanks,

- Josh

Link to comment
Share on other sites

Hi, 

 

I´ve performed the next tests to reconfigure Uniti plugin and reproduce your issue:

 

1. Rename a Plastic repository.

2. Delete .plastic folder from the Plastic workspace.

3. Create a new Plastic workspace in the same local path, but linked to the renamed repository.

4. After deleting .plastic folder and recreating the workspace, Unity plugin is able to work with the new renamed Plastic repository.

 

Regards,

Carlos

Link to comment
Share on other sites

That's true, but I also found that if I change the name of the new repository to the name of the old one the behavior returns. It seems like the old server address is tied to the repository name somehow. I'm guessing the Unity plugin is storing that information somewhere since a new workspace and repository can somehow start trying to use the old address after opening the project in Unity.

 

Thanks,

- Josh

Link to comment
Share on other sites

Well, the only reason I created a new repository in the first place was to get Plastic to not use the old server address. And since there are other remote clients with workspaces that would be accessing that repository, I wanted to keep the original name to try to keep them from having to go through modifying the selector or deleting the .plastic folder and creating a new workspace. I guess I mostly just don't understand why the old server address would be stored anywhere. Why isn't changing the workspace selector enough to say 'this workspace accesses X repository on Y server'?

 

Thanks,

- Josh

Link to comment
Share on other sites

  • 1 month later...

Just as a follow-up to this, it seems that if I connect to the repository through the Unity plugin to download the project initially (using the fully qualified repository name), I do not see the wrong server address being used when on another network. So steps to reproduce would be something like:

 

1. Create a repository

2. Using the Plastic GUI, connect to that repository and download the project

3. While connected to the same network as the repository server, open the project with Unity

4. Make sure the Plastic plugin says that it is connected in the Version Control tab

5. Close the project in Unity

6. Change the network used by your client machine

7. Open the project in Unity again

8. Make some changes and either try to commit them or undo unchanged files

 

It's possible that I did something wrong in my server setup as well, but if not, the above steps should produce a 'no such host' error because the local address of the repository server is being used off the server's local network.

 

Hope this helps,

 

- Josh

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...