You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CODE_REVIEW.md
+8-7Lines changed: 8 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -52,6 +52,8 @@ Validation performed on macOS/PHP 8.5.6:
52
52
Result: **7 passed, 0 failed**.
53
53
-`TEST_PHP_EXECUTABLE=$(which php) make test NO_INTERACTION=1 TESTS='tests/221-twig-long-block-name-clamps-buffer.phpt tests/015-long-function-names.phpt tests/214-twig-template-name.phpt tests/215-twig-wrapper-template-name.phpt tests/216-symfony-event-dispatch-name.phpt tests/201-io-spans-with-trace-functions-off.phpt tests/205-many-io-spans.phpt'`
54
54
Result: **7 passed, 0 failed**.
55
+
-`TEST_PHP_EXECUTABLE=$(which php) make test NO_INTERACTION=1 TESTS='tests/222-engine-hooks-capacity-smoke.phpt tests/084-otlp-runtime-env.phpt tests/080-otlp-valid-json.phpt tests/102-span-capacity-grows.phpt tests/217-exception-status-first-span.phpt tests/218-log-exception-status-first-span.phpt'`
56
+
Result: **6 passed, 0 failed**.
55
57
56
58
### Critical / High Follow-up Status
57
59
@@ -74,7 +76,7 @@ Validation performed on macOS/PHP 8.5.6:
74
76
|---------|--------|-------|
75
77
| Manual spans are never finished |**Fixed**| Manual spans are marked and finalized during request shutdown finalization before UDP export. `createSpan()` parent lookup now uses the validated current-span helper that skips sentinels. Covered by `tests/219-manual-span-parent-skips-sentinel.phpt` and `tests/220-manual-span-exported-on-disable.phpt`. |
76
78
| cURL hook uses private ext/curl layout and leaks `curl_slist`|**Open / partial**| Header restore support exists, but the hook still relies on private ext/curl layout and restored `curl_slist`s are not retained/freed after `curl_easy_setopt()`. `curl_setopt_array()` is still not handled. |
77
-
| Engine hooks ignore capacity failures |**Open**| Compile/GC hooks still call `ensure_span_capacity(state)`and increment`span_count`even if capacity fails. |
79
+
| Engine hooks ignore capacity failures |**Fixed**| Compile/GC hooks now return early when `ensure_span_capacity(state)`fails, so`span_count`is only incremented after capacity is guaranteed. Engine db attrs also grow on demand. Covered by `tests/222-engine-hooks-capacity-smoke.phpt` and span capacity regression coverage. |
78
80
| Global request state is not ZTS-safe |**Open**|`g_state` is still process-global. README currently claims full ZTS support, which does not match the implementation. |
79
81
80
82
### Tests, CI, and Packaging Status
@@ -86,15 +88,14 @@ Validation performed on macOS/PHP 8.5.6:
86
88
| Optional integrations mostly skipped in default CI |**Open**| Redis, MySQLi, and Memcached tests still depend on local optional services/extensions and skipped locally. |
87
89
| macOS/BSD portability is not covered by CI |**Open**|`.github/workflows/tests.yml` still only runs Ubuntu. |
88
90
| Build config has implicit libcurl dependency |**Open**|`config.m4` still does not check curl headers/libraries despite `hook_curl.c` including `<curl/curl.h>`. |
89
-
| README/demo drift |**Open**| README still documents `akari.mode=auto`, lists 74 PHPT tests while 89 exist, and demo README uses port 8081 while `docker-compose.yml` maps the PHP demo to 8083. |
91
+
| README/demo drift |**Open**| README still documents `akari.mode=auto`, lists 74 PHPT tests while 95 exist, and demo README uses port 8081 while `docker-compose.yml` maps the PHP demo to 8083. |
90
92
91
93
### Remaining Remediation Order
92
94
93
-
1. Fix engine hook capacity handling before `span_count++`.
94
-
2. Replace network-backed curl PHPTs with local fixtures or real `--SKIPIF--` checks.
95
-
3. Add CI jobs for `go test ./...`, macOS, and optional Redis/MySQL/Memcached integration tests.
96
-
4. Add explicit libcurl checks to `config.m4`.
97
-
5. Update README/demo claims to match current behavior.
95
+
1. Replace network-backed curl PHPTs with local fixtures or real `--SKIPIF--` checks.
96
+
2. Add CI jobs for `go test ./...`, macOS, and optional Redis/MySQL/Memcached integration tests.
97
+
3. Add explicit libcurl checks to `config.m4`.
98
+
4. Update README/demo claims to match current behavior.
0 commit comments