Hi Marcel: I found a new racy issue. If you are ok with my analysis, I can send the patches to fix it. Attachment is the log file.
Please refer bug: http://bugzilla.moblin.org/show_bug.cgi?id=9042 : Starting ConnMan with rfkill blocked may cause ConnMan crash The root cause is that: If rfill is blocked before starting of ConnMan, rfkill event handler will call device->disable() to disable wifi device. But the event may happen at flowing wifi device probe and enable stage when device->disable() is called to enable wifi device. Calling device->disable() and device->enable() at same time will cause race condition issue. We should fix the issue from two sides: 1. On the starting of ConnMan, dev/rfkill should be read to get the initial states of wireless devices. if one device is blocked, the device should not be enabled. current issue is that rfkill event is asynchronized, and may happened at/after device_enable() stage, and leads to racy issue and useless operation(even if the racy issue does not happen, the wifi device should not be enabled and then disabled). 2. device->enable() and device->disable() including asynchronized dbus operation. So they may cause racy issue, when calling device->disable() when device->enable() is not finished. I suggest to add pending flag to sequence the two operation, just like what we have done to fix dhcp racy issue.
c-o
Description: c-o
_______________________________________________ connman mailing list [email protected] http://lists.connman.net/listinfo/connman
