Skip to content

Commit e552a53

Browse files
committed
ownership-lab H-23A population kill 1: a nested write is excluded fail closed (the core refuses to hoist a branch-scoped acquire when a sibling path exits; the post-merge reference failed the whole file with OWN030 on NpgsqlRest); hit-log shapes assignment / assignment_nested / assignment_loop; gate re-run ON_N1, OFF byte-identity (fixture, 52 consumer units), synthetic branch probes
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Am9eQwzNfbugH72eVKetC2
1 parent af92d7d commit e552a53

11 files changed

Lines changed: 1661 additions & 7 deletions
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"ownir_version": 0, "module": "Extracted", "components": [{"name": "ConnectionHelper", "file": "../../../tmp/claude-0/-home-user/8a9da608-aa27-5449-8306-1fae9426f9b9/scratchpad/lab/sc/e3h23/NpgsqlRest__NpgsqlRest/NpgsqlRest/ConnectionHelper.cs", "subscriptions": [{"event": "connection.Notice", "handler": "(sender, args) =>\n {\n NpgsqlRestLogger.LogConnectionNotice(args.Notice, loggingMode);\n }", "line": 75, "column": 13, "released": false, "resource": "subscription", "source": "injected", "lambda": true}]}, {"name": "NpgsqlRestEndpoint", "file": "../../../tmp/claude-0/-home-user/8a9da608-aa27-5449-8306-1fae9426f9b9/scratchpad/lab/sc/e3h23/NpgsqlRest__NpgsqlRest/NpgsqlRest/NpgsqlRestEndpoint.cs", "subscriptions": [{"event": "connection.Notice", "handler": "noticeHandler", "line": 205, "column": 17, "released": false, "resource": "subscription", "source": "injected", "lambda": false}]}], "services": [], "stats": {"methods_with_local": 42, "methods_flow_analysed": 31, "methods_skipped_unmodelled": 11}, "functions": [{"name": "T.depth1_then_use_after", "file": "/tmp/x.cs", "line": 1, "body": [{"op": "if", "line": 1, "then": [{"op": "acquire", "var": "x", "line": 2, "column": 1, "kind": "disposable"}], "else": [{"op": "return", "var": null, "line": 3}]}, {"op": "use", "var": "x", "line": 4}, {"op": "return", "var": "x", "line": 5}]}]}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"ownir_version": 0, "module": "Extracted", "components": [{"name": "ConnectionHelper", "file": "../../../tmp/claude-0/-home-user/8a9da608-aa27-5449-8306-1fae9426f9b9/scratchpad/lab/sc/e3h23/NpgsqlRest__NpgsqlRest/NpgsqlRest/ConnectionHelper.cs", "subscriptions": [{"event": "connection.Notice", "handler": "(sender, args) =>\n {\n NpgsqlRestLogger.LogConnectionNotice(args.Notice, loggingMode);\n }", "line": 75, "column": 13, "released": false, "resource": "subscription", "source": "injected", "lambda": true}]}, {"name": "NpgsqlRestEndpoint", "file": "../../../tmp/claude-0/-home-user/8a9da608-aa27-5449-8306-1fae9426f9b9/scratchpad/lab/sc/e3h23/NpgsqlRest__NpgsqlRest/NpgsqlRest/NpgsqlRestEndpoint.cs", "subscriptions": [{"event": "connection.Notice", "handler": "noticeHandler", "line": 205, "column": 17, "released": false, "resource": "subscription", "source": "injected", "lambda": false}]}], "services": [], "stats": {"methods_with_local": 42, "methods_flow_analysed": 31, "methods_skipped_unmodelled": 11}, "functions": [{"name": "T.depth2_else_if_then_use_after", "file": "/tmp/x.cs", "line": 1, "body": [{"op": "if", "line": 1, "then": [], "else": [{"op": "if", "line": 2, "then": [{"op": "acquire", "var": "x", "line": 3, "column": 1, "kind": "disposable"}], "else": [{"op": "return", "var": null, "line": 4}]}]}, {"op": "use", "var": "x", "line": 5}, {"op": "return", "var": "x", "line": 6}]}]}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"ownir_version": 0, "module": "Extracted", "components": [{"name": "ConnectionHelper", "file": "../../../tmp/claude-0/-home-user/8a9da608-aa27-5449-8306-1fae9426f9b9/scratchpad/lab/sc/e3h23/NpgsqlRest__NpgsqlRest/NpgsqlRest/ConnectionHelper.cs", "subscriptions": [{"event": "connection.Notice", "handler": "(sender, args) =>\n {\n NpgsqlRestLogger.LogConnectionNotice(args.Notice, loggingMode);\n }", "line": 75, "column": 13, "released": false, "resource": "subscription", "source": "injected", "lambda": true}]}, {"name": "NpgsqlRestEndpoint", "file": "../../../tmp/claude-0/-home-user/8a9da608-aa27-5449-8306-1fae9426f9b9/scratchpad/lab/sc/e3h23/NpgsqlRest__NpgsqlRest/NpgsqlRest/NpgsqlRestEndpoint.cs", "subscriptions": [{"event": "connection.Notice", "handler": "noticeHandler", "line": 205, "column": 17, "released": false, "resource": "subscription", "source": "injected", "lambda": false}]}], "services": [], "stats": {"methods_with_local": 42, "methods_flow_analysed": 31, "methods_skipped_unmodelled": 11}, "functions": [{"name": "T.depth2_two_versions", "file": "/tmp/x.cs", "line": 1, "body": [{"op": "if", "line": 1, "then": [{"op": "acquire", "var": "x__v1", "line": 2, "column": 1, "kind": "disposable"}], "else": [{"op": "if", "line": 3, "then": [{"op": "acquire", "var": "x__v2", "line": 4, "column": 1, "kind": "disposable"}], "else": [{"op": "return", "var": null, "line": 5}]}]}, {"op": "use", "var": "x__v2", "line": 6}, {"op": "return", "var": "x__v2", "line": 7}]}]}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"ownir_version": 0, "module": "Extracted", "components": [{"name": "ConnectionHelper", "file": "../../../tmp/claude-0/-home-user/8a9da608-aa27-5449-8306-1fae9426f9b9/scratchpad/lab/sc/e3h23/NpgsqlRest__NpgsqlRest/NpgsqlRest/ConnectionHelper.cs", "subscriptions": [{"event": "connection.Notice", "handler": "(sender, args) =>\n {\n NpgsqlRestLogger.LogConnectionNotice(args.Notice, loggingMode);\n }", "line": 75, "column": 13, "released": false, "resource": "subscription", "source": "injected", "lambda": true}]}, {"name": "NpgsqlRestEndpoint", "file": "../../../tmp/claude-0/-home-user/8a9da608-aa27-5449-8306-1fae9426f9b9/scratchpad/lab/sc/e3h23/NpgsqlRest__NpgsqlRest/NpgsqlRest/NpgsqlRestEndpoint.cs", "subscriptions": [{"event": "connection.Notice", "handler": "noticeHandler", "line": 205, "column": 17, "released": false, "resource": "subscription", "source": "injected", "lambda": false}]}], "services": [], "stats": {"methods_with_local": 42, "methods_flow_analysed": 31, "methods_skipped_unmodelled": 11}, "functions": [{"name": "T.npgsqlrest_exact", "file": "/tmp/x.cs", "line": 1, "body": [{"op": "if", "line": 35, "then": [{"op": "if", "line": 38, "then": [], "else": [{"op": "if", "line": 43, "then": [{"op": "acquire", "var": "connection__v2", "line": 45, "column": 1, "kind": "disposable"}], "else": [{"op": "return", "var": null, "line": 49}]}]}], "else": [{"op": "if", "line": 56, "then": [{"op": "acquire", "var": "connection__v3", "line": 58, "column": 1, "kind": "disposable"}], "else": [{"op": "if", "line": 61, "then": [{"op": "acquire", "var": "connection__v4", "line": 63, "column": 1, "kind": "disposable"}], "else": [{"op": "return", "var": null, "line": 67}]}]}]}, {"op": "if", "line": 73, "then": [{"op": "use", "var": "connection__v4", "line": 75}], "else": []}, {"op": "use", "var": "connection__v4", "line": 82}, {"op": "return", "var": "connection__v4", "line": 84}]}]}
Lines changed: 270 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,270 @@
1+
{
2+
"depth1_then_use_after": {
3+
"body": [
4+
{
5+
"op": "if",
6+
"line": 1,
7+
"then": [
8+
{
9+
"op": "acquire",
10+
"var": "x",
11+
"line": 2,
12+
"column": 1,
13+
"kind": "disposable"
14+
}
15+
],
16+
"else": [
17+
{
18+
"op": "return",
19+
"var": null,
20+
"line": 3
21+
}
22+
]
23+
},
24+
{
25+
"op": "use",
26+
"var": "x",
27+
"line": 4
28+
},
29+
{
30+
"op": "return",
31+
"var": "x",
32+
"line": 5
33+
}
34+
],
35+
"engines": {
36+
"rust": {
37+
"engine_internal_error": true,
38+
"message": "message=\"undefined name 'loc_0'\"). The O",
39+
"findings": []
40+
},
41+
"python": {
42+
"engine_internal_error": true,
43+
"message": "message=\"undefined name 'loc_0'\"). The O",
44+
"findings": []
45+
}
46+
}
47+
},
48+
"depth2_else_if_then_use_after": {
49+
"body": [
50+
{
51+
"op": "if",
52+
"line": 1,
53+
"then": [],
54+
"else": [
55+
{
56+
"op": "if",
57+
"line": 2,
58+
"then": [
59+
{
60+
"op": "acquire",
61+
"var": "x",
62+
"line": 3,
63+
"column": 1,
64+
"kind": "disposable"
65+
}
66+
],
67+
"else": [
68+
{
69+
"op": "return",
70+
"var": null,
71+
"line": 4
72+
}
73+
]
74+
}
75+
]
76+
},
77+
{
78+
"op": "use",
79+
"var": "x",
80+
"line": 5
81+
},
82+
{
83+
"op": "return",
84+
"var": "x",
85+
"line": 6
86+
}
87+
],
88+
"engines": {
89+
"rust": {
90+
"engine_internal_error": true,
91+
"message": "message=\"undefined name 'loc_0'\"). The O",
92+
"findings": []
93+
},
94+
"python": {
95+
"engine_internal_error": true,
96+
"message": "message=\"undefined name 'loc_0'\"). The O",
97+
"findings": []
98+
}
99+
}
100+
},
101+
"depth2_two_versions": {
102+
"body": [
103+
{
104+
"op": "if",
105+
"line": 1,
106+
"then": [
107+
{
108+
"op": "acquire",
109+
"var": "x__v1",
110+
"line": 2,
111+
"column": 1,
112+
"kind": "disposable"
113+
}
114+
],
115+
"else": [
116+
{
117+
"op": "if",
118+
"line": 3,
119+
"then": [
120+
{
121+
"op": "acquire",
122+
"var": "x__v2",
123+
"line": 4,
124+
"column": 1,
125+
"kind": "disposable"
126+
}
127+
],
128+
"else": [
129+
{
130+
"op": "return",
131+
"var": null,
132+
"line": 5
133+
}
134+
]
135+
}
136+
]
137+
},
138+
{
139+
"op": "use",
140+
"var": "x__v2",
141+
"line": 6
142+
},
143+
{
144+
"op": "return",
145+
"var": "x__v2",
146+
"line": 7
147+
}
148+
],
149+
"engines": {
150+
"rust": {
151+
"engine_internal_error": true,
152+
"message": "message=\"undefined name 'loc_1'\"). The O",
153+
"findings": []
154+
},
155+
"python": {
156+
"engine_internal_error": true,
157+
"message": "message=\"undefined name 'loc_1'\"). The O",
158+
"findings": []
159+
}
160+
}
161+
},
162+
"npgsqlrest_exact": {
163+
"body": [
164+
{
165+
"op": "if",
166+
"line": 35,
167+
"then": [
168+
{
169+
"op": "if",
170+
"line": 38,
171+
"then": [],
172+
"else": [
173+
{
174+
"op": "if",
175+
"line": 43,
176+
"then": [
177+
{
178+
"op": "acquire",
179+
"var": "connection__v2",
180+
"line": 45,
181+
"column": 1,
182+
"kind": "disposable"
183+
}
184+
],
185+
"else": [
186+
{
187+
"op": "return",
188+
"var": null,
189+
"line": 49
190+
}
191+
]
192+
}
193+
]
194+
}
195+
],
196+
"else": [
197+
{
198+
"op": "if",
199+
"line": 56,
200+
"then": [
201+
{
202+
"op": "acquire",
203+
"var": "connection__v3",
204+
"line": 58,
205+
"column": 1,
206+
"kind": "disposable"
207+
}
208+
],
209+
"else": [
210+
{
211+
"op": "if",
212+
"line": 61,
213+
"then": [
214+
{
215+
"op": "acquire",
216+
"var": "connection__v4",
217+
"line": 63,
218+
"column": 1,
219+
"kind": "disposable"
220+
}
221+
],
222+
"else": [
223+
{
224+
"op": "return",
225+
"var": null,
226+
"line": 67
227+
}
228+
]
229+
}
230+
]
231+
}
232+
]
233+
},
234+
{
235+
"op": "if",
236+
"line": 73,
237+
"then": [
238+
{
239+
"op": "use",
240+
"var": "connection__v4",
241+
"line": 75
242+
}
243+
],
244+
"else": []
245+
},
246+
{
247+
"op": "use",
248+
"var": "connection__v4",
249+
"line": 82
250+
},
251+
{
252+
"op": "return",
253+
"var": "connection__v4",
254+
"line": 84
255+
}
256+
],
257+
"engines": {
258+
"rust": {
259+
"engine_internal_error": true,
260+
"message": "message=\"undefined name 'loc_2'\"). The O",
261+
"findings": []
262+
},
263+
"python": {
264+
"engine_internal_error": true,
265+
"message": "message=\"undefined name 'loc_2'\"). The O",
266+
"findings": []
267+
}
268+
}
269+
}
270+
}

0 commit comments

Comments
 (0)