The culprit here is that there is no timeout on the serial console
read/write.

>From cloudinit/cs_utils.py
 73     def __init__(self, request):
 74         self.request = request
 75         self.raw_result = self._execute()
 76         self.result = self._marshal(self.raw_result)
 77 
 78     def _execute(self):
 79         connection = serial.Serial(SERIAL_PORT)
 80         connection.write(self.request)
 81         return connection.readline().strip('\x04\n')

Further, since we are blocking on the serial port, I have to question
whether or not this should be a default enabled source. The other serial
terminal DS is SmartOS, which is disabled by default. There are a lot of
good reasons why people attach serial consoles, but assuming that it
safe for cloud-init to read/write to a serial console seems like a great
way to break infrastructure or control planes.

IMHO, I think that the fix should be twofold 1) disable this ds by
default; 2) enforce a reasonable time out. I've attached a rough patch
of what I am thinking here.

We should get CloudSigma to clarify what the timeout should be before we
enforce the timeout.

That said, I think that an SRU that disables the DS is warranted.

** Patch added: "Make CloudSigma datasource timeout on serial console"
   
https://bugs.launchpad.net/cloud-init/+bug/1316475/+attachment/4120172/+files/lp1316475.patch

** Branch linked: lp:~utlemming/cloud-init/cloudsigma_ds.1316475

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1316475

Title:
  trusty hang on first boot post deploy

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/1316475/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to