Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Links to Content on Linux Fail in 0.13.0, 0.13.2, 0.13.3 #7003

Closed
nobicycle opened this issue Jun 7, 2020 · 27 comments
Closed

Links to Content on Linux Fail in 0.13.0, 0.13.2, 0.13.3 #7003

nobicycle opened this issue Jun 7, 2020 · 27 comments
Labels
P1 - important Priority: High impact on UX TAG: regression Something that previously worked TODO: needs clarification Insufficient information to proceed
Milestone

Comments

@nobicycle
Copy link

nobicycle commented Jun 7, 2020

Observed behavior

$ sudo -u kolibri ls -l /opt/kolibri/content
lrwxrwxrwx 1 root root 40 Jun 8 01:33 /opt/kolibri/content -> /mnt/System/Applications/Kolibri/content

$ sudo -u kolibri ls /opt/kolibri/content
databases storage

No content is visible in the browser.
In the past, after stopping Kolibri, creating the link and starting Kolibri, ... Kolibri would re-establish its database and all would work fine. No Longer.

Expected behavior

Content visible in the browser

Errors and logs

kolibri.txt
daemon.txt

Context

  • Kolibri version 0.13.3, 0.13.2, 0.13.0
  • Arch Linux
  • Firefox
    Python 3.6
@jredrejo
Copy link
Member

jredrejo commented Jun 8, 2020

Hi @nobicycle, in order to reproduce it:

  • is /mnt in a diferent disk volume?
  • are you using apache or nginx?

@indirectlylit indirectlylit added the TODO: needs clarification Insufficient information to proceed label Jun 9, 2020
@nobicycle
Copy link
Author

@jredrejo
Yes, different disk and different partition.

I don't understand the relevance of the question about web server - the browser is simply accessing the internal Kolibri webserver.

BTW This was broken in the past.
#4227

benjaoming commented
symlinks are very powerful mechanisms for distributing massive amounts of contents over several partitions and devices. Also in the case that the database is desired to run on a small, fast drive, while content is stored on a larger, slower drive. Therefore, I think we should keep up the effort to support it, although I agree that now that we have movedirectory, this is obviously cleaner and safer to communicate to normal users.

@jredrejo
Copy link
Member

jredrejo commented Jun 9, 2020

@jredrejo
Yes, different disk and different partition.

I don't understand the relevance of the question about web server - the browser is simply accessing the internal Kolibri webserver.

No, when using apache or nginx, the standard configuration uses it to serve content resources. They are not served by the internal webserver. Neither apache nor nginx can follow symlinks that are in different system partitions. So, this is a very important point.

That was the reason to add a new option, STATIC_USE_SYMLINKS, in #6925.
Please, add it to your options.ini file using this format:

[Deployment]
STATIC_USE_SYMLINKS = False

and check if the problem is solved after restarting your server.

@nobicycle
Copy link
Author

Hello jredrejo.
Thanks for the reply.

"No, when using apache or nginx, the standard configuration uses it to serve content resources."

So Kolibri is detecting if either of these webservers is installed and using one of them them?

In my case I have both apache and nginx installed.

How shall I determine which one Kolibri is using?

If I uninstall nginx and apache then Kolibri will fallback to its internal webserver?

How can I force Kolibri to use its internal webserver (old behavior)?

"add it to your options.ini file using this format:"

Which ini file? I have no ini file in /etc/{nginx,httpd} or in /opt/kolibri

I tried setting the environment variable as follows in my systemd overide file
/etc/systemd/system/kolibri.service.d/override.conf


[Service]
Environment='KOLIBRI_HOME=/opt/kolibri'
Environment='STATIC_USE_SYMLINKS=False'
Environment='KOLIBRI_LISTEN_PORT=8087'

After restarting kolibri service, kolibri in the browser showed nothing.

I will retest after I have answers to some of the questions above.

Thanks

@jredrejo
Copy link
Member

