I have a kind-of unit-test reproducer. What happens is that debconf database is locked and status ends up as empty string.
test_empty (test_ubi_partman.TestCalculateAutopartitioningOptions) ... debconf: DbDriver "configdb": /home/tdlk/canonical/installer/adv-crypto/tests/config.dat is locked by another process: Resource temporarily unavailable
ERROR
Which results in:
======================================================================
ERROR: test_question_dialog (test_gtkui.TestFrontend)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/tdlk/canonical/installer/adv-crypto/tests/test_gtkui.py", line 46, in test_question_dialog
ui = gtk_ui.Wizard('test-ubiquity')
File "./ubiquity/frontend/gtk_ui.py", line 208, in __init__
BaseFrontend.__init__(self, distro)
File "./ubiquity/frontend/base.py", line 113, in __init__
self.start_debconf()
File "./ubiquity/frontend/base.py", line 330, in start_debconf
self.db = self.debconf_communicator()
File "./ubiquity/frontend/base.py", line 325, in debconf_communicator
return DebconfCommunicator('ubiquity', cloexec=True)
File "./ubiquity/debconfcommunicator.py", line 37, in __init__
write=self.dccomm.stdin)
File "/usr/lib/python3/dist-packages/debconf.py", line 50, in __init__
self.setUp(title)
File "/usr/lib/python3/dist-packages/debconf.py", line 53, in setUp
self.version = self.version(2)
File "/usr/lib/python3/dist-packages/debconf.py", line 62, in <lambda>
lambda *args, **kw: self.command(command, *args, **kw))
File "/usr/lib/python3/dist-packages/debconf.py", line 83, in command
status = int(status)
ValueError: invalid literal for int() with base 10: ''
My guess is that debconf shouldn't trust 'status' to be a valid value castable to an int, instead it possibly should check if it's empty and raise appropriate error.
I have a kind-of unit-test reproducer. What happens is that debconf database is locked and status ends up as empty string.
test_empty (test_ubi_ partman. TestCalculateAu topartitioningO ptions) ... debconf: DbDriver "configdb": /home/tdlk/ canonical/ installer/ adv-crypto/ tests/config. dat is locked by another process: Resource temporarily unavailable
ERROR
Which results in:
======= ======= ======= ======= ======= ======= ======= ======= ======= ======= dialog (test_gtkui. TestFrontend) ------- ------- ------- ------- ------- ------- ------- ------- ------- tdlk/canonical/ installer/ adv-crypto/ tests/test_ gtkui.py" , line 46, in test_question_ dialog Wizard( 'test-ubiquity' ) frontend/ gtk_ui. py", line 208, in __init__ d.__init_ _(self, distro) frontend/ base.py" , line 113, in __init__ start_debconf( ) frontend/ base.py" , line 330, in start_debconf communicator( ) frontend/ base.py" , line 325, in debconf_ communicator ator('ubiquity' , cloexec=True) debconfcommunic ator.py" , line 37, in __init__ self.dccomm. stdin) python3/ dist-packages/ debconf. py", line 50, in __init__ setUp(title) python3/ dist-packages/ debconf. py", line 53, in setUp python3/ dist-packages/ debconf. py", line 62, in <lambda> command, *args, **kw)) python3/ dist-packages/ debconf. py", line 83, in command
ERROR: test_question_
-------
Traceback (most recent call last):
File "/home/
ui = gtk_ui.
File "./ubiquity/
BaseFronten
File "./ubiquity/
self.
File "./ubiquity/
self.db = self.debconf_
File "./ubiquity/
return DebconfCommunic
File "./ubiquity/
write=
File "/usr/lib/
self.
File "/usr/lib/
self.version = self.version(2)
File "/usr/lib/
lambda *args, **kw: self.command(
File "/usr/lib/
status = int(status)
ValueError: invalid literal for int() with base 10: ''
My guess is that debconf shouldn't trust 'status' to be a valid value castable to an int, instead it possibly should check if it's empty and raise appropriate error.