Hm, when repeating with a xenstored that prints additional trace messages about domain->interface values, I now got a case where the SIGBUS seems to have happened while the interface pointer looks valid.
(gdb) where #0 domain_can_read (conn=conn@entry=0x8eb890) at xenstored_domain.c:261 #1 0x0000000000402718 in main (argc=<optimized out>, argv=<optimized out>) at xenstored_core.c:2145 (gdb) p *((struct connection *) 0x8eb890) $1 = {list = {next = 0x8eca60, prev = 0x8ecdf0}, fd = -1, pollfd_idx = -1, id = 1, can_write = true, in = 0x8ef290, out_list = {next = 0x8eb8b8, prev = 0x8eb8b8}, transaction = 0x0, transaction_list = {next = 0x8eb8d0, prev = 0x8eb8d0}, next_transaction_id = 10, transaction_started = 0, domain = 0x8eced0, target = 0x0, watches = {next = 0x8edd30, prev = 0x8ee9a0}, write = 0x406140 <writechn>, read = 0x406240 <readchn>} (gdb) p *((struct domain *) 0x8eced0) $2 = {list = {next = 0x8e81b0, prev = 0x6145a0 <domains>}, domid = 1, port = 48, remote_port = 1, mfn = 2173329, path = 0x8ec460 "/local/domain/1", interface = 0x7fc8acb0f000, conn = 0x8eb890, shutdown = 0, nbentry = 44, nbwatch = 9}
Hm, when repeating with a xenstored that prints additional trace messages about domain->interface values, I now got a case where the SIGBUS seems to have happened while the interface pointer looks valid.
(gdb) where entry=0x8eb890) at xenstored_ domain. c:261 core.c: 2145
#0 domain_can_read (conn=conn@
#1 0x0000000000402718 in main (argc=<optimized out>, argv=<optimized out>)
at xenstored_
(gdb) p *((struct connection *) 0x8eb890)
$1 = {list = {next = 0x8eca60, prev = 0x8ecdf0}, fd = -1, pollfd_idx = -1,
id = 1, can_write = true, in = 0x8ef290, out_list = {next = 0x8eb8b8,
prev = 0x8eb8b8}, transaction = 0x0, transaction_list = {next = 0x8eb8d0,
prev = 0x8eb8d0}, next_transaction_id = 10, transaction_started = 0,
domain = 0x8eced0, target = 0x0, watches = {next = 0x8edd30,
prev = 0x8ee9a0}, write = 0x406140 <writechn>, read = 0x406240 <readchn>}
(gdb) p *((struct domain *) 0x8eced0)
$2 = {list = {next = 0x8e81b0, prev = 0x6145a0 <domains>}, domid = 1,
port = 48, remote_port = 1, mfn = 2173329,
path = 0x8ec460 "/local/domain/1", interface = 0x7fc8acb0f000,
conn = 0x8eb890, shutdown = 0, nbentry = 44, nbwatch = 9}