Hello jredrejo.
Thanks for the reply.

hello @nobicycle answering inline

"No, when using apache or nginx, the standard configuration uses it to serve content resources."

So Kolibri is detecting if either of these webservers is installed and using one of them them?

No, these urls are static routes in Kolibri. When using apache or nginx, they are usually bypassed to nginx control to be more efficiently used. Example using nginx:

...
location /static {
    alias  /home/jose/.kolibri/static;
    expires 365d;
    add_header Cache-Control "public";
}
location /content {
    alias  /home/jose/.kolibri/content/;
    expires 365d;
    add_header Cache-Control "public";
}
...

If you are not doing this location change they are still statically handled by cherrypy (kolibri internal webserver). I have not found any reference in Cherrypy docs about this, but it's likely it has the same problem following symlinks to different partitions.

In my case I have both apache and nginx installed.

How shall I determine which one Kolibri is using?

It depends on how you have configure them. If you are not using them to proxy kolibri , you are not using them.

If I uninstall nginx and apache then Kolibri will fallback to its internal webserver?

no need. it's on you to decide in apache or nginx configuration to proxy kolibri or not.

How can I force Kolibri to use its internal webserver (old behavior)?

"add it to your options.ini file using this format:"

Which ini file? I have no ini file in /etc/{nginx,httpd} or in /opt/kolibri

Ah, sorry, my fault, I thought you were aware of the kolibri options.ini file. It is in the kolibri directory: https://kolibri.readthedocs.io/en/latest/manage/get_support.html#home

@nobicycle
Copy link
Author

"I have not found any reference in Cherrypy docs about this, but it's likely it has the same problem following symlinks to different partitions."

The issue I have is why symlinks, including symlinks pointing to different disks, suddenly stopped working. Pointing to different disks is necessary as argued by @benjaoming in the comment above.

It is not likely a human error on my part since I have a simple bash script INSTALL_kolibri that has been run for years. Very simple:

KOLIBRI_stop
chown -R :$KOLIBRI_USER "$DIR/content"
chmod g+w "$DIR/content" -R
sudo ln -s "$DIR/content" "$KOLIBRI_HOME/content"
KOLIBRI_start

(DIR is the storage location of Kolibri content)

Symlinks did stop working as mentioned in #6925, but later they got fixed. So if nothing has changed in Kolibri, that would point the finger at Cherrypy, that has suddenly stopped supporting symlinks.

I will try the ini file suggestion, but surely using a systemd environment file to pass variables is equivalent?

@nobicycle
Copy link
Author

So ... Kolibri was reinstalled and in the browser the initial admin account created etc. Options.ini -

[kolibri@tower ~]$ ls -l
total 996
lrwxrwxrwx  1 root    root        40 Jun 11 12:27 content -> /mnt/System/Applications/Kolibri/content
-rw-r--r--  1 kolibri kolibri 921600 Jun 11 12:27 db.sqlite3
-rw-r--r--  1 kolibri kolibri  36864 Jun 11 12:22 job_storage.sqlite3
drwxr-xr-x  4 kolibri kolibri   4096 Jun 11 12:21 kolibri-venv
drwxr-xr-x  2 kolibri kolibri   4096 Jun 11 12:22 logs
-rw-r--r--  1 kolibri kolibri  32768 Jun 11 12:22 notifications.sqlite3
-rw-r--r--  1 kolibri kolibri     42 Jun 11 12:25 options.ini
-rw-r--r--  1 kolibri kolibri   1120 Jun 11 12:22 plugins.json
drwxr-xr-x 10 kolibri kolibri   4096 Jun 11 12:22 process_cache
drwxr-xr-x  2 kolibri kolibri   4096 Jun 11 12:22 sessions
drwxr-xr-x 29 kolibri kolibri   4096 Jun 11 12:22 static

[kolibri@tower ~]$ cat options.ini 
[Deployment]
STATIC_USE_SYMLINKS = False


