Comment 3 for bug 885909

Revision history for this message
Owen Duffy (owwn) wrote :

In summary, the root cause of the problem was a line in /etc/network/interfaces which tried to run a non existent command (up flush-mail).

ifup silently fails in that case, and although it has done almost everything to start the interface, and the interface is fully functional, it does not create the semaphore used by ifdown to signal completion or emit the relevant upstart events. ifconfig reports normal operation of the interface, ifdown says the interface does not exist and ends.

upstart's network-interfaces job silently ends when the ifup fails. Why are events for the lo interface issued from the network-interfaces job directly, whereas for others, they are emitted from the subsidiary ifup command's post script? This smacks of half baked patching on the fly.

The whole design philosophy of scripts that do not provide useful exception reporting, of silent failure contributes to the unreliability witnessed by the large number of bug reports pertaining to startup functions migrated to upstart.

The time for robust logging to be included in upstart was before migration, not afterwards. The greatest benefit in adequate logging would be during migration in quickly identifying and rectifying problems.

I have solved my problem by removing the "up mail-flush" command, but the design philosophy / reliability issues are embedded in upstart / linux.

Owen