Troubleshooting
Here are some possible causes for errors in the logs.
Log location in the container: /var/log/sharelatex/clsi.log
Full message reads roughly (after removing quite a lot of noise):
<path> is not a directory; Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type
Check the value of the SYNCTEX_BIN_HOST_PATH
environment variable --- please see this documentation.
Docs are logically deleted and will be in the deletedDocs
array in the project
document.
List the deleted docs in mongo:
db.projects.findOne({_id: ObjectId("<project_id>")}, { deletedDocs: 1} )
Then open a shell in the sharelatex
container. From there you can run the restore_soft_deleted_docs
script.
You will need:
- your admin user ID
- the project ID
- the list of doc names from
deletedDocs
Example restoring a deleted restoreMe.tex
document:
node /var/www/sharelatex/web/scripts/restore_soft_deleted_docs.js <admin_id> <project_id> restoreMe.tex
{ doc:
{ _id: 5f91b367e86f6d0001680ecc,
name: '2020-10-22T16-29-27.066Z-restoreMe.tex' },
folderId: null }
This will have created a bunch of docs in the root of the project that look like TIMESTAMP-original-name. They should have the content and the tracked changes and comments from before deletion.
Mounting a NFS filesystem in an Overleaf container is technically possible, but it's not recommended and can result in different types of performance errors.
One common error that compiles see is:
EBUSY: resource busy or locked, unlink '/var/lib/sharelatex/data/compiles/62f3d57bef7cf9005c364e75-62f3d57bef7cf9005c364e7a/.nfs573663533034825247625441'
In particular we advise against using NFS backed filesystems for ephemeral data, like the directories use for compilation data. We recommend using a local scratch disk, preferably a local SSD for the following directories:
-
/var/lib/sharelatex/tmp
: ephemeral data such as uploads and processing zip file data,Settings.path.dumpFolder
andSettings.path.uploadFolder
are sub-directories of this folder -
/var/lib/sharelatex/data/cache
: cache for binary files of projects that are being compiled (Settings.path.clsiCacheDir
) -
/var/lib/sharelatex/data/compiles
: ephemeral compile dir data (Settings.path.compilesDir
) -
/var/lib/sharelatex/data/output
: ephemeral compile artifacts for download by the browser (Settings.path.outputDir
)
For docker-compose
based setups, we suggest just overriding the bind-mount from NFS, which avoids changing paths in the application. Here's an example of a docker-compose
config excerpt with the use of a scratch disk that is mounted at /scratch
:
services:
sharelatex:
environment:
SANDBOXED_COMPILES_HOST_DIR: /scratch/compiles/
volumes:
- nfs:/var/lib/sharelatex/data
- /scratch/cache/:/var/lib/sharelatex/data/cache
- /scratch/compiles/:/var/lib/sharelatex/data/compiles
- /scratch/output/:/var/lib/sharelatex/data/output
- /scratch/tmp/:/var/lib/sharelatex/tmp
There is no need to migrate any existing files from the NFS to their new home after the update. The LaTeX compiler can recreate all the files with a full compilation run again.
Use the docker logs redis
command to output a copy of the logs.
The full output will look something like this:
1:M 11 Feb 2024 15:19:22.609 # Server initialized
1:M 11 Feb 2024 15:19:22.609 # Fatal: Can't initialize Background Jobs.
1:C 11 Feb 2024 15:19:26.055 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
If you see the line Fatal: Can't initialize Background Jobs
, this may be related to the version of Docker currently in use. Updating to a version >=20.10.10 should resolve this issue.
- Quickstart Guide (Overleaf Toolkit)
- Hardware Requirements
- Database & Dependencies
- Creating and managing users
- General configuration
- Configuring Email
- SSL & Nginx reverse proxy
- Data and Backups
- Configuring Headers, Footers & Logo
- Password Restrictions
- i18n Languages
- Logging
- Common Config Options
- F.A.Q
- Troubleshooting
- Full Project History Migration