No description
Find a file
Ashod Nakashian d0597288dc wsd: stop if unloading and have no sessions to upload
It is possible to lose the last writable session
during unloading and get stuck forever.

This can happen in the following scenario (as observed
in a rare test run):

1. always_save_on_exit is true.
2. The last/only writable session disconnects.
3. We save and upload.
4. We attempt to stop because the clients have disconnected,
   but because we are uploading, it doesn't flag to stop.
5. Uploading fails repeatedly until we reach the limit.
6. We endlessly check to save and upload and even though
   there is nothing to save, we couldn't even check for
   the need to upload, getting stuck.

With this patch the above scenario is not possible.

Change-Id: I19e7b621f2b452a9f18964f5f19d6eb378a48797
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2022-02-25 07:54:11 -05:00
.git-hooks git-hooks: pre-commit: clean up not needed tweak of the perl library path 2021-07-12 19:47:59 +03:00
.github GitHub: Add Easy Project Template 2022-02-07 12:37:19 +01:00
.gitpod-files rename: remaining lool->cool changes 2021-11-18 14:14:11 +01:00
android android: fix slideshow displays black background 2022-02-18 17:59:59 +03:00
browser fixed feature locking on the sidebar 2022-02-25 16:13:08 +05:30
common wsd: const correctness and minor cleanups 2022-02-24 07:38:13 -05:00
cypress_test cypress: fix: mobile/writer/shape_properties_spec.js failure 2022-02-23 16:46:03 +05:30
debian Bump package version to 21.11.2.2 2022-02-19 23:41:43 +01:00
docker docker: from-source: cool user has id 498 in latest opensuse/leap 2022-02-22 10:57:21 +01:00
etc backward compatibility: /lool/convert-to endpoint 2021-11-19 13:27:27 +01:00
fuzzer clientsession_fuzzer: fix missing UnitWSD 2022-01-21 14:52:31 +01:00
gtk rename: remaining lool->cool changes 2021-11-18 14:14:11 +01:00
indexing indexing: rename 'lool' -> 'cool' 2021-11-17 09:17:31 +01:00
ios Bump version to match configure.ac 2022-02-21 19:19:54 +02:00
kit wsd: exit the kit when we fail to connect to wsd 2022-02-24 07:38:13 -05:00
kubernetes/helm rename: remaining lool->cool changes 2021-11-18 14:14:11 +01:00
man coolconfig: updated man page 2022-01-13 22:25:44 +01:00
net wsd: exit the kit when we fail to connect to wsd 2022-02-24 07:38:13 -05:00
scripts A new attept to create list of Collabora Online translators properly 2021-11-26 13:03:24 +01:00
test wsd: test: improve test logging 2022-02-24 07:38:13 -05:00
tools Detect trace replay errors & exit and cleanup traces. 2022-02-21 15:37:05 +00:00
wsd wsd: stop if unloading and have no sessions to upload 2022-02-25 07:54:11 -05:00
.cirrus.yml rename: loolmount -> coolmount 2021-11-17 21:51:05 +01:00
.clang-format
.clang-tidy
.gitignore gitignore: ignore fuzzer, gdb.txt and remove some duplicates 2022-02-24 07:38:13 -05:00
.gitpod.dockerfile GitPod: Fix yml and dockerfile, edit configure recipe 2021-11-26 18:20:53 +01:00
.gitpod.yml GitPod: make instructions more clear 2021-11-26 18:28:10 +01:00
.mailmap Add .mailmap 2021-11-26 11:44:09 +01:00
AUTHORS
autogen.sh
browsersync-config.js browser: update config files 2021-11-10 17:18:56 +01:00
ChangeLog
CODE_OF_CONDUCT.md
configure.ac Bump package version to 21.11.2.2 2022-02-19 23:41:43 +01:00
CONTRIBUTING.md Add info on PR policy 2022-01-19 10:21:23 +01:00
coolkitconfig-mobile.xcu rename: remaining lool->cool changes 2021-11-18 14:14:11 +01:00
coolkitconfig.xcu.in rename: remaining lool->cool changes 2021-11-18 14:14:11 +01:00
coolwsd-generate-proof-key Make coolwsd-generate-proof-key prepared for a custom prefix. 2021-12-22 15:18:35 +01:00
coolwsd-systemplate-setup rename: loolwsd-systemplate-setup -> coolwsd-systemplate-setup - part2 2021-11-18 08:07:23 +01:00
coolwsd.init.rhel6 rename: remaining lool->cool changes 2021-11-18 14:14:11 +01:00
coolwsd.service rename: remaining lool->cool changes 2021-11-18 14:14:11 +01:00
coolwsd.spec.in check for existence of old config file before config migration 2022-01-18 07:44:47 +01:00
coolwsd.xml.in browser: add option for grouping the download as icons 2022-02-24 15:22:22 +01:00
COPYING
discovery.xml
favicon.ico
g Use custom local branch name as explicit remote user branch name for PR 2021-07-16 08:53:58 +02:00
jsstress.in rename coolstress to jsstress 2021-11-16 11:16:45 +01:00
Makefile.am Count and report on various internal exceptions. 2022-02-18 13:51:41 +00:00
NEWS
PROBLEMS rename: remaining lool->cool changes 2021-11-18 14:14:11 +01:00
README.CONTRIBUTING.md
README.md CI: Add build status badges 2022-02-21 15:14:28 +01:00
SECURITY.md Update SECURITY.md 2021-07-05 12:24:14 +02:00
sysconfig.coolwsd rename: remaining lool->cool changes 2021-11-18 14:14:11 +01:00
trace-event.sample2.json Try repeated async events with same name and id 2021-06-23 12:26:27 +03:00

