Installing tomcat breaks iso live session
|Reported by:||kalxas||Owned by:||kalxas|
While reviewing the tomcat installer for OSGeoLive 14, I have noticed that by enabling the tomcat installer, the live iso boot process breaks so I had to disable tomcat until a solution can be found.
In order to figure out what the problem is, I managed to get a snapshot during the iso booting process (tomcat-boot-failure.png). The error is:
adduser: The UID 999 is already in use usermod: user 'user' does not exist install: invalid user 'user'
The system (casper) fails to create the 'user' account as the live system user, leaving the system hanging.
Digging a bit deeper, I see the following: On build 37 (without tomcat) right after the startup this is how the /etc/passwd file looks like (live_system_users.png):
... postgres:x:122:131:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash user:x:999:999:Live session user,,,:/home/user:/bin/bash systemd-coredump:x:998:998:systemd Core Dumper:/:/usr/sbin/nologin
By manually creating the build chroot environment, right after tomcat installation, this is how the /etc/passwd file looks like (tomcat_user_chroot.png):
... user:x:1000:1000:user,,,:/home/user:/bin/bash systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin tomcat:x:998:998:Apache Tomcat:/:/usr/sbin/nologin
My understanding of the problem is that tomcat user occupies UID 998 and this makes systemd-coredump user to pick up UID 999, leaving no UID available for the live session user (has to be < 1000). Casper then fails to create the user 'user' leaving the iso hanging on boot.
I see some possible solutions:
- delete tomcat user in setdown script (as we currently do with user https://github.com/OSGeo/OSGeoLive/blob/master/bin/inchroot.sh#L252 ) and find a way to create the tomcat user during boot time.
- patch tomcat debian package to create the tomcat user with another UID.
Any proposals for other solutions?
Change history (14)
comment:6 by , 8 months ago
|Milestone:||OSGeoLive14.0 → OSGeoLive15.0|
|Status:||closed → reopened|