Crash in TFTP server booting NUC under UEFI
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MAAS |
New
|
Undecided
|
Unassigned |
Bug Description
And here's a different crash. In #1464894 I had two NICs of different speeds on the same cluster LAN. Removing the second non-active one (i.e. one not declared to MAAS although it is on the cluster controller) makes the PXE process work, but still shows this traceback:
2015-06-14 10:45:40+0100 [TFTP (UDP)] Datagram received from ('192.168.9.105', 1947): <RRQDatagram(
2015-06-14 10:45:40+0100 [-] RemoteOriginRea
2015-06-14 10:45:40+0100 [-] Starting protocol <tftp.bootstrap
2015-06-14 10:45:40+0100 [RemoteOriginRe
Traceback (most recent call last):
File "/usr/lib/
return context.
File "/usr/lib/
return self.currentCon
File "/usr/lib/
return func(*args,**kw)
File "/usr/lib/
why = selectable.doRead()
--- <exception caught here> ---
File "/usr/lib/
self.
File "/usr/lib/
datagram = TFTPDatagramFac
File "/usr/lib/
return datagram_
File "/usr/lib/
raise InvalidErrorcod
tftp.errors.
2015-06-14 10:45:40+0100 [TFTP (UDP)] Datagram received from ('192.168.9.105', 1948): <RRQDatagram(
2015-06-14 10:45:40+0100 [-] RemoteOriginRea
2015-06-14 10:45:40+0100 [-] Starting protocol <tftp.bootstrap
2015-06-14 10:45:40+0100 [RemoteOriginRe
2015-06-14 10:45:40+0100 [-] (UDP Port 50579 Closed)
2015-06-14 10:45:40+0100 [-] Stopping protocol <tftp.bootstrap
2015-06-14 10:45:40+0100 [TFTP (UDP)] Datagram received from ('192.168.9.105', 1949): <RRQDatagram(
2015-06-14 10:45:40+0100 [-] RemoteOriginRea
2015-06-14 10:45:40+0100 [-] Starting protocol <tftp.bootstrap
2015-06-14 10:45:41+0100 [RemoteOriginRe
2015-06-14 10:45:41+0100 [-] (UDP Port 60534 Closed)
2015-06-14 10:45:41+0100 [-] Stopping protocol <tftp.bootstrap
2015-06-14 10:45:41+0100 [TFTP (UDP)] Datagram received from ('192.168.9.105', 25300): <RRQDatagram(
2015-06-14 10:45:41+0100 [TFTP (UDP)] Datagram received from ('192.168.9.105', 25301): <RRQDatagram(
2015-06-14 10:45:41+0100 [TFTP (UDP)] Datagram received from ('192.168.9.105', 25302): <RRQDatagram(
2015-06-14 10:45:41+0100 [TFTP (UDP)] Datagram received from ('192.168.9.105', 25303): <RRQDatagram(
2015-06-14 10:45:41+0100 [TFTP (UDP)] Datagram received from ('192.168.9.105', 25304): <RRQDatagram(
2015-06-14 10:45:41+0100 [-] RemoteOriginRea
2015-06-14 10:45:41+0100 [-] Starting protocol <tftp.bootstrap
2015-06-14 10:45:41+0100 [RemoteOriginRe
2015-06-14 10:45:41+0100 [-] (UDP Port 55024 Closed)
2015-06-14 10:45:41+0100 [-] Stopping protocol <tftp.bootstrap
2015-06-14 10:45:41+0100 [TFTP (UDP)] Datagram received from ('192.168.9.105', 25305): <RRQDatagram(
2015-06-14 10:45:41+0100 [HTTPPageGetter
2015-06-14 10:45:41+0100 [HTTPPageGetter
2015-06-14 10:45:41+0100 [RemoteOriginRe
2015-06-14 10:45:41+0100 [-] (UDP Port 59796 Closed)
2015-06-14 10:45:41+0100 [-] Stopping protocol <tftp.bootstrap
2015-06-14 10:45:41+0100 [TFTP (UDP)] Datagram received from ('192.168.9.105', 25306): <RRQDatagram(
2015-06-14 10:45:41+0100 [-] RemoteOriginRea
2015-06-14 10:45:41+0100 [-] Starting protocol <tftp.bootstrap
2015-06-14 10:45:42+0100 [RemoteOriginRe
2015-06-14 10:45:42+0100 [-] (UDP Port 33937 Closed)
2015-06-14 10:45:42+0100 [-] Stopping protocol <tftp.bootstrap
2015-06-14 10:45:42+0100 [TFTP (UDP)] Datagram received from ('192.168.9.105', 25307): <RRQDatagram(
2015-06-14 10:45:42+0100 [-] RemoteOriginRea
2015-06-14 10:45:42+0100 [-] Starting protocol <tftp.bootstrap
2015-06-14 10:45:46+0100 [-] Timed during option negotiation process
2015-06-14 10:45:46+0100 [-] (UDP Port 57354 Closed)
2015-06-14 10:45:46+0100 [-] Stopping protocol <tftp.bootstrap
2015-06-14 10:45:50+0100 [RemoteOriginRe
2015-06-14 10:45:50+0100 [-] (UDP Port 60246 Closed)
2015-06-14 10:45:50+0100 [-] Stopping protocol <tftp.bootstrap
The error code 8 comes from the "TFTP Option Extension" RFC https:/ /tools. ietf.org/ html/rfc2347. This is an error code that isn't supported by python-tx-tftp, hence the crash. This has been fixed upstream https:/ /github. com/shylent/ python- tx-tftp/ pull/20 but the patch didn't make it into the packaged version of python-tx-tftp. We should get the fix included in the package but something we can do in the meantime is have monkey patch the tftp code (the patch seems trivial enough).