Build Status Build Status

Open in Gitpod

Collabora Online

Master: Pull request policy

irc Telegram Forum Website L10n Gitpod Ready-to-Code

LibreOffice in the Cloud on your own Terms

Key features

  • View and edit text documents, spreadsheets, presentations & more
  • Collaborative editing features
  • Works in any modern browser no plugin needed
  • Open Source primarily under the MPLv2 license. Some parts are under other open source licences, see e.g. browser/LICENSE.

Website

For many more details, build instructions, downloads and more please visit https://collaboraonline.github.io/

Developer assistance

Please ask your questions on irc.libera.chat in our #cool-dev channel

Join the conversation on our Discourse server at https://forum.collaboraonline.com/

Watch the tinderbox status (if it's green) at https://cpci.cbg.collabora.co.uk:8080/view/Tinderbox/job/Tinderbox%20for%20online%20master/

Development bits

This project has several components:

  • wsd/
    • The Web Services Daemon - which accepts external connections
  • kit/
    • The client which lives in its own chroot and renders documents
  • common/
    • Shared code between these processes
  • browser/
    • The client side JavaScript component
  • test/
    • C++ based unit tests
  • cypress_test/
    • JavaScript based integration tests

Please consult the README files in the component's directory for more details:

  • wsd/README
  • browser/README

iOS and Android apps

See the corresponding READMEs:

  • ios/README
  • android/README

GitPod

Head over to https://collaboraonline.github.io/post/build-code/ select gitpod from the dropdown and follow the steps.

Interesting things to keep in mind:

  • Make sure your browser is not blocking windows/tabs from opening from the gitpod workspace URL (maybe add *.gitpod.io to your browser's whitelist)
    • The GitPod tasks will run automatically and further instructions will be printed out right in the terminal
    • VNC tab will open automatically if not just click in the left icon Remote explorer and click 6080. You will see a tab completly black, that's normal.
    • As mentioned in those instructions if you are not using the VS Code desktop and if you are only relying on your browser please:
      • Do not try to click the URL from the make run out put instead copy that URL and execute firefox [paste URL here]
      • Head over to the tab where the VNC is opened (black page), you will see Firefox opening there, maximize and have fun.
      • You can also run cypress tests via GitPod but you will need to use Firefox, for that just prepend CYPRESS_BROWSER="firefox" to the desired command. Example: CYPRESS_BROWSER="firefox" make check for every test or CYPRESS_BROWSER="firefox" make check-desktop spec=impress/scrolling_spec.js for one specific test on desktop

Enjoy!