Commit ec73266
valgrind: broaden shared_ptr control-block suppression to whole _Sp_counted_base
A fresh drd run (4fb73d5) surfaced a new benign ConflictingAccess in
webserver_register_path_prefix: the MHD worker dropping the last shared_ptr ref
to a resource during modded_request::~modded_request in request_completed, while
the main thread unregistered under route_cache's std::mutex. The access is the
libstdc++ control-block teardown (~_Sp_counted_base / _M_weak_release), atomic
refcount (_Lock_policy _S_atomic) which drd/helgrind cannot model.
This is the same benign class the existing _M_release entry covered, but the
teardown surfaces through different control-block methods each run depending on
thread timing, so a per-method match plays whack-a-mole. Broaden the match to
the whole _Sp_counted_base family (dtor, _M_release, _M_weak_release,
_M_dispose) in both supp files. Pure libstdc++ frame — a real libhttpserver
locking race surfaces a libhttpserver top frame, never _Sp_counted_base; TSan,
which models the atomic refcount, is green on these tests. Mirrors the existing
broad-third-party entries (basic_string, vector, _Rb_tree, _Sp_counted_ptr_inplace).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NpysYDDJac63yz2mZKKiDf1 parent 4fb73d5 commit ec73266
2 files changed
Lines changed: 31 additions & 12 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
83 | 92 | | |
84 | 93 | | |
85 | 94 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
70 | 70 | | |
71 | 71 | | |
72 | 72 | | |
73 | | - | |
74 | | - | |
75 | | - | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
76 | 86 | | |
77 | | - | |
| 87 | + | |
78 | 88 | | |
79 | | - | |
| 89 | + | |
80 | 90 | | |
81 | 91 | | |
82 | 92 | | |
| |||
0 commit comments