This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS/CODECOMPOSER: Multi-User Installation/Usage Problem

Part Number: CODECOMPOSER
Other Parts Discussed in Thread: CCSTUDIO

Tool/software: Code Composer Studio

I am installing code composer 8.0 on a linux server to be used by our development team.  I followed the eclipse installation notes about making sure everything under /opt/ti does not have group/other write permissions.  The installation works fine for the first user to run code composer.  However when a 2nd user goes to run it code composer starts with a pop-up window "Getting Started Initializer" has encountered a problem.  An internal error has occurred.  java.lang.ExceptionInitializerError.

I have diagnosed the problem starting code composer from the command line with:

bash-4.2$ /opt/ti/ccsv8/eclipse/ccstudio -clean
09:17:47 SEVERE: Failed to extract Chromium binaries into /tmp/jxbrowser-chromium-60.0.3112.113.6.15
java.lang.RuntimeException: java.io.IOException: Permission denied
at com.teamdev.jxbrowser.chromium.internal.XZExtractor.extract(SourceFile:45)
at com.teamdev.jxbrowser.chromium.internal.b.run(SourceFile:1066)
at java.security.AccessController.doPrivileged(Native Method)
at com.teamdev.jxbrowser.chromium.internal.ChromiumExtractor.extractChromiumBinariesIfNecessary(SourceFile:60)
at com.teamdev.jxbrowser.chromium.internal.ipc.IPC.<init>(SourceFile:66)
at com.teamdev.jxbrowser.chromium.internal.ipc.IPC.create(SourceFile:96)
at com.teamdev.jxbrowser.chromium.internal.ipc.IPC$a.<clinit>(SourceFile:467)
at com.teamdev.jxbrowser.chromium.internal.ipc.IPC.getDefault(SourceFile:90)
at com.teamdev.jxbrowser.chromium.BrowserCore.isInitialized(SourceFile:71)
at com.ti.chromium.browser.JxBrowser.init(JxBrowser.java:228)
at com.ti.chromium.browser.ChromiumBrowserContributor.init(ChromiumBrowserContributor.java:40)
at com.ti.browser.internal.TIBrowserPlugin.getPreferredBrowserContributor(TIBrowserPlugin.java:224)

The problem is the JxBrowser is always trying to extract into /tmp/jxbrowser-chromium-60.0.3112.113.6.15 which is owned by the first user that runs code composer it on the machine.

I can't find anywhere in the documentation about how to over ride the directory where it the jxbrowser-chromium.jar file extracts to.

  • Hi Gary,

    Gary Brack said:
    I followed the eclipse installation notes about making sure everything under /opt/ti does not have group/other write permissions.

    Which installation notes are you referring to? Is this the standard Eclipse installation notes or the CCS one?

    Thanks

    ki

  • I was referring to:

    http://processors.wiki.ti.com/index.php/Multi-User_CCS_Installs

    Are you aware of another reference?   Technically I believe this is CCS's however the first link of the page takes you to the Eclipse Instructions.

    http://help.eclipse.org/kepler/index.jsp?topic=%252Forg.eclipse.platform.doc.isv%252Freference%252Fmisc%252Fmulti_user_installs.html

    Basically if you install CCS (as root or using a separate admin user account into the default directory on linux) the installer installs the tools under /opt/ti by default.  

    Generally my next step would be to start code composer in the root or admin account and install/update any missing packages so I had a common set of development tools.  After that I would log into a user account and try to run it and get the error message.  I tracked the error down to a write permission problem.

    When Code Composer is started on linux it extracts files into /tmp/jxbrowser-chromium-60.0.3.3112.113.6.16 which it uses to display the 'Getting Started', 'App Center', and 'Resource Explorer' tabs.

    When the next user tries to start code composer it too tries to extract files into the same location and fails.  If I go in in-between users and manually delete that directory under /tmp then the 2nd user is able to extract the files in the /tmp directory but the next user will have problems when they run it.  Initially I thought this was a problem with Eclipse but realized we don't have these issues when running Eclipse on other projects.  When I started investigating I realized that the JxBrowser app is being extracted from the file /opt/ti/ccsv8/eclipse/plugins/com.ti.chromium.browser_1.0.0.20180231100.jar which is a plugin from TI.

    I haven't found any documentation on the JxBrowser (or more importantly the .jar file) or how to override where it extracts to.  I attempted to override it by setting the standard Unix environment variable TMPDIR to /tmp/<userid> to see if Code Composer was smart enough to pick it up but it doesn't.  

    The normal eclipse plugin standard is that if the CCS Installation folder/settings are read-only the plugin is supposed to put files into the directory ~/...  which shouldn't conflict (convention is explained on the webpage for the link above. ) .

  • Thanks Gary for the excellent explanation. We understand the issue. Right now, there is no way to override where CCS extracts the Chromium binaries. I have filed a ticket so that CCS will try to extract the binary to the current user's temp folder so that it is an accessible location to the current user. The ticked ID is: CCSIDE-3344

    As for a current workaround, I'm afraid the only one that will work is to set the permissions for the location so that all users can access it.

    Thanks
    ki
  • After more analysis, it is indeed possible to override where CCS extracts the binaries. Launch ccstudio with the following arguments:

    > ./ccstudio -vmargs -Djava.io.tmpdir=$HOME/tmp

    This will have CCS extracts the binaries to the user's home directory

    Thanks
    ki
  • Interesting, I was disappointed with your initial response and I ended up coming up with my own hack by setting:

    export TMPDIR=/tmp/${USER}
    export _JAVA_OPTIONS="-Djava.io.tmpdir=${TMPDIR} "

    I just noticed your follow up response and tested it and it works as well. Any chance they are actually going to fix the source code so that Code Composer actually works with multiple users like default Eclipse (or at least update the documentation to being either unsupported or including the recommended patch)?
  • There is an ticket to address this properly: CCSIDE-3344

    However there is no timetable yet on when it will be addressed

  • Thank you.  That is reasonable.  If it were fixed within a year it would be fine by me.  Is it possible to get a notice when it is fixed?

  • I put a note in the ticket to update this thread when the issue is committed to a release.

    Thanks
    ki