The systemd STATIC_USE_SYMLINKS variable is also still there.

Kolibri was stopped, the content link created and Kolibri restarted.

$systemctl status kolibri
● kolibri.service - Kolibri server
     Loaded: loaded (/usr/lib/systemd/system/kolibri.service; disabled; vendor preset: disabled)
    Drop-In: /etc/systemd/system/kolibri.service.d
             └─override.conf
     Active: failed (Result: exit-code) since Thu 2020-06-11 12:27:39 WITA; 8min ago
    Process: 283665 ExecStart=/opt/kolibri/kolibri-venv/bin/kolibri start (code=exited, status=1/FAILURE)
   Main PID: 283665 (code=exited, status=1/FAILURE)

Jun 11 12:27:27 tower systemd[1]: Starting Kolibri server...
Jun 11 12:27:28 tower kolibri[283665]: INFO     Option HTTP_PORT in section [Deployment] being overridden by environment variable KOLIBRI_LISTEN_PORT
Jun 11 12:27:28 tower kolibri[283665]: INFO     Running Kolibri with the following settings: kolibri.deployment.default.settings.base
Jun 11 12:27:28 tower kolibri[283665]: ERROR    There is another Kolibri server running. Please use `kolibri stop` and try again.
Jun 11 12:27:28 tower systemd[1]: kolibri.service: Main process exited, code=exited, status=1/FAILURE
Jun 11 12:27:39 tower systemd[1]: kolibri.service: Failed with result 'exit-code'.
Jun 11 12:27:39 tower systemd[1]: Failed to start Kolibri server.

I looked for the kolibri process using sudo ps -fe|grep 'kolibri|python'
There was nothing.
Instead of using systemd to "stop" kolibri I did it manually:

$ . kolibri-venv/bin/activate
(kolibri-venv) [kolibri@tower ~]$ kolibri stop
INFO     Already stopped: Stopped (1)
(kolibri-venv) [kolibri@tower ~]$ 

I then started manually:
KOLIBRI_LISTEN_PORT=8087 kolibri start

In the browser Kolibri forgot the configuration already done and asked to setup the facility again.
I went through the setup again. Once again no existing content (128 GB) was visible.
kolibri.txt
daemon.txt

@nobicycle
Copy link
Author

I reverted to kolibri 0.12.8, installing using a script that has worked for years ... and all works perfectly.

Quoting @benjaoming again ...
symlinks are very powerful mechanisms for distributing massive amounts of contents over several partitions and devices. Also in the case that the database is desired to run on a small, fast drive, while content is stored on a larger, slower drive. Therefore, I think we should keep up the effort to support it, although I agree that now that we have movedirectory, this is obviously cleaner and safer to communicate to normal users.

Shame we have lost it somewhere between 0.12.8 and 0.13.3

My kolibri partition is unable to have 128G moved onto it, so movedirectory is out of the question unless I upgrade my hardware . Because of cost I would have to use a slow kolibri disk drive - almost certainly erasing any benefits of nginx serving static files.

@jredrejo
Copy link
Member

Shame we have lost it somewhere between 0.12.8 and 0.13.3

There is a change in 0.13.3 to use symlinks and save a lot of space in the users content folders. It should work well for all the users excepting those corner cases as yours . For your case the STATIC_USE_SYMLINKS=False option was created, forcing Kolibri to have the same behaviour it had previously.

I know this has been tested by some of the LE staff because in the online servers, the content folder is stored in a separate partition and it's working correctly, so there must be something else causing your problem.

I would like to be able to reproduce your problem so we can understand what's happening in your case. In a previous comment I see your folder structure. So, if in order to reproduce it, we should:

  1. Create a new kolibri installation from scratch
  2. Move the content folder to a different partition and add a symlink to it from the .kolibri folder.

Is that all, or is there anything else needed to reproduce it?

@nobicycle
Copy link
Author

