cnid: sqlite-default residual cleanup; dsi: raise the listen backlog to 128 - #3267
cnid: sqlite-default residual cleanup; dsi: raise the listen backlog to 128#3267andylemin wants to merge 1 commit into
Conversation
…to 128 SQLite has been the default CNID scheme since PR #2265 made meson select sqlite > mysql > dbd among the compiled backends. Residue still said dbd: the docker entrypoint's AFP_CNID_BACKEND fallback, and the man page and NEWS never stated the default. Align them; no default changes here. The CI cnid:dbd spectest leg relied on the old docker fallback for its backend, so it now sets AFP_CNID_BACKEND=dbd explicitly -- intentional dbd and mysql coverage is unchanged. Also raise DSI_TCPMAXPEND from 20 to 128. It has been 20 since the CVS era, with no config knob; a reconnect storm (default 200 max connections) overflows it: dropped SYNs and ~1s client retransmit delays. 128 matches the common SOMAXCONN floor; the kernel silently caps at net.core.somaxconn anyway, so no new option is warranted. No steady-state effect.
65571f7 to
6aa912a
Compare
|
📊 Performance DashboardCommit: 🔥 Spectest (AFP 3.4) - FlameGraphNetatalk Code-time: 2.8% · Runtime: 62s · Stacks: 1017 🔥 Click the preview to open the interactive flamegraph (zoom + search). 🔝 Top 10 leaf functions
📈 Speedtest (AFP 3.4) - PerfGraphPeak Read: 6830 MB/s (-6.1% vs hist avg 7271.0 MB/s; min 5963 / max 9526 over 25 PRs) 🔝 Throughputs per operation (vs. historical average)
⏱️ Lantest (AFP 3.4) - LatencyGraphAvg total runtime: 3934 ms (-8.9% vs hist avg 4319.3 ms; min 2492 / max 5208 over 25 PRs) 🐢 All operations (avg runtime, in test order, vs. historical average)
Run baseline: median op-test delta -8.7%, MAD 1.9%. Adj Δ% shifts each delta by the median; standouts ≥5% in bold. A large MAD means the run did not move uniformly — read the adjusted column with caution. |
|
@rdmark ready for review |







CNID: sqlite-default residual cleanup
SQLite has been the default CNID scheme since PR #2265 ("Build and run netatalk without Berkeley DB") made meson select sqlite > mysql > dbd among the compiled backends — and all three compile by default, so
DEFAULT_CNID_SCHEME, the runtimecnid schemedefault, is already "sqlite" on any default build (afpd -v: "Default CNID backend: sqlite"). What remained was residue that still said dbd:cnid scheme = ${AFP_CNID_BACKEND:-dbd}(two sites):-sqlite— an unsetAFP_CNID_BACKENDnow matches what a stock source build already doesAFP_CNID_BACKENDand were unintentionally testing dbd via the entrypoint fallback-e AFP_CNID_BACKEND=dbdexplicitlyIntentional backend coverage is unchanged: the cnid:mysql legs (Alpine + Debian) and the cnid:sqlite/perf legs set
AFP_CNID_BACKENDexplicitly, the VM spectest script exportsdbdexplicitly, and the cnid:dbd job is now pinned. Every other job had no business running dbd; this PR resolves that unintended coverage skew — the broad matrix now tests what ships.DSI: raise the listen backlog to 128
DSI_TCPMAXPENDhas been 20 since the CVS-era initial revision, with no config knob. A reconnect storm (default 200 max connections) overflows a backlog of 20: dropped SYNs and ~1s client retransmit delays. 128 matches the common SOMAXCONN floor, and the kernel silently caps the effective backlog atnet.core.somaxconn, so no new option is warranted. No steady-state effect; the#ifndefguard stays for build-time overrides.Testing
meson test(Alpine container, CI build flags): 3/3 suites, zero failures.AFP_CNID_BACKEND— i.e. on the new sqlite fallback end-to-end: both exit 0, zero failures.AFP_CNID_BACKEND=dbdgeneratescnid scheme = dbdand runs the cnid daemon; an env-less container generatescnid scheme = sqlite.afpd -vin the built image reports sqlite as the default backend.Outstanding issue
The netatalk master still starts
cnid_metadwhenever the dbd backend is merely compiled in, so an env-less (sqlite) container runs an idle cnid daemon that nothing talks to. Startup should be conditional on a volume actually usingcnid scheme = dbd— tracked in #3268.