Interaction / side effects between lscm and Eclipse
Recently I observed some interaction between the lscm command line tool and eclipse (with rtc connection) that was quite unexpected. I am using eclipse for development with a connection to an RTC repository for managing sources.
Now I once used the lscm command line tool for some automation. What immediately caught my attention is that with running eclipse in the background the command (working directory is inside the eclipse workspace):
C:\Users\...\workspace\...>lscm logout -r <url>
Successfully logged out of <url>
causes the eclipse client's connection to log out as well. I repeated it several times and I am sure that eclipse was logged in before running the command.
Now, I run the lscm login command on the command line. And after this, eclipse is logged in as well.
This effect seems to be happening only when I run lscm in a working directory inside the eclipse workspace.
How should I interpret this behavior? Is it intended or maybe due to some misconfiguration?
Thank you for your answers.
Now I once used the lscm command line tool for some automation. What immediately caught my attention is that with running eclipse in the background the command (working directory is inside the eclipse workspace):
C:\Users\...\workspace\...>lscm logout -r <url>
Successfully logged out of <url>
causes the eclipse client's connection to log out as well. I repeated it several times and I am sure that eclipse was logged in before running the command.
Now, I run the lscm login command on the command line. And after this, eclipse is logged in as well.
This effect seems to be happening only when I run lscm in a working directory inside the eclipse workspace.
How should I interpret this behavior? Is it intended or maybe due to some misconfiguration?
Thank you for your answers.
2 answers
The lscm tool is an Eclipse instance. As you are running your Eclipse GUI and lscm processes from the same Eclipse workspace they are both attempting to use the same metadata. This will cause conflicts and unexpected results. You should separate the processes into different sandboxes to avoid these conflicts.This is an Eclipse restriction rather than a product specific one.
This behaviour is working as designed.
When the sandbox is used by the RTC Eclipse client it locks the sandbox. When the scm command line tool is run using 'lscm' it looks for any scm daemon process which is tracking the sandbox and if found uses that process to perform operations. If no process is found it launches a new scm daemon (out of process) and registers the sandbox. If the tool is run using 'scm' it is an in-process daemon and will fail if a lock is held by an another process (for ex: an RTC Eclipse client).