There is 1 comment.
 
 
XWiki Docker images / cid:jira-generated-image-avatar-8823f2de-f4b2-4aeb-849a-b30772d369c1 XDOCKER-321 Open

Container based image 16.2.x postgres-tomcat crashes regularly after upgrade due to a Solr issue

 
View issue   ยท   Add comment
 

1 comment

 
cid:jira-generated-image-avatar-e24948af-b024-4c88-9085-36b19d00905e Vincent Massol on 17/Jul/26 22:11
 

The diagnosis earlier in this thread is correct, and this is indeed a Docker-image fix (the XWiki/XJetty counterpart was already done in XWIKI-21708, 16.4.0).

The No space left on device message is misleading: the embedded Solr suggester (LookupFactory) - and various other libraries - write temporary files directly to java.io.tmpdir, which is not configurable at the Solr level. In a container that default location can be small or tmpfs-backed, so it fills up even when the mapped /usr/local/xwiki/data volume has plenty of free space. That matches the SOLR-10937 pattern.

Fix made in the image:
* tomcat/setenv.sh now sets -Djava.io.tmpdir=/usr/local/xwiki/data/tmp, i.e. on the mapped permanent volume, which always has real disk space. It stays overridable through the JAVA_OPTS environment variable.
* Because that directory lives on the persistent volume and nothing in the container reaps temporary files (there is no OS tmp-reaper, and the volume survives restarts), xwiki/docker-entrypoint.sh now empties it on every container start, before Tomcat launches. This keeps it from growing without bound and mirrors what XWiki's own Environment does for its xwiki-temp directory.

Workaround on the current image until a new one is published - create the directory once and set the JVM temp dir via JAVA_OPTS, e.g. in docker-compose:

environment:
  \- JAVA\_OPTS=\-Djava.io.tmpdir=/usr/local/xwiki/data/tmp \-Xmx1024m

(create /usr/local/xwiki/data/tmp on the volume first, since the JVM won't create it). Could you confirm this resolves the crashes on your side?