[OE-core] postinst does not finish

Koen Kooi koen at dominion.thruhere.net
Fri Apr 19 14:07:07 UTC 2013


Op 19 apr. 2013, om 16:00 heeft Koen Kooi <koen at dominion.thruhere.net> het volgende geschreven:

> 
> Op 19 apr. 2013, om 15:37 heeft Koen Kooi <koen at dominion.thruhere.net> het volgende geschreven:
> 
>> 
>> Op 19 apr. 2013, om 15:13 heeft Koen Kooi <koen at dominion.thruhere.net> het volgende geschreven:
>> 
>>> 
>>> Op 19 apr. 2013, om 15:03 heeft "Burton, Ross" <ross.burton at intel.com> het volgende geschreven:
>>> 
>>>> On 19 April 2013 13:49, Koen Kooi <koen at dominion.thruhere.net> wrote:
>>>>>> Running the postinstalls at first boot appear to hang because (and
>>>>>> that's just a feeling) gtk-icon-cache is run twice on target... which is
>>>>>> time consuming.
>>>>> 
>>>>> I know it's time consuming, but it finished on 60-90 minutes with 1.3, I left it overnight and it still hadn't finished. I have the LEDS configured to short mmc0 and cpu0 activity and there' s no IO, only cpu from time to time. I don't think it takes more than 14 hours to run those postinsts.
>>>> 
>>>> How about hacking the postinsts to use sh -x, so you can see what it's
>>>> executing?
>>> 
>>> Going to do that in a minute. Todays build just finished (*$(@*$(@ webkit-gtk build times) and I added timeoutsec=600 to the .service file:
>>> 
>>> root at beaglebone:~# systemctl status run-postinsts -a
>>> run-postinsts.service - Run pending postinsts
>>> Loaded: loaded (/lib/systemd/system/run-postinsts.service; disabled)
>>> Active: failed (Result: timeout) since Sat 2000-01-01 18:30:33 UTC; 13 years 3 months ago
>>> Main PID: 122
>>> CGroup: name=systemd:/system/run-postinsts.service
>>> 
>>> Jan 01 18:20:33 beaglebone S98run-postinsts[122]: adduser: group gdm does not exist
>>> Jan 01 18:20:33 beaglebone S98run-postinsts[122]: chown: unknown user/group gdm:gdm
>>> Jan 01 18:30:33 beaglebone systemd[1]: run-postinsts.service operation timed out. Terminating.
>>> Jan 01 18:30:33 beaglebone systemd[1]: Failed to start Run pending postinsts.
>>> Jan 01 18:30:33 beaglebone systemd[1]: MESSAGE=Unit run-postinsts.service entered failed state.
>>> root at beaglebone:~# 
>>> 
>>> So it seems to just hang. Will report about the set -x thing shortly.
>> 
>> And here it is:
>> 
>> Change postinst.service to Type=simple
>> 
>> 

[ snip]

>> 
>> root at beaglebone:~# ls /etc/rcS.d
>> S03systemd-udevd
>> root at beaglebone:~# 
>> 
>> So it completed this time. This is the 5th reboot already. I have no idea why it finished this time :(
> 
> And it still doesn't work :(
> 
> root at beaglebone:~# systemctl status gdm -a
> gdm.service - Gnome Display Manager
>   Loaded: loaded (/lib/systemd/system/gdm.service; enabled)
>   Active: active (running) since Sat 2000-01-01 19:22:11 UTC; 13 years 3 months ago
> Main PID: 147 (gdm-binary)
>   CGroup: name=systemd:/system/gdm.service
>           └─147 /usr/sbin/gdm-binary -nodaemon
> 
> Apr 19 13:56:22 beaglebone gdm-simple-slave[326]: WARNING: Couldn't look up uid
> Apr 19 13:56:22 beaglebone gdm-simple-slave[337]: WARNING: User gdm doesn't exist
> Apr 19 13:56:22 beaglebone gdm-simple-slave[326]: WARNING: Unable to parse output:
> Apr 19 13:56:22 beaglebone gdm-simple-slave[326]: WARNING: Unable to parse D-Bus launch output
> Apr 19 13:56:22 beaglebone gdm-simple-slave[338]: WARNING: User gdm doesn't exist
> Apr 19 13:56:22 beaglebone gdm-simple-slave[326]: WARNING: Could not run helper: Failed to execute child process "/usr/lib/gdm/ck-get-x11-display-device" (No such file or directory)
> Apr 19 13:56:22 beaglebone gdm[147]: gdm-binary[147]: WARNING: GdmDisplay: display lasted 1.401004 seconds
> Apr 19 13:56:22 beaglebone gdm-binary[147]: WARNING: GdmDisplay: display lasted 1.401004 seconds
> Apr 19 13:56:22 beaglebone gdm-binary[147]: WARNING: GdmLocalDisplayFactory: maximum number of X display failures reached: check X server log for errors
> Apr 19 13:56:22 beaglebone gdm[147]: gdm-binary[147]: WARNING: GdmLocalDisplayFactory: maximum number of X display failures reached: check X server log for errors
> 
> Hmm, let's rerun gdm.postinst:
> 
> root at beaglebone:~# sh /var/lib/opkg/info/gdm.postinst 
> + '[' x '!=' x ']'
> + grep '^gdm:' /etc/group
> + grep '^gdm:' /etc/passwd
> + adduser --disabled-password --system --home /var/lib/gdm gdm --ingroup gdm -g gdm
> adduser: /var/lib/gdm: File exists
> + '[' -d /var/lib/gdm ']'
> + chown -R gdm:gdm /var/lib/gdm
> + chmod 0750 /var/lib/gdm
> + mkdir -p /etc/X11/
> + echo /usr/bin/gdm
> + OPTS=
> + '[' -n '' ']'
> + type systemctl
> + systemctl enable gdm.service
> + '[' -z '' -a enable = enable ']'
> + systemctl restart gdm.service
> + test x '!=' x
> + OPT=-s
> + type update-rc.d
> + update-rc.d -s gdm start 99 5 2 . stop 20 0 1 6 .
> System startup links for /etc/init.d/gdm already exist.
> + '[' x '!=' x ']'
> + GDK_PIXBUF_MODULEDIR=/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders
> + gdk-pixbuf-query-loaders --update-cache
> [  102.324520] tilcdc 4830e000.fb: timeout waiting for framedone
> + for icondir in '/usr/share/icons/*'
> + '[' -d /usr/share/icons/Crux ']'
> + gtk-update-icon-cache -fqt /usr/share/icons/Crux
> + for icondir in '/usr/share/icons/*'
> + '[' -d /usr/share/icons/HighContrast ']'
> + gtk-update-icon-cache -fqt /usr/share/icons/HighContrast
> + for icondir in '/usr/share/icons/*'
> + '[' -d /usr/share/icons/HighContrast-SVG ']'
> + gtk-update-icon-cache -fqt /usr/share/icons/HighContrast-SVG
> + for icondir in '/usr/share/icons/*'
> + '[' -d /usr/share/icons/HighContrastInverse ']'
> + gtk-update-icon-cache -fqt /usr/share/icons/HighContrastInverse
> + for icondir in '/usr/share/icons/*'
> + '[' -d /usr/share/icons/HighContrastLargePrint ']'
> + gtk-update-icon-cache -fqt /usr/share/icons/HighContrastLargePrint
> 
> (etc)
> 
> So it looks like the postinsts do run when used inside run-postinst.service, but don't save their output (sucky description, I know).

Does anyone know which caps systemd sets on initscripts? It could be that the adduser caps are disallowed and we need to explicitly set them. 






More information about the Openembedded-core mailing list