Install and Configuration

Wow, I use a lot of JetBrains products. And if I were doling out free (and worth every penny of it) advice to the company it would be get your config and deploy house in order because your apps are a dog's dinner of experiences on those fronts.

YouTrack is a dream. Super easy to setup and install. Putting in new versions is a breeze.

TeamCity not bad but not as nice.

Upsource has been awful. I have fiddled with this thing so many times and OMG, it's just like a runaway train. Now, I made a plist file and I am trying to get it to work and the startup starts, then it just loops endlessly with the CPU fan going wildly. Seriously: you tail the log and you just see the same couple blocks repeated ad nauseum until you terminate it.

Some JetBrains apps include plist files. I doubt I have something wrong in the plist but maybe I do. Still, if there is a wrong config that can make this thing go into whirling dervish mode, I think we can agree that's suboptimal.

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

    <key>WorkingDirectory</key>

    <string>/usr/local/Upsource</string>

    <key>UserName</key>

    <string>blah</string>

    <key>Debug</key>

    <false/>

    <key>Label</key>

    <string>jetbrains.upsource.server</string>

    <key>OnDemand</key>

    <false/>

    <key>KeepAlive</key>

    <true/>

    <key>ProgramArguments</key>

    <array>

          <string>bin/upsource.sh</string>

           <string>start</string>

    </array>

    <key>RunAtLoad</key>

    <true/>

    <key>StandardErrorPath</key>

    <string>logs/launchd.err.log</string>

    <key>StandardOutPath</key>

    <string>logs/launchd.out.log</string>

</dict>

</plist>

It is something with the plist as I was able to start the app at the command line with sudo -u blah ./bin/upsource.sh start.

5 comments
Comment actions Permalink

Hi,

Sorry for the delayed response.

It's true, Upsource spams log files in case some errors happened during start up. It should be improved in the future versions of the product.

As for plist file, Upsource doesn't include it by default and so far we don't have any documented instructions on how it should be created.

In you case the following steps might help:

1. Start Upsource with "upsource.sh daemon start" command
2. Make sure that upsource.sh is executable
3. Replace "start" with "run" in your plist file.

Also this command might help you to test the file:

launchctl load /Library/LaunchDaemons/jetbrains.upsource.server.plist

Please let me know if it helps.

0
Comment actions Permalink

Thanks Artem! Once I get this to work, I will make a Gist out of it and post back here in case you want to use it.

0
Comment actions Permalink

Rob, I couldn't agree more that Upsource Mac install needs love.  My Upsource upgrade from 2.x to 3.x went awry in August 2016.  I abandoned it.  In October 2016 my 1 TB drive was inexplicably full and I traced it to 750 GB (gigabytes!) across thousands of Upsource logs.

After reinstalling 3.x, the plist is giving trouble.  I began with JetBrains' Feb. 2016 instructions:
https://upsource-support.jetbrains.com/hc/en-us/articles/207242115-Autostart-Upsource-server-on-Mac-OS-X

I made these changes:

1. Changed "run" to "start" because run does not seem to exist.

    <key>ProgramArguments</key>
    <array>
        <string>bin/upsource.sh</string>
        <string>daemon</string>
        <string>run</string>
    </array>
 
2. Changed /System/Library/LaunchDaemons to /Library/LaunchDaemons so as not to mix system and user daemons.  
 
Running as root is fine.  Here is launcher.log:
 
[2016-12-04 14:54:35,423] TRACE - root - [daemon start] ================================================================ (start)
[2016-12-04 14:54:35,441] DEBUG - her.ep.commands.MacDaemonStart - [daemon start] JetLauncher process ID: 4630
[2016-12-04 14:54:35,442] DEBUG - her.ep.commands.MacDaemonStart - [daemon start] Using Java: <Upsource Home>/internal/java/mac-x64 (version "1.8.0_101")
[2016-12-04 14:54:35,442] DEBUG - her.ep.commands.MacDaemonStart - [daemon start] Upsource home directory: /Users/brian/devel/Upsource
[2016-12-04 14:54:35,442] DEBUG - her.ep.commands.MacDaemonStart - [daemon start] Command line: [daemon, start]
[2016-12-04 14:54:35,442] DEBUG - her.ep.commands.MacDaemonStart - [daemon start] JetLauncher logs directory: <Upsource Home>/logs
[2016-12-04 14:54:35,442] DEBUG - her.ep.commands.MacDaemonStart - [daemon start] JetLauncher version: 1.0.24
[2016-12-04 14:54:35,442] DEBUG - her.ep.commands.MacDaemonStart - [daemon start] Loaded launcher plugins: [ConfPathProvider, mac-daemon-commands, win-service-commands]
[2016-12-04 14:54:35,442] DEBUG - her.ep.commands.MacDaemonStart - [daemon start] Upsource config folder: <Upsource Home>/conf
[2016-12-04 14:54:35,443] DEBUG - .BaseLauncherConfig$BaseParser - [daemon start] Using launcher configuration file: jar:file:<Upsource Home>/launcher/lib/upsource-launcher.jar!/launcher.java.config
[2016-12-04 14:54:35,448] ERROR - mmands.BaseMacDaemonSubCommand - [daemon start] Use "sudo" to run this command
[2016-12-04 14:54:35,449] TRACE - root - [daemon start] ================================================================ (finish)
 
That block prints every 11 seconds until the daemon is stopped.
 
Two questions:
1. Where does that sudo go?  Does it show up because I'm running as root or not running from /System/Library/?
2. Can I suppress the DEBUG output, since any continuous output is a non-starter (don't want to deal with a full drive again).  I already have debug off, as in the example:
 
    <key>Debug</key>
    <false/>
 
0
Comment actions Permalink

Guys,

Mentioned article regarding daemon installation has been updated. Please check it out - https://upsource-support.jetbrains.com/hc/en-us/articles/207242115-Autostart-Upsource-server-on-Mac-OS-X

1
Comment actions Permalink

Thank you, Artem.  That got me most of the way there.  Cassandra's initialization got into an infinite loop with the error below.  The commit log in question was 0 bytes.  After deleting it, Cassandra finished and everything started.

 

[2016-12-11 23:22:19,631] [Apache Cassandra Error] 2016-12-11T23:22:19,623 [[APP-WRAPPER] Proxy 1] ERROR o.a.c.utils.JVMStabilityInspector - Exiting due to error while processing commit log during initialization.
[2016-12-11 23:22:19,631] [Apache Cassandra Error] org.apache.cassandra.db.commitlog.CommitLogReplayer$CommitLogReplayException: Could not read commit log descriptor in file /Users/brian/devel/Upsource/data/cassandra/commitlog/CommitLog-6-1481515058243.log 

0

Please sign in to leave a comment.