Well there's all the systemd stuff and overrides for environment variables. Let me see if I can export a single script that does the lot.
So 13.2 should work as in the past. I'll test that too.

If you have the time, I'd be interested to know how the Kolibri symlinks/static serving saves space and how much, or is there something in the docs?

@nobicycle
Copy link
Author

nobicycle commented Jun 12, 2020

Using the same script as 12.8, 13.2 install failed: no content was available post install.

# Choose the archive, purge previous install, use python3.6
$ KOLIBRI_install -c -p -v 3.6 
2020-06-12 08:23:14 [WARNING] Purging /opt/kolibri ...
2020-06-12 08:23:15 [WARNING] Creating /opt/kolibri ...
2020-06-12 08:23:15 [INFO] 	>>>>  	sys already loaded.
2020-06-12 08:23:17 [INFO] Performing stop kolibri ...
2020-06-12 08:23:18 [INFO] Installing /mnt/Archives/archives/Education/Content/Kolibri/kolibri-0.12.8-py2.py3-none-any.whl using --python=python3.6 ...
created virtual environment CPython3.6.9.final.0-64 in 521ms
  creator CPython3Posix(dest=/opt/kolibri/kolibri-venv, clear=False, global=False)
  seeder FromAppData(download=False, pip=latest, setuptools=latest, wheel=latest, via=copy, app_data_dir=/opt/kolibri/.local/share/virtualenv/seed-app-data/v1.0.1)
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
Processing /tmp/kolibri-0.12.8-py2.py3-none-any.whl
Installing collected packages: kolibri
Successfully installed kolibri-0.12.8
2020-06-12 08:24:02 [INFO] Performing start kolibri ...
2020-06-12 08:25:59 [INFO] Performing status kolibri ...
● kolibri.service - Kolibri server
     Loaded: loaded (/usr/lib/systemd/system/kolibri.service; disabled; vendor preset: disabled)
    Drop-In: /etc/systemd/system/kolibri.service.d
             └─override.conf
     Active: active (exited) since Fri 2020-06-12 16:25:59 WITA; 44ms ago
    Process: 357530 ExecStart=/opt/kolibri/kolibri-venv/bin/kolibri start (code=exited, status=0/SUCCESS)
   Main PID: 357530 (code=exited, status=0/SUCCESS)

Jun 12 16:25:59 tower kolibri[357530]: Operations to perform:
Jun 12 16:25:59 tower kolibri[357530]:   Apply all migrations: admin, analytics, auth, content, contenttypes, device, discovery, exams, kolibriauth, lessons, logger, morango, notifications, sessions
Jun 12 16:25:59 tower kolibri[357530]: Running migrations:
Jun 12 16:25:59 tower kolibri[357530]:   No migrations to apply.
Jun 12 16:25:59 tower kolibri[357530]: Operations to perform:
Jun 12 16:25:59 tower kolibri[357530]:   Apply all migrations: admin, analytics, auth, content, contenttypes, device, discovery, exams, kolibriauth, lessons, logger, morango, notifications, sessions
Jun 12 16:25:59 tower kolibri[357530]: Running migrations:
Jun 12 16:25:59 tower kolibri[357530]:   No migrations to apply.
Jun 12 16:25:59 tower kolibri[357530]: Installed 2 object(s) from 1 fixture(s)
Jun 12 16:25:59 tower systemd[1]: Finished Kolibri server.


The difference between 12.8 and 13.2 is the step:

2020-06-12 08:24:02 [INFO] Performing start kolibri ...

Under 12.8 this step takes a few minutes as Kolibri is dealing with the 128G content. Under 13.2 this step takes no time at all.

Seems like STATIC_USE_SYMLINKS is not the issue.
12.8 Logs:
kolibri.txt
daemon.txt

@nobicycle nobicycle changed the title Links to Content on Linux No Longer Work Links to Content on Linux Fail in 0.13.0, 0.13.2, 0.13.3 Jun 19, 2020
@nobicycle
Copy link
Author

