Comment 11 for bug 1820604

Revision history for this message
Dimitri John Ledkov (xnox) wrote : Re: curtin fails to find itself in subiquity snap

Looks like there are ordering issues wrt. the default console to use hvc0 vs tty0, As I see lots of errors like this one:
Mar 19 14:44:32 ubuntu-server agetty[1923]: hvc0: can't exec /snap/bin/subiquity: No such file or directory

I see squashfs errors:
$ journalctl --file ./system.journal | grep SQUASHFS
Mar 19 14:44:14 ubuntu-server kernel: SQUASHFS error: squashfs_read_data failed to read block 0x8180e1e300333a37
Mar 19 14:44:14 ubuntu-server kernel: SQUASHFS error: Unable to read metadata cache entry [8180e1e300333a37]
Mar 19 14:44:16 ubuntu-server kernel: SQUASHFS error: squashfs_read_data failed to read block 0x8180e1e38a089b3a
Mar 19 14:44:16 ubuntu-server kernel: SQUASHFS error: Unable to read metadata cache entry [8180e1e38a089b3a]
Mar 19 14:45:03 ubuntu-server kernel: SQUASHFS error: Unable to read metadata cache entry [8180e1e38a089b3a]

At least in journal, curtin does fail:
Mar 19 14:46:38 ubuntu-server curtin_log.3058[3496]: Traceback (most recent call last):
Mar 19 14:46:38 ubuntu-server curtin_log.3058[3496]: File "/snap/subiquity/666/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
Mar 19 14:46:38 ubuntu-server curtin_log.3058[3496]: "__main__", mod_spec)
Mar 19 14:46:38 ubuntu-server curtin_log.3058[3496]: File "/snap/subiquity/666/usr/lib/python3.6/runpy.py", line 85, in _run_code
Mar 19 14:46:38 ubuntu-server curtin_log.3058[3496]: exec(code, run_globals)
Mar 19 14:46:38 ubuntu-server curtin_log.3058[3496]: File "/snap/subiquity/666/lib/python3.6/site-packages/curtin/__main__.py", line 4, in <module>
Mar 19 14:46:38 ubuntu-server curtin_log.3058[3496]: sys.exit(main())
Mar 19 14:46:38 ubuntu-server curtin_log.3058[3496]: File "/snap/subiquity/666/lib/python3.6/site-packages/curtin/commands/main.py", line 177, in main
Mar 19 14:46:38 ubuntu-server curtin_log.3058[3496]: raise OSError("Unable to find helpers or 'curtin' exe to add to path")
Mar 19 14:46:38 ubuntu-server curtin_log.3058[3496]: OSError: Unable to find helpers or 'curtin' exe to add to path

Funily enough the above is in the journal, and not in the subiquity log.

Subiquity installer log has:
2019-03-19 14:46:58,841 subiquity.controllers.snaplist:103 loading list of snaps failed
Traceback (most recent call last):
  File "/snap/subiquity/666/lib/python3.6/site-packages/subiquity/controllers/snaplist.py", line 101, in _fetched_list
    response.raise_for_status()
  File "/snap/subiquity/666/usr/lib/python3/dist-packages/requests/models.py", line 935, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: http+unix://%2Frun%2Fsnapd.socket/v2/find?section=server

There is also this nice piece of traceback

2019-03-19 14:47:00,750 subiquitycore.core:430 Exception in controller.run():
Traceback (most recent call last):
  File "/snap/subiquity/666/usr/lib/python3/dist-packages/urwid/main_loop.py", line 384, in _run
    self.event_loop.run()
  File "/snap/subiquity/666/usr/lib/python3/dist-packages/urwid/main_loop.py", line 788, in run
    self._loop()
  File "/snap/subiquity/666/usr/lib/python3/dist-packages/urwid/main_loop.py", line 825, in _loop
    self._watch_files[fd]()
  File "/snap/subiquity/666/usr/lib/python3/dist-packages/urwid/raw_display.py", line 404, in <lambda>
    event_loop, callback, self.get_available_raw_input())
  File "/snap/subiquity/666/usr/lib/python3/dist-packages/urwid/raw_display.py", line 436, in get_available_raw_input
    codes = self._get_gpm_codes() + self._get_keyboard_codes()
  File "/snap/subiquity/666/usr/lib/python3/dist-packages/urwid/raw_display.py", line 510, in _get_keyboard_codes
    code = self._getch_nodelay()
  File "/snap/subiquity/666/usr/lib/python3/dist-packages/urwid/raw_display.py", line 644, in _getch_nodelay
    return self._getch(0)
  File "/snap/subiquity/666/usr/lib/python3/dist-packages/urwid/raw_display.py", line 554, in _getch
    return ord(os.read(self._term_input_file.fileno(), 1))
TypeError: ord() expected a character, but string of length 0 found

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/snap/subiquity/666/lib/python3.6/site-packages/subiquitycore/core.py", line 428, in run
    self.common['loop'].run()
  File "/snap/subiquity/666/usr/lib/python3/dist-packages/urwid/main_loop.py", line 286, in run
    self._run()
  File "/snap/subiquity/666/usr/lib/python3/dist-packages/urwid/main_loop.py", line 386, in _run
    self.screen.stop() # clean up screen control
  File "/snap/subiquity/666/usr/lib/python3/dist-packages/urwid/display_common.py", line 760, in stop
    self._stop()
  File "/snap/subiquity/666/usr/lib/python3/dist-packages/urwid/raw_display.py", line 265, in _stop
    self.flush()
  File "/snap/subiquity/666/usr/lib/python3/dist-packages/urwid/raw_display.py", line 287, in flush
    self._term_output_file.flush()
OSError: [Errno 5] Input/output error

I will try to monkey patch curtin in. But somewhere curtin is loosing its brain.