Bug 1279008

Summary: kickstarter command "%include <url>" is broken in Fedora 23
Product: [Fedora] Fedora Reporter: Dominic Search <dom>
Component: anacondaAssignee: Anaconda Maintenance Team <anaconda-maint-list>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 23CC: anaconda-maint-list, bcl, franta, g.kaviyarasu, jonathan, tojeline, vanmeeuwen+fedora
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: pykickstart-2.15-1 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-11-10 14:15:40 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Anaconda log after dying
none
anaconda and system logs from crashed install none

Description Dominic Search 2015-11-07 03:45:29 UTC
Created attachment 1090832 [details]
Anaconda log after dying

The kickstarter command "%include <url>" does not function correctly when booting from Fedora-Server-netinst-x86_64-23.iso.  Anaconda gets the include file from the web server (as logged by apache) and then dies with the error message "Kickstarter file /run/install/ks.cfg is missing".  

The same set of kickstarter files works ok when booting from Fedora-Server-netinst-x86_64-22.iso.  Using a single kickstarter file with no includes and similarly accessed via http also works ok with Fedora 23, so it's just the includes via http that are broken.

I have not tested includes for files on a local device, so do not know if the problem is limited to http.

----------------

This is fully repeatable as follows:

1. Boot from Fedora-Server-netinst-x86_64-23.iso
2. Select Install at the grub menu and press tab
3. Append to the end of the commandline "inst.ks=http://somedomain/pathto/kickstarter.cfg"
4. Press return

Minimal contents of NOT working kickstarter.cfg 

  network --bootproto=dhcp --ipv6=auto --activate --device=eno16777728 --hostname=somehostname
  %include http://somedomain/pathto/include.inc

Minimal contents of include.inc

  graphical
  vnc

For comparison, minimal contents of WORKING kickstarter.cfg 

  network --bootproto=dhcp --ipv6=auto --activate --device=eno16777728 --hostname=somehostname
  graphical
  vnc

----------------

Versions:

* anaconda 23.19.10-1
* Fedora-Server-netinst-x86_64-23.iso

Platform:

* Vmware workstation 12 player
* Guest = Fedora 64bit with 2 cpus, 4GB RAM, bridged network.
* Host  = Windows 8.1 Pro on Intel i7, 32GB RAM.

Comment 1 Frantisek Hanzlik 2015-11-08 14:51:39 UTC
Created attachment 1091264 [details]
anaconda and system logs from crashed install

/tmp/anaconda.log, /tmp/syslog, /var/log/boot.log logs - last contain some detail about crash

Comment 2 Frantisek Hanzlik 2015-11-08 14:53:11 UTC
Same result when trying install from Fedora-Workstation-netinst-i386-23.iso (477102080 Bytes, from 2015-Oct-30 00:51, anaconda-23.19.10-1).

ks specified on kernel cmdline as: 'inst.ks=http://ws22/ks/23/cac32-ks.cfg', and
kickstart file contain several %include statements in form:
%include http://192.168.1.22/ks/23/_must-be_bez_mych
%include http://192.168.1.22/ks/23/_must-be_server
%include http://192.168.1.22/ks/23/_must-not-be
%include http://192.168.1.22/ks/23/_mate
...

Attached are '/tmp/anaconda.log', '/tmp/syslog', '/var/log/boot.log' logs, last contain some detail about crash:
...
[   71.044927] dracut-initqueue[637]: mount: /dev/sdc is write-protected, mounting read-only
[   72.452273] dracut-initqueue[637]: % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
[   72.452549] dracut-initqueue[637]: Dload  Upload   Total   Spent    Left  Speed
[   72.458369] dracut-initqueue[637]: 0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0^M100  5109  100  5109    0     0   813k   
   0 --:--:-- --:--:-- --:--:--  831k
[   73.011799] dracut-initqueue[637]: Traceback (most recent call last):
[   73.011962] dracut-initqueue[637]: File "/sbin/parse-kickstart", line 609, in <module>
[   73.012070] dracut-initqueue[637]: outfile, output = process_kickstart(path)
[   73.012151] dracut-initqueue[637]: File "/sbin/parse-kickstart", line 587, in process_kickstart
[   73.012230] dracut-initqueue[637]: parser.readKickstart(processed_file)
[   73.012308] dracut-initqueue[637]: File "/usr/lib/python3.4/site-packages/pykickstart/parser.py", line 763, in readKickstart
[   73.012384] dracut-initqueue[637]: self.readKickstartFromString(s, reset=False)
...

Without '%include' statements kickstart install continue without problems.

This bug is very annoying, as with new anaconda installer is possible to do customized installation only with kickstart file - and %include statement allows it's flexible adaptation; it is IMO very important.

Comment 3 David Shea 2015-11-10 14:15:40 UTC
This problem is due to the switch to Python 3 and the various surprises that caused as far as string types. If you look at the boot messages that are displayed before anaconda starts, you'll notice something scroll by to the effect of 'bytes object has no such attribute read'. This is fixed in rawhide by https://github.com/rhinstaller/pykickstart/commit/04d6f243c0a36b0c3a208080cc5e05dadcc50c76, but unfortunately this update was not included in the Fedora 23 release.

Comment 4 Chris Lumens 2015-11-11 15:29:26 UTC
*** Bug 1280377 has been marked as a duplicate of this bug. ***