)]}'
{
  "commit": "3240a7e7340c89fcfe386e02bf1db1f0bd9541cb",
  "tree": "668bc06caaf9bbac44dcfeb9d6d59abf146dd5d4",
  "parents": [
    "333d407393541c078d7c539f3c3907728c5556f7"
  ],
  "author": {
    "name": "Tom de Vries",
    "email": "tdevries@suse.de",
    "time": "Fri Jul 15 19:17:47 2022 +0200"
  },
  "committer": {
    "name": "Tom de Vries",
    "email": "tdevries@suse.de",
    "time": "Thu Jul 21 15:06:40 2022 +0200"
  },
  "message": "[gdb/symtab] Fix data race in lookup_die_type\n\nData race between:\n...\n  Write of size 8 at 0x7b8009b483f8 by main thread:\n    #0 read_tag_pointer_type gdb/dwarf2/read.c:16171 (gdb+0x8580b3)\n    #1 read_type_die_1 gdb/dwarf2/read.c:21508 (gdb+0x869b69)\n    #2 read_type_die gdb/dwarf2/read.c:21474 (gdb+0x869a53)\n    #3 lookup_die_type gdb/dwarf2/read.c:21446 (gdb+0x8699ad)\n    #4 die_type gdb/dwarf2/read.c:21300 (gdb+0x869286)\n    #5 dwarf2_add_field gdb/dwarf2/read.c:13535 (gdb+0x84aabd)\n    #6 handle_struct_member_die gdb/dwarf2/read.c:14803 (gdb+0x851ad2)\n    #7 process_structure_scope gdb/dwarf2/read.c:14865 (gdb+0x851e70)\n    #8 process_die gdb/dwarf2/read.c:8649 (gdb+0x83a048)\n    #9 read_file_scope gdb/dwarf2/read.c:9616 (gdb+0x83cb81)\n    #10 process_die gdb/dwarf2/read.c:8620 (gdb+0x839f43)\n    #11 process_full_comp_unit gdb/dwarf2/read.c:8383 (gdb+0x839509)\n    #12 process_queue_item gdb/dwarf2/read.c:7592 (gdb+0x8359f5)\n...\nand:\n...\n  Previous read of size 8 at 0x7b8009b483f8 by thread T3:\n    #0 dwarf2_cu::addr_type() const gdb/dwarf2/cu.c:99 (gdb+0x7b8d42)\n    #1 set_die_type gdb/dwarf2/read.c:23850 (gdb+0x871e4e)\n    #2 read_subroutine_type gdb/dwarf2/read.c:16539 (gdb+0x8591c8)\n    #3 read_type_die_1 gdb/dwarf2/read.c:21499 (gdb+0x869b15)\n    #4 read_type_die gdb/dwarf2/read.c:21474 (gdb+0x869a53)\n    #5 lookup_die_type gdb/dwarf2/read.c:21446 (gdb+0x8699ad)\n    #6 die_type gdb/dwarf2/read.c:21300 (gdb+0x869286)\n    #7 read_tag_pointer_type gdb/dwarf2/read.c:16114 (gdb+0x857d91)\n    #8 read_type_die_1 gdb/dwarf2/read.c:21508 (gdb+0x869b69)\n    #9 read_type_die gdb/dwarf2/read.c:21474 (gdb+0x869a53)\n    #10 lookup_die_type gdb/dwarf2/read.c:21446 (gdb+0x8699ad)\n    #11 die_type gdb/dwarf2/read.c:21300 (gdb+0x869286)\n    #12 new_symbol gdb/dwarf2/read.c:20742 (gdb+0x8671fe)\n    #13 read_variable gdb/dwarf2/read.c:12623 (gdb+0x848823)\n    #14 process_die gdb/dwarf2/read.c:8716 (gdb+0x83a28c)\n    #15 read_file_scope gdb/dwarf2/read.c:9616 (gdb+0x83cb81)\n    #16 process_die gdb/dwarf2/read.c:8620 (gdb+0x839f43)\n    #17 process_full_comp_unit gdb/dwarf2/read.c:8383 (gdb+0x839509)\n    #18 process_queue_item gdb/dwarf2/read.c:7592 (gdb+0x8359f5)\n...\n\nFix this by adding a lock in lookup_die_type.\n\nAlso in read_type_die and set_die_type.\n\nHmm, we already use another lock in set_die_type.  This needs more work.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d0452ab8ba29d2cf78b1c9cfeb46a6f7dbc2b72b",
      "old_mode": 33188,
      "old_path": "gdb/dwarf2/read.c",
      "new_id": "c0d65218172543341b8541b9e31fad310697ecb4",
      "new_mode": 33188,
      "new_path": "gdb/dwarf2/read.c"
    }
  ]
}
