Issues with cloud9 on beagle bone black

Hi,

I’m having issues with running the cloud9.service on my Beagle Bone Black running:

rmueller@beaglebone:/opt/cloud9$ cat /etc/dogtag
BeagleBoard.org Debian Buster IoT Image 2020-04-06

If I try to connect to the Cloud9 IDE, connection is not possible and systemctl shows the following output:

rmueller@beaglebone:/opt/cloud9$ systemctl status cloud9.service
● cloud9.service - Cloud9 IDE
Loaded: loaded (/lib/systemd/system/cloud9.service; static; vendor preset: enabled)
Active: failed (Result: exit-code) since Sun 2021-05-02 18:03:58 UTC; 52min ago
Process: 2496 ExecStartPre=/opt/cloud9/cloud9-symlink (code=exited, status=217/USER)

I am running with a new user and I deleted the old debian user. Is this problematic? I used the steps specified here: Create New User in Ubuntu on BeagleBone Black | Linux Propaganda

If I try to run the cloud9-symlink shell script without sudo, I get the following error:

rmueller@beaglebone:/opt/cloud9$ ./cloud9-symlink
rm: cannot remove ‘/home//.c9’: Permission denied

Does anyone have an idea why cloud9.service is problematic for me?

Kind Regards
Robin

I am now able to start the Cloud9 IDE in a web browser, which then attempts to install something. During that process, I get the following error

Already using interpreter /usr/bin/python2.7
New python executable in /home/debian/.c9/python/bin/python2.7
Also creating executable in /home/debian/.c9/python/bin/python
Installing setuptools, pip...done.
environment: line 70: /home/debian/.c9/node/bin/npm: No such file or directory
environment: line 71: /home/debian/.c9/node/bin/npm: No such file or directory

Failed Bash. Exit code 127

One or more errors occured. Please try to resolve them and restart Cloud9 or contact support@c9.io.

Again, something with the user which does not exists anymore… Anyone got an idea hwo to solve this?

Actually, I found a way to fix this issue:

I opened the file /lib/systemd/system/cloud9.service:

[Unit]
Description=Cloud9 IDE
ConditionPathExists=|/var/lib/cloud9
After=multi-user.target

[Service]
User=debian
Group=debian
#WorkingDirectory=/opt/cloud9/build/standalonebuild
WorkingDirectory=/opt/cloud9/
#Environment="NODE_PATH=/opt/cloud9_support/lib/node_modules"
EnvironmentFile=/etc/default/cloud9
ExecStartPre=/opt/cloud9/cloud9-symlink
ExecStart=/opt/cloud9_support/bin/node server.js --packed -w /var/lib/cloud9
SyslogIdentifier=cloud9ide

The user and group debian did not exist anymore because I deleted them. I then changed those two entries to the new user name. Now there was still the issue that running these scripts required admin rights. I solved that issue by simply commenting out User and Group. Is there a specific reason that those were assigned to debian and not updated when re-installing Cloud9 from my new user? Also, are there any other service files I now need to update this? Maybe I should not have deleted the debian user after all…

Some more testing I did: I restored the user debian and reinstalled the c9-core-installer package. However, I now still have the issue that the cloud9.service is not started because executing the cloud9-symlink shell script still requires admin rights with the default cloud9.service file.

Kind Regards
Robin

Hi @rmspacefish ,

Cloud9 is actually EOL, there are no one maintaining it anymore. (Amazon purchased them a few years back…)

I’ve been working on switching to VSCode… It’s currently built for the Buster and Bullseye repo’s:

sudo apt update
sudo apt install bb-code-server

It’s a little raw, but seems to work pretty good…

still working on the systemd socket integration, but you can start it with:

/opt/bb-code-server/start.sh

You’ll want to nuke cloud9, as it uses port 3000 too…

Regards,

Hi @RobertCNelson ,

Ah, so you’re in the process of switching the default cloud IDE? I’ve managed ot make it work now by commenting out Group and User again. It seems like a nice tool once it works, unfortunate that it is not maintained anymore.

If I use VSCode, can I still access via Browser similar to before (and if yes, I guess beaglebone.local:3000 does the job?) or does it work differently? I also saw Eclipse theia which looks interesting, but I’m not an expert with Cloud IDEs anyway…

Kind Regards
Robin

Hmm I installed it but there are still some issue. I get these warnings/errors:

[2021-05-03T15:48:24.727Z] error vscode Handshake timed out {"token":"efb3ba51-13be-4325-b01c-168dfe66799a"}
Error: invalid distance too far back
    at Zlib.zlibOnError [as onerror] (zlib.js:182:17) {
  errno: -3,
  code: 'Z_DATA_ERROR'
}
[2021-05-03T15:48:25.424Z] warn  vscode invalid distance too far back
[2021-05-03T15:48:31.906Z] error vscode Handshake timed out {"token":"7beeba3a-60dc-46d7-8044-fd4744484d20"}
[2021-05-03T15:48:35.409Z] error vscode Handshake timed out {"token":"ed5a734a-9d77-4181-9ccd-ed1fc7bf999d"}

I guess this is a code server specific error: Getting zlib error when trying to connect to code server 3.9.2 with the browser · Issue #3014 · cdr/code-server · GitHub

My plan is seamless replacement…

Yeap, it’s a little noisy, but it still works…

Edit, i wonder if we can disable compression…

Regards,

Update, just pushed bb-code-server (3.10.0.20210510.0-0rcnee0~buster+20210511) out today, the Z_DATA_ERROR doesn’t seem to be happening… So it looks to be fixed…

voodoo@x1-am57xx-beagle-x15-2gb:~$ /opt/bb-code-server/start.sh 
[2021-05-11T19:10:19.561Z] info  code-server 3.10.0 a5e8337c866dd72a91a2203abeb5772eca503a52
[2021-05-11T19:10:19.566Z] info  Using user-data-dir ~/.local/share/code-server
[2021-05-11T19:10:19.600Z] info  Using config file /var/lib/bb-code-server/config/config.yaml
[2021-05-11T19:10:19.601Z] info  HTTP server listening on http://0.0.0.0:3000 
[2021-05-11T19:10:19.602Z] info    - Authentication is disabled 
[2021-05-11T19:10:19.603Z] info    - Not serving HTTPS 

REgards,

I’m using VSCode on my Windows box and Remote_SSHing to a BBB. It works pretty well until the connection is lost, which is often. Would it save you some time if this were the default?