[Issue 23978] [REG 2.103.0] ICE: Segmentation fault in dmd.root.aav.dmd_aaGetRvalue at src/dmd/root/aav.d:127
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Thu Jun 8 13:30:11 UTC 2023
https://issues.dlang.org/show_bug.cgi?id=23978
--- Comment #9 from Iain Buclaw <ibuclaw at gdcproject.org> ---
The printf dumps really don't give any hint as to what went wrong, but there is
at least a common pattern I see for each time it crashes.
---------------------
Mem.xrealloc((nil), 624) = 0x7f3686b63000 <-- !!! This address ends up as aa.b
...
...
Mem.xrealloc(0x7f3686b63000, 832) = 0x7f3686b8d400 <-- !!! marked free
...
...
----------------------------------------------------------
from: dmd_aaRehash++
this = 0x7f3686b95a20
nodes = 9
b_length = 4
[
b[0] 0x7f3686b95a38 = 0x7f3686b95a58 {
next = 0x7f3686b98c20
key = 0x7f3687f32fc0
value = 0x7f3687f2c500
}
b[1] 0x7f3686b95a40 = 0x7f3686b98bc0 {
next = (nil)
key = 0x7f3687f36060
value = 0x7f3687f37000
}
b[2] 0x7f3686b95a48 = 0x7f3686b98b80 {
next = 0x7f3686b98be0
key = 0x7f3687f32fe0
value = 0x7f3687f2c600
}
b[3] 0x7f3686b95a50 = 0x7f3686b98ba0 {
next = 0x7f3686b98c00
key = 0x7f3687f36000
value = 0x7f3687f2c700
}
]
Mem.xmalloc(768) = 0x7f3686b63000 <-- !!! rehash wants memory, reuse old
address
----------------------------------------------------------
from: dmd_aaRehash--
this = 0x7f3686b95a20
nodes = 9
b_length = 32
[
b[0] 0x7f3686b63000 = (nil)
b[1] 0x7f3686b63008 = (nil)
b[2] 0x7f3686b63010 = (nil)
b[3] 0x7f3686b63018 = (nil)
b[4] 0x7f3686b63020 = (nil)
b[5] 0x7f3686b63028 = (nil)
b[6] 0x7f3686b63030 = (nil)
b[7] 0x7f3686b63038 = (nil) <-- !!! This index is null
b[8] 0x7f3686b63040 = (nil)
b[9] 0x7f3686b63048 = (nil)
b[10] 0x7f3686b63050 = (nil)
b[11] 0x7f3686b63058 = (nil)
b[12] 0x7f3686b63060 = (nil)
b[13] 0x7f3686b63068 = (nil)
b[14] 0x7f3686b63070 = (nil)
b[15] 0x7f3686b63078 = (nil)
b[16] 0x7f3686b63080 = (nil)
b[17] 0x7f3686b63088 = (nil)
b[18] 0x7f3686b63090 = (nil)
b[19] 0x7f3686b63098 = 0x7f3686b98ba0 {
next = (nil)
key = 0x7f3687f36000
value = 0x7f3687f2c700
}
b[20] 0x7f3686b630a0 = 0x7f3686b95a58 {
next = (nil)
key = 0x7f3687f32fc0
value = 0x7f3687f2c500
}
b[21] 0x7f3686b630a8 = 0x7f3686b98bc0 {
next = (nil)
key = 0x7f3687f36060
value = 0x7f3687f37000
}
b[22] 0x7f3686b630b0 = 0x7f3686b98b80 {
next = (nil)
key = 0x7f3687f32fe0
value = 0x7f3687f2c600
}
b[23] 0x7f3686b630b8 = 0x7f3686b98c00 {
next = (nil)
key = 0x7f3687f36040
value = 0x7f3687f37330
}
b[24] 0x7f3686b630c0 = 0x7f3686b98c20 {
next = (nil)
key = 0x7f3687f360a0
value = 0x7f3687f2c800
}
b[25] 0x7f3686b630c8 = (nil)
b[26] 0x7f3686b630d0 = 0x7f3686b98be0 {
next = (nil)
key = 0x7f3687f36080
value = 0x7f3687f34200
}
b[27] 0x7f3686b630d8 = (nil)
b[28] 0x7f3686b630e0 = 0x7f3686b98c60 {
next = (nil)
key = 0x7f3687f360e0
value = (nil)
}
b[29] 0x7f3686b630e8 = (nil)
b[30] 0x7f3686b630f0 = 0x7f3686b98c40 {
next = (nil)
key = 0x7f3687f360c0
value = 0x7f3687f37660
}
b[31] 0x7f3686b630f8 = (nil)
]
...
...
Mem.xmalloc(80) = 0x7f3686ba2b40
----------------------------------------------------------
from: dmd_aaGet
this = 0x7f3686ba2b40
nodes = 0
----------------------------------------------------------
from: dmd_aaGet==
this = 0x7f3686ba2b40
nodes = 1
b_length = 4
[
b[0] 0x7f3686ba2b58 = (nil)
b[1] 0x7f3686ba2b60 = 0x7f3686ba2b78 {
next = (nil)
key = 0x7f3687f285e0
value = (nil)
}
b[2] 0x7f3686ba2b68 = (nil)
b[3] 0x7f3686ba2b70 = (nil)
]
----------------------------------------------------------
from: dmd_aaGet
this = 0x7f3686ba2b40
nodes = 1
b_length = 4
[
b[0] 0x7f3686ba2b58 = (nil)
b[1] 0x7f3686ba2b60 = 0x7f3686ba2b78 {
next = (nil)
key = 0x7f3687f285e0
value = 0x7f3686b9fb00 <-- !!! This is what corrupts aa.b[7]
}
b[2] 0x7f3686ba2b68 = (nil)
b[3] 0x7f3686ba2b70 = (nil)
]
...
...
----------------------------------------------------------
from: dmd_aaGetRvalue
this = 0x7f3686ba2b40 <-- !!! Last access of this AA
nodes = 2
b_length = 4
[
b[0] 0x7f3686ba2b58 = (nil)
b[1] 0x7f3686ba2b60 = 0x7f3686ba2b78 {
next = (nil)
key = 0x7f3687f285e0
value = 0x7f3686b9fb00
}
b[2] 0x7f3686ba2b68 = (nil)
b[3] 0x7f3686ba2b70 = 0x7f3686b9a220 {
next = (nil)
key = 0x7f3687f2ade0
value = 0x7f3686b9fc00
}
]
----------------------------------------------------------
from: dmd_aaGetRvalue
this = 0x7f3686b95a20
nodes = 9
b_length = 32
[
b[0] 0x7f3686b63000 = (nil)
b[1] 0x7f3686b63008 = (nil)
b[2] 0x7f3686b63010 = (nil)
b[3] 0x7f3686b63018 = (nil)
b[4] 0x7f3686b63020 = (nil)
b[5] 0x7f3686b63028 = (nil)
b[6] 0x7f3686b63030 = (nil)
b[7] 0x7f3686b63038 = (nil) <-- !!! Still null
b[8] 0x7f3686b63040 = (nil)
b[9] 0x7f3686b63048 = (nil)
b[10] 0x7f3686b63050 = (nil)
b[11] 0x7f3686b63058 = (nil)
b[12] 0x7f3686b63060 = (nil)
b[13] 0x7f3686b63068 = (nil)
b[14] 0x7f3686b63070 = (nil)
b[15] 0x7f3686b63078 = (nil)
b[16] 0x7f3686b63080 = (nil)
b[17] 0x7f3686b63088 = (nil)
b[18] 0x7f3686b63090 = (nil)
b[19] 0x7f3686b63098 = 0x7f3686b98ba0 {
next = (nil)
key = 0x7f3687f36000
value = 0x7f3687f2c700
}
b[20] 0x7f3686b630a0 = 0x7f3686b95a58 {
next = (nil)
key = 0x7f3687f32fc0
value = 0x7f3687f2c500
}
b[21] 0x7f3686b630a8 = 0x7f3686b98bc0 {
next = (nil)
key = 0x7f3687f36060
value = 0x7f3687f37000
}
b[22] 0x7f3686b630b0 = 0x7f3686b98b80 {
next = (nil)
key = 0x7f3687f32fe0
value = 0x7f3687f2c600
}
b[23] 0x7f3686b630b8 = 0x7f3686b98c00 {
next = (nil)
key = 0x7f3687f36040
value = 0x7f3687f37330
}
b[24] 0x7f3686b630c0 = 0x7f3686b98c20 {
next = (nil)
key = 0x7f3687f360a0
value = 0x7f3687f2c800
}
b[25] 0x7f3686b630c8 = (nil)
b[26] 0x7f3686b630d0 = 0x7f3686b98be0 {
next = (nil)
key = 0x7f3687f36080
value = 0x7f3687f34200
}
b[27] 0x7f3686b630d8 = (nil)
b[28] 0x7f3686b630e0 = 0x7f3686b98c60 {
next = (nil)
key = 0x7f3687f360e0
value = 0x7f3687f37990
}
b[29] 0x7f3686b630e8 = (nil)
b[30] 0x7f3686b630f0 = 0x7f3686b98c40 {
next = (nil)
key = 0x7f3687f360c0
value = 0x7f3687f37660
}
b[31] 0x7f3686b630f8 = (nil)
]
...
...
----------------------------------------------------------
from: dmd_aaGetRvalue
this = 0x7f3686b95a20
nodes = 9
b_length = 32
[
b[0] 0x7f3686b63000 = (nil)
b[1] 0x7f3686b63008 = (nil)
b[2] 0x7f3686b63010 = (nil)
b[3] 0x7f3686b63018 = (nil)
b[4] 0x7f3686b63020 = (nil)
b[5] 0x7f3686b63028 = (nil)
b[6] 0x7f3686b63030 = (nil)
b[7] 0x7f3686b63038 = 0x7f3686b9fb00 { <-- !!! Now has value?!?!
next = 0x559ae6f9b510
key = 0x7f3687f285e0
value = 0x7f3686b8c330
}
b[8] 0x7f3686b63040 = (nil)
b[9] 0x7f3686b63048 = (nil)
b[10] 0x7f3686b63050 = (nil)
b[11] 0x7f3686b63058 = (nil)
b[12] 0x7f3686b63060 = (nil)
b[13] 0x7f3686b63068 = (nil)
b[14] 0x7f3686b63070 = (nil)
b[15] 0x7f3686b63078 = (nil)
b[16] 0x7f3686b63080 = (nil)
b[17] 0x7f3686b63088 = (nil)
b[18] 0x7f3686b63090 = (nil)
b[19] 0x7f3686b63098 = 0x7f3686b98ba0 {
next = (nil)
key = 0x7f3687f36000
value = 0x7f3687f2c700
}
b[20] 0x7f3686b630a0 = 0x7f3686b95a58 {
next = (nil)
key = 0x7f3687f32fc0
value = 0x7f3687f2c500
}
b[21] 0x7f3686b630a8 = 0x7f3686b98bc0 {
next = (nil)
key = 0x7f3687f36060
value = 0x7f3687f37000
}
b[22] 0x7f3686b630b0 = 0x7f3686b98b80 {
next = (nil)
key = 0x7f3687f32fe0
value = 0x7f3687f2c600
}
b[23] 0x7f3686b630b8 = 0x7f3686b98c00 {
next = (nil)
key = 0x7f3687f36040
value = 0x7f3687f37330
}
b[24] 0x7f3686b630c0 = 0x7f3686b98c20 {
next = (nil)
key = 0x7f3687f360a0
value = 0x7f3687f2c800
}
b[25] 0x7f3686b630c8 = (nil)
b[26] 0x7f3686b630d0 = 0x7f3686b98be0 {
next = (nil)
key = 0x7f3687f36080
value = 0x7f3687f34200
}
b[27] 0x7f3686b630d8 = (nil)
b[28] 0x7f3686b630e0 = 0x7f3686b98c60 {
next = (nil)
key = 0x7f3687f360e0
value = 0x7f3687f37990
}
b[29] 0x7f3686b630e8 = (nil)
b[30] 0x7f3686b630f0 = 0x7f3686b98c40 {
next = (nil)
key = 0x7f3687f360c0
value = 0x7f3687f37660
}
b[31] 0x7f3686b630f8 = (nil)
]
Segmentation fault (core dumped)
fail
--
More information about the Digitalmars-d-bugs
mailing list