I have observed 3 scenarios after I reboot the host with 2 guests (which are supposed to autostart after boot/reboot of the host):
1. Default network is created but I can not ping guests. Gests don't have assigned IP address or they both have IP address 192.168.122.100.
2. Default network is not created.
3. Default netork is properly created and everything works fine.
In each case guests are started and they work properly. Cases 1. and 2. happen a lot more often then case 3.

My solutions:
- When I restart libvirt-bin then everything is fine.
- When I set 'sleep 40' in 'pre-start' section of /etc/init/libvirt-bin.conf and modify 'start on' section in the following way:

start on (runlevel [2345] and net-device-up IFACE=br0)

then everything works fine.


However, none of the above solutions indeed solves the problem. Please, let me know if there is solution to this problem or what are your suggestions regarding this issue.

****
HOST$ uname -a
Linux ras 2.6.32-32-server #62-Ubuntu SMP Wed Apr 20 22:07:43 UTC 2011 x86_64 GNU/Linux

GUEST1 and GUEST2
$ uname -a
Linux server1-desktop 2.6.32-32-generic #62-Ubuntu SMP Wed Apr 20 21:54:21 UTC 2011 i686 GNU/Linux

HOST$ libvirtd --version
libvirtd (libvirt) 0.7.5

My idea was that some kernel modules sometimes are loaded before libvirt-bin starts, and sometimes libvirt-bin starts earlier, or in the middle of loading of these modules, that is why 3 scenarios can be observed.
That is why I have added:
 cp /proc/modules /home/wsadmin2/modules1
 cp /proc/modules /home/wsadmin2/modules2
to 'pre-start' and 'post-start' parts respectively of /etc/init/libvirt-bin.conf.

Of course, beween execution of
- pre-start part
- exec /usr/sbin/libvirtd -d
- post-start part
other kernel modules can be loaded, so we can not be sure which additional modules in file 'modules2' were indeed loaded before libvirtd was actually started.

Here are my observations:
Scenatio 1.
33 (fixed) modules were logged - call them BASE MODULES.

Scenatio 2.
Beside BASE MODULES + the following modules were loaded:

> iptable_filter 1841 0 - Live 0xffffffffa007c000
> ip_tables 18201 1 iptable_filter, Live 0xffffffffa0172000
> x_tables 22361 1 ip_tables, Live 0xffffffffa0164000

Scenatio 3.
Beside BASE MODULES + the following modules were loaded:

$ diff modules1 modules2
1c1,6
< iptable_filter 1841 0 - Live 0xffffffffa008b000
---
> xt_state 1490 14 - Live 0xffffffffa01ab000
> xt_tcpudp 2667 12 - Live 0xffffffffa01a5000
> nf_conntrack_ipv4 12742 14 - Live 0xffffffffa019b000
> nf_conntrack 73326 2 xt_state,nf_conntrack_ipv4, Live 0xffffffffa017d000
> nf_defrag_ipv4 1481 1 nf_conntrack_ipv4, Live 0xffffffffa0177000
> iptable_filter 1841 1 - Live 0xffffffffa008b000
3c8
< x_tables 22361 1 ip_tables, Live 0xffffffffa0162000
---
> x_tables 22361 3 xt_state,xt_tcpudp,ip_tables, Live 0xffffffffa0162000

Other observations:
Scenatio 1.
No errors in libvirtd.log
Scenario 2.

10:06:06.980: error : networkAddIptablesRules:750 : failed to add iptables rule to allow DHCP requests from 'virbr0': Invalid argument
(...)
10:06:08.630: error : qemudNetworkIfaceConnect:1445 : Failed to add tap interface to bridge 'virbr0': No such device
10:06:08.630: error : qemuAutostartDomain:584 : Failed to autostart VM 'cluster_server1': Failed to add tap interface to bridge 'virbr0': No such device

10:06:08.921: info : qemudDispatchSignalEvent:390 : Received unexpected signal 17
10:06:08.927: debug : virExecWithHook:617 : LC_ALL=C /usr/bin/kvm -help
10:06:08.938: info : qemudDispatchSignalEvent:390 : Received unexpected signal 17
10:06:09.000: error : qemudNetworkIfaceConnect:1445 : Failed to add tap interface to bridge 'virbr0': No such device
10:06:09.000: error : qemuAutostartDomain:584 : Failed to autostart VM 'cluster_server2': Failed to add tap interface to bridge 'virbr0': No such device
(...)
Scenatio 3.
No errors in libvirtd.log


I didn't see any valuable logs in /var/log/boot.log, /var/log/messages, /var/log/syslog. Please let me know if you want to see them anyway or have any suggestions right away.