The problem is that node[node_id].cpu_list_p is wrong.
When you look at the array again it has two real entries and nothing more:

(gdb) p node[0]
$20 = {node_id = 0, MBs_total = 65266, MBs_free = 1510, CPUs_total = 2000, 
CPUs_free = 1144, magnitude = 1727440, distance = 0x304a3a41850 
"\n(\032\n\244~", cpu_list_p = 0x304a3a41810}
(gdb) p node[1]
$21 = {node_id = 8, MBs_total = 65337, MBs_free = 1734, CPUs_total = 2000, 
CPUs_free = 1049, magnitude = 1818966, distance = 0x304a3a418b0 
"(\n\032\n\244~", cpu_list_p = 0x304a3a41870}
(gdb) p node[2]
$22 = {node_id = 1820693536, MBs_total = 33, MBs_free = 3318460192688, 
CPUs_total = 24, CPUs_free = 1839495593, magnitude = 33, 
  distance = 0x1111111111111111 <error: Cannot access memory at address 
0x1111111111111111>, cpu_list_p = 0x1111111111111111}
(gdb) p node[3]
$23 = {node_id = 286331153, MBs_total = 33, MBs_free = 3318460192752, 
CPUs_total = 8, CPUs_free = 1842299472, magnitude = 33, 
  distance = 0x101 <error: Cannot access memory at address 0x101>, cpu_list_p = 
0x7ea40a1a0e08 <main_arena+96>}
(gdb) p node[4]
$24 = {node_id = 1867659328, MBs_total = 33, MBs_free = 3318460192816, 
CPUs_total = 24, CPUs_free = 1882184320, magnitude = 33, 
  distance = 0x1111111111111111 <error: Cannot access memory at address 
0x1111111111111111>, cpu_list_p = 0x1111}
(gdb) p node[5]
$25 = {node_id = 0, MBs_total = 33, MBs_free = 139243009222666, CPUs_total = 
139243009216008, CPUs_free = 1898775676, magnitude = 33, distance = 
0x304a3a41890 "", cpu_list_p = 0x18}
(gdb) p node[6]
$26 = {node_id = 3689421645304561696, MBs_total = 33, MBs_free = 0, CPUs_total 
= 1229782938247299072, CPUs_free = 286331153, magnitude = 33, 
  distance = 0x7ea40a1a0a28 <_IO_wide_data_2+264> "", cpu_list_p = 
0x7ea40a1a0e08 <main_arena+96>}
(gdb) p node[7]
$27 = {node_id = 3546150882158837792, MBs_total = 33, MBs_free = 257, 
CPUs_total = 267, CPUs_free = 288230377091498008, magnitude = 33, distance = 
0x304a3a41910 "\001\001", 
  cpu_list_p = 0x8}
(gdb) p node[8]
$28 = {node_id = 303211223003168792, MBs_total = 33, MBs_free = 257, CPUs_total 
= 265, CPUs_free = 288230377024389144, magnitude = 33, 
  distance = 0x2f69 <error: Cannot access memory at address 0x2f69>, cpu_list_p 
= 0x0}


We essentially do an out of bounds to the array at index [8] where cpu_list_p = 
0x0 and that triggers the SEGV

We actually do NOT want node[node_id]

Instead we'd need to iterate the node array entries, and pick that entry
which has nodes[x].node_id == node_id.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1832915

Title:
  numad crashes while running kvm guest

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-power-systems/+bug/1832915/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to