Just tested on 0.13.0 - links that work on 12.8 fail here too.

"There is a change in 0.13.3 to use symlinks and save a lot of space in the users content folders. It should work well for all the users excepting those corner cases as yours ."

The Linux platform/file system links is not a "corner case". @benjaoming put forward the strong case for supporting Linux in #4227

0.13.3 is not the problem - it began with 0.13.0

@indirectlylit indirectlylit added P1 - important Priority: High impact on UX TAG: regression Something that previously worked labels Jun 19, 2020
@indirectlylit indirectlylit added this to the 0.14.0 milestone Jun 19, 2020
@indirectlylit
Copy link
Contributor

It's unfortunately uncommon enough that it slipped by without anyone noticing. In order to maintain support, we'll need to add explicit testing of the scenario in our integration testing stories:

https://github.com/learningequality/kolibri/tree/develop/integration_testing/features

@nobicycle if it's possible for you to summarize the steps to reproduce using roughly the format of our integration tests above, we can incorporate the scenario into our standard regression testing process

@nobicycle
Copy link
Author

OK.

  1. pip install kolibri into a python 3.6 virtual environment.
$ python3.6 -V
Python 3.6.9

2.Stop Kolibri and replace the content directory with a soft link to the content directory on a separate disk to the disk used by Kolibri and make sure Kolibri has permissions on the linked directory.

$ ls /opt/kolibri/ -l
total 269560
lrwxrwxrwx  1 root    root           40 Jun 19 09:42 content -> /mnt/System/Applications/Kolibri/content
-rw-r--r--  1 kolibri kolibri 275935232 Jun 20 03:00 db.sqlite3
-rw-r--r--  1 kolibri kolibri     28672 Jun 19 09:44 job_storage.sqlite3
-rw-r--r--  1 kolibri kolibri       533 Jun 19 09:32 kolibri_settings.json
drwxr-xr-x  4 kolibri kolibri      4096 Jun 19 09:32 kolibri-venv
drwxr-xr-x  3 kolibri kolibri      4096 Jun 20 03:00 logs
-rw-r--r--  1 kolibri kolibri     32768 Jun 19 09:42 notifications.sqlite3
-rw-r--r--  1 kolibri kolibri         9 Jun 19 09:44 server.pid
drwxr-xr-x  2 kolibri kolibri      4096 Jun 19 09:54 sessions
drwxr-xr-x 29 kolibri kolibri      4096 Jun 19 09:42 static

  1. Restart Kolibri. A wait of about 3 minutes is required whilst Kolibri digests the 128 GB of content (in my case): but only for Kolibri 0.12.8. The 0.13.X versions do not process anything and return immediately.

For completeness I include the systemd config files, but this is not relevant since the above occurs running manually.


$ cat /usr/lib/systemd/system/kolibri.service
[Unit]
Description=Kolibri server
[Service]
Type=oneshot
RemainAfterExit=yes
PIDFile=/run/kolibri.pid
WorkingDirectory=/opt/kolibri
User=kolibri
SyslogIdentifier=kolibri
ExecStart=/opt/kolibri/kolibri-venv/bin/kolibri start
[Install]
WantedBy=multi-user.target


$ cat /etc/systemd/system/kolibri.service.d/override.conf 
[Service]
Environment='KOLIBRI_HOME=/opt/kolibri'
Environment='STATIC_USE_SYMLINKS=False'
Environment='KOLIBRI_LISTEN_PORT=8093'

@lyw07
Copy link
Contributor

lyw07 commented Jul 2, 2020

Hi @nobicycle , could you try the following steps to see if they fix the issue?

  1. stop kolibri
  2. run rm /opt/kolibri/.data_version
  3. start kolibri
  4. refresh the page

Please let me know if you have any questions. Thank you!

@nobicycle
Copy link
Author

