Crash in gis_assistant_get_all_pages when upgrading from Fedora 38 to Fedora 39 after "Add liveuser mode and switch vendor.conf to accomodate it"
Since the "Add liveuser mode and switch vendor.conf to accomodate it" commit downstream (gnome-initial-setup-45~beta-3.fc39.x86_64), openQA's Workstation upgrade test is catching a crash in gnome-initial-setup.
The test starts from a pre-built disk image with Fedora Workstation 38 on it and a user account, boots to GDM, but does not log in. It switches to a console, does some prep, then upgrades the system to 39. Then it boots, logs in, and uploads a disk image. Another test then picks up from that disk image, boots, and checks for unexpected notifications. This test fails because it sees two crash notifications, one of which is from a g-i-s crash.
The g-i-s crash seems to happen on the first boot after the upgrade. The backtrace looks like this:
Core was generated by `/usr/libexec/gnome-initial-setup --existing-user'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x000056170f3e5b19 in gis_assistant_get_all_pages (assistant=0x0) at ../gnome-initial-setup/gis-assistant.c:326
326 ../gnome-initial-setup/gis-assistant.c: File exists.
[Current thread is 1 (Thread 0x7f84f3527640 (LWP 2471))]
#0 0x000056170f3e5b19 in gis_assistant_get_all_pages (assistant=0x0) at ../gnome-initial-setup/gis-assistant.c:326
No locals.
#1 write_state (driver=0x56171060bc20) at ../gnome-initial-setup/gnome-initial-setup.c:445
state = 0x56171061d8c0
builder = 0x56171060f1f0
visited_pages = 0x0
node = <optimized out>
error = 0x0
assistant = 0x0
pages = <optimized out>
state = <optimized out>
error = <optimized out>
builder = <optimized out>
visited_pages = <optimized out>
assistant = <optimized out>
pages = <optimized out>
node = <optimized out>
__func__ = <optimized out>
page = <optimized out>
#2 gis_ensure_stamp_files (driver=driver@entry=0x56171060bc20) at ../gnome-initial-setup/gnome-initial-setup.c:478
done_file = 0x5617105db390 "/home/test/.config/gnome-initial-setup-done"
error = 0x0
__func__ = "gis_ensure_stamp_files"
#3 0x000056170f3d393a in main (argc=<optimized out>, argv=<optimized out>) at ../gnome-initial-setup/gnome-initial-setup.c:407
driver = 0x56171060bc20
status = <optimized out>
context = <optimized out>
mode = <optimized out>
entries = {{long_name = 0x56170f404244 "existing-user", short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x56170f45d99c <force_existing_user_mode>, description = 0x56170f404252 "Force existing user mode", arg_description = 0x0}, {long_name = 0x56170f40426b "live-user", short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x56170f45d998 <force_live_user_mode>, description = 0x56170f404275 "Force live user mode", arg_description = 0x0}, {long_name = 0x56170f40428a "oem", short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x56170f45d994 <force_oem_mode>, description = 0x56170f40428e "Force OEM mode", arg_description = 0x0}, {long_name = 0x0, short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x0, description = 0x0, arg_description = 0x0}}
__func__ = "main"
seems like the problem is that 'assistant' is null.