DesktopService exceptions hinder subsequent service initializations

Bug #2049675 reported by Erich Eickmeyer
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ubuntu Studio System Installer
Confirmed
Undecided
Unassigned

Bug Description

Looks like geolocation is failing, probably due to lack of GNOME Shell location services.

flutter: ERROR ubuntustudio-system-installer: Unhandled exception
        StateError: Bad state: GetIt: Object/factory with type GeoService is not registered inside GetIt.
(Did you accidentally do GetIt sl=GetIt.instance(); instead of GetIt sl=GetIt.instance;
Did you forget to register it?)
#1 ProviderContainer.read (package:riverpod/src/framework/container.dart:241:0)
#2 ConsumerStatefulElement.read (package:flutter_riverpod/src/consumer.dart:623:0)
#3 TimezonePage.load (package:ubuntu_provision/src/timezone/timezone_page.dart:18:0)
#4 _InstallWizard.build.<anonymous closure> (package:ubuntu_bootstrap/installer/installer_wizard.dart:130:0)
#5 _WizardBuilderState.initState.<anonymous closure>.<anonymous closure> (package:ubuntu_wizard/src/wizard_builder.dart:45:0)
#6 WizardController._loadRoute (package:wizard_router/src/controller.dart:25:0)
#7 WizardController.next (package:wizard_router/src/controller.dart:94:0)
#8 WizardButton.next.<anonymous closure>.<anonymous closure> (package:ubuntu_wizard/src/wizard_button.dart:105:0)
#9 throwIfNot (package:get_it/get_it_impl.dart:12:0)
#10 _GetItImplementation._findFactoryByNameAndType (package:get_it/get_it_impl.dart:397:0)
#11 _GetItImplementation.get (package:get_it/get_it_impl.dart:425:0)
#12 _GetItImplementation.call (package:get_it/get_it_impl.dart:465:0)
#13 getService (package:ubuntu_service/src/ubuntu_service.dart:9:0)
#14 timezoneModelProvider.<anonymous closure> (package:ubuntu_provision/src/timezone/timezone_model.dart:13:0)
#15 ChangeNotifierProvider._create (package:flutter_riverpod/src/change_notifier_provider/base.dart:113:0)
#16 ChangeNotifierProviderElement.create.<anonymous closure> (package:flutter_riverpod/src/change_notifier_provider/base.dart:196:0)
#17 Result.guard (package:riverpod/src/result.dart:21:0)
#18 ChangeNotifierProviderElement.create (package:flutter_riverpod/src/change_notifier_provider/base.dart:196:0)
#19 ProviderContainer.read (package:riverpod/src/framework/container.dart:241:0)
#20 ConsumerStatefulElement.read (package:flutter_riverpod/src/consumer.dart:623:0)
#21 TimezonePage.load (package:ubuntu_provision/src/timezone/timezone_page.dart:18:0)
#22 _InstallWizard.build.<anonymous closure> (package:ubuntu_bootstrap/installer/installer_wizard.dart:130:0)
#23 _WizardBuilderState.initState.<anonymous closure>.<anonymous closure> (package:ubuntu_wizard/src/wizard_builder.dart:45:0)
#24 WizardController._loadRoute (package:wizard_router/src/controller.dart:25:0)

flutter: DEBUG subiquity_client: POST http://localhost/meta/mark_configured?endpoint_names=%5B%22network%22%5D
flutter: DEBUG subiquity_client: ==> markConfigured([network]) null
flutter: DEBUG subiquity_client: POST http://localhost/meta/confirm?tty=%22%2Fdev%2Ftty1%22
flutter: INFO subiquity_status: WAITING => ApplicationStatus(state: ApplicationState.NEEDS_CONFIRMATION, confirmingTty: , error: null, cloudInitOk: true, interactive: true, echoSyslogId: subiquity_echo.3036, logSyslogId: subiquity_log.3036, eventSyslogId: subiquity_event.3036)
flutter: DEBUG subiquity_client: ==> confirm(/dev/tty1) null
flutter: INFO subiquity_status: NEEDS_CONFIRMATION => ApplicationStatus(state: ApplicationState.RUNNING, confirmingTty: /dev/tty1, error: null, cloudInitOk: true, interactive: true, echoSyslogId: subiquity_echo.3036, logSyslogId: subiquity_log.3036, eventSyslogId: subiquity_event.3036)

Revision history for this message
Sebastien Bacher (seb128) wrote :

Coudl you add your /var/log/installer/ubuntu_desktop_installer.log to the report? (or the equivalent if the name is different by flavor)

Revision history for this message
Sebastien Bacher (seb128) wrote :

The journal log might also be of use there if you could also add it?

Revision history for this message
Dennis Loose (dloose) wrote :

I had a quick look at this and suspect that the error message is misleading. It seems like it's possible that a service registration/initialization, which runs before the geo service registration/initialization, fails - causing the geo service to never get registered at all.
The most likely point of failure is the default GNOME-based implementation of the desktop service, which takes care of inhibiting the screensaver, auto-mounting media, etc. Journal logs would definitely help confirm this suspicion.

In any case it's something we should fix in ubuntu-desktop-provision.

Revision history for this message
Erich Eickmeyer (eeickmeyer) wrote :

Here's the equivalent of ubuntu-desktop-installer.log, or as we call it using the ubuntu-flavor-installer stuff, ubuntustudio-system-installer as we already had nomenclature for that in some documentation.

Revision history for this message
Erich Eickmeyer (eeickmeyer) wrote :

And here's the journal output.

Revision history for this message
Dennis Loose (dloose) wrote :

Thanks, that confirms it!

Jan 19 17:33:37 ubuntu-studio plasmashell[3430]: [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: GSettings schema org.gnome.shell.extensions.ding not installed
Jan 19 17:33:37 ubuntu-studio plasmashell[3430]: #0 GSettings._load (package:gsettings/src
...

This prevents the subsequent service initializations (including the geo service) from running, causing a crash later on.

Will try to fix it later this week or next week.
https://github.com/canonical/ubuntu-desktop-provision/issues/338

Changed in ubuntustudio-system-installer:
status: New → Confirmed
summary: - Geolocation fails?
+ DesktopService exceptions hinder subsequent service initializations
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.