Hi @nobicycle , could you try the following steps to see if they fix the issue?

  1. stop kolibri
  2. run rm /opt/kolibri/.data_version
  3. start kolibri
  4. refresh the page

Please let me know if you have any questions. Thank you!

Hi,
I didn't mention it in the steps I gave above, but the installs I have done are from a completely empty system. That is, /opt/kolibri was not existing prior to install. I assume .data_version is a necessary file and with a fresh install it will contain the appropriate version.

Or are you suggesting the fact of using a symbolic link to content causes data_version to become corrupted? In which case, after I start kolibri and content import fails, the steps you outlined are necessary?

@lyw07
Copy link
Contributor

lyw07 commented Jul 3, 2020

Hi @nobicycle , sorry I should have explained my steps in my last message. In my humble opinion, your contents are not visible in Kolibri because they haven't been imported into the Kolibri database. In 0.12.8, we ran a function to import all the content databases in the KOLIBRI_HOME/content folder that are not in the Kolibri database (db.sqlite3) yet into it when upgrading Kolibri, which matches with what you mentioned here

Under 12.8 this step takes a few minutes as Kolibri is dealing with the 128G content

In 0.13.3, the behavior has been changed, and we only do so when upgrading from a version lower than 0.6.0. By deleting the .data_version file, we are faking the condition here so your content databases in the content directory that haven't existed in the db.sqlite3 will be imported into the database file. And .data_version file will be recreated when running kolibri start.

If you would like to not touch the .data_version file, here is another command you can use which has the same functionality:

  1. stop kolibri
  2. run KOLIBRI_HOME=/opt/kolibri kolibri manage scanforcontent
  3. start kolibri

@indirectlylit
Copy link
Contributor

Ah - that makes sense. Sounds like symlinks were likely unrelated to the issue - my guess is the same behavior could be reproduced even in the default content directory.

If this was working before, it was not because of supported or documented behavior. As @lyw07 mentioned it's necessary to run scanforcontent to explicitly make Kolibri aware of content by adding it to the database.

However, please note that scanforcontent is also not publicly documented, and behaviors might change in a future version of Kolibri. The reason is that there is not a direct relationship between files in a content directory and the way that things get displayed in Kolibri. The brute force method of "show literally everything" works in many cases, but breaks for scenarios where the user wants to be more selective about what is displayed.

One other thing to be aware of is that in 0.14 we added a new CONTENT_FALLBACK_DIRS option. Just flagging that while symlinks should work fine, this is another strategy of achieving similar goals: #6865

@indirectlylit
Copy link
Contributor

@nobicycle feel free to test with our 0.14 betas here https://github.com/learningequality/kolibri/wiki/0.14.0-beta-testing

@nobicycle
Copy link
Author

nobicycle commented Jul 4, 2020

@lyw07 What you say makes perfect sense. I feel sure you have solved the problem.
@indirectlylit Yes I'll test on the beta and report back. I will test CONTENT_FALLBACK_DIRS as well. It should be :

CONTENT_FALLBACK_DIRS='/mnt/System/Applications/Kolibri/content'

in my case?

or
CONTENT_FALLBACK_DIRS='/mnt/System/Applications/Kolibri'
?

@nobicycle
Copy link
Author

nobicycle commented Jul 5, 2020

The environment variable method did not work

See kolibri-session.txt
First I began with repeatedly setting the environment variable
Environment='CONTENT_FALLBACK_DIRS="/mnt/System/Applications/Kolibri/content"'

as follows:

sudo nano  /etc/systemd/system/kolibri.service.d/override.conf 
sudo systemctl daemon-reload
sudo systemctl stop kolibri
sudo systemctl status kolibri
sudo systemctl restart  kolibri

I tried :
"/mnt/System/Applications/Kolibri"_
"/mnt/System/Applications/Kolibri/content"_

and also those same two values without double quotes

CONTENT_FALLBACK_DIRS did not trigger processing the content.

Kolibri logs also attached.
kolibri.txt
daemon.txt
kolibri-session.txt

