In the function g_mirror_add_disk, the event "G_MIRROR_DISK_STATE_NEW" is sent before the call to g_mirror_update_metadata. However, if the event finishes before the call to g_mirror_update_metadata, with the result that the disk is destroy, the "disk" pointer is now invalid and may cause a kernel crash. In my case, the disk was invalid because its syncid was not updated ("Component ada1 (device gm0) broken, skipping." in function g_mirror_update_device) The solution may be to call g_mirror_update_metadata before the launch of the event G_MIRROR_DISK_STATE_NEW.