@nobicycle
Copy link
Author

The file removal method WORKED!

@nobicycle
Copy link
Author

nobicycle commented Jul 5, 2020

However I still wonder why I get "There is another Kolibri server running. Please use kolibri stop and"
This happens after install, using the systemd service (attached) to start.

**2020-07-05 04:22:16 [INFO] Performing start kolibri ...
Job for kolibri.service failed because the control process exited with error code.
See "systemctl status kolibri.service" and "journalctl -xe" for details.
2020-07-05 04:22:38 [INFO] Performing status kolibri ...
● kolibri.service - Kolibri server
Loaded: loaded (/usr/lib/systemd/system/kolibri.service; disabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/kolibri.service.d
└─override.conf
Active: failed (Result: exit-code) since Sun 2020-07-05 12:22:38 WITA; 45ms ago
Process: 65485 ExecStart=/opt/kolibri/kolibri-venv/bin/kolibri start (code=exited, status=1/FAILURE)
Main PID: 65485 (code=exited, status=1/FAILURE)

Jul 05 12:22:16 tower systemd[1]: Starting Kolibri server...
Jul 05 12:22:17 tower kolibri[65485]: INFO Option HTTP_PORT in section [Deployment] being overridden by environment variable KOLIBRI_LISTEN_PORT
Jul 05 12:22:17 tower kolibri[65485]: INFO Running Kolibri with the following settings: kolibri.deployment.default.settings.base
Jul 05 12:22:18 tower kolibri[65485]: ERROR There is another Kolibri server running. Please use kolibri stop and try again.
Jul 05 12:22:18 tower systemd[1]: kolibri.service: Main process exited, code=exited, status=1/FAILURE
Jul 05 12:22:38 tower systemd[1]: kolibri.service: Failed with result 'exit-code'.
Jul 05 12:22:38 tower systemd[1]: Failed to start Kolibri server.
[1] 65515
[me@tower ~]$ [65526:65526:0705/122239.366141:ERROR:chrome_content_client.cc(346)] Failed to locate and load the component updated flash plugin.
Opening in existing browser session.**

Service

$ cat /usr/lib/systemd/system/kolibri.service
[Unit]
Description=Kolibri server
[Service]
Type=oneshot
RemainAfterExit=yes
PIDFile=/run/kolibri.pid
WorkingDirectory=/opt/kolibri
User=kolibri
SyslogIdentifier=kolibri
ExecStart=/opt/kolibri/kolibri-venv/bin/kolibri start
[Install]
WantedBy=multi-user.target

@lyw07
Copy link
Contributor

lyw07 commented Jul 5, 2020

Hi @nobicycle ,

I'm glad that file removal worked for you! For CONTENT_FALLBACK_DIRS, since you are using the environment variable instead of a field in the option.ini file in KOLIBRI_HOME directory here, the name needs to be prefixed with KOLIBRI_ so Kolibri can detect its value. I think in your case, it needs to be set to

Environment='KOLIBRI_CONTENT_FALLBACK_DIRS="/mnt/System/Applications/Kolibri/content"'

Please feel free to let us know if the environment variable change still doesn't work for you. Thank you!

@nobicycle
Copy link
Author

Thanks @lyw07

I'm bored with testing for now and glad kolibri is back up.
Unless it is urgent to test the KOLIBRI_CONTENT_FALLBACK_DIRS then I will test in next release.
Is that OK?

@lyw07
Copy link
Contributor

lyw07 commented Jul 5, 2020

Hi @nobicycle ,

Yes definitely, please feel free to do so whenever you would like to. It is not urgent at all :)

@indirectlylit
Copy link
Contributor

thanks @nobicycle and @lyw07

let's open a new issue for any follow-up

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P1 - important Priority: High impact on UX TAG: regression Something that previously worked TODO: needs clarification Insufficient information to proceed
Projects
None yet
Development

No branches or pull